Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
playground:playground [2015/08/23 16:04] 127.0.0.1 upraveno mimo DokuWiki |
playground:playground [2017/12/29 13:59] (aktuální) Petr Skryja |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
- | ====== PlayGround ====== | + | |
+ | ====== Zadání ====== | ||
+ | |||
+ | |||
+ | |||
+ | Sestavte zvukové rozhraní pro počítač pomocí procesoru STM32. Použijte knihovny pro třídu „USB Device Class for Audio Devices“. Implementujte zvukový výstup z PC vč. ovládání hlasitosti na vývojové desce STM32F4DISCOVERY. Doplňte o vstup z integrovaného MEMS mikrofonu. Projekt ve spolupráci s Audified | ||
+ | ---- | ||
+ | |||
+ | ====== Úvod ====== | ||
+ | |||
+ | Cílem tohoto projektu je vytvořit software a jednoduchý hardware pro zvolenou vývojovou desku, aby po připojení USB konektou k počítači, bylo toto zařízení identifikováno jako Audio Device a bylo přiřazeno jako zařízení pro audio vstup i výstup. Dále bude možné pomocí hardwarového tlačítka na desce možné zvolit funkci Mute pro úplné zeslabení výstupní hlasitosti odposlechu. Pomocí potenciometru bude možné měnit hlasitost odposlechu. Z pinu číslo 21 na desce bude odebíráno referenční napětí, které bude předřadným odporem omezeno na maximální bezpečné napětí pro AD převodníky desky a otáčením potenciometru bude regulováno napetí přivedené na vstup AD převodníku. | ||
+ | ---- | ||
+ | |||
+ | ====== Vývojový hardware ====== | ||
+ | |||
+ | STM32F4 Discovery | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Key Features | ||
+ | |||
+ | STM32F407VGT6 microcontroller featuring 32-bit ARM Cortex-M4F core, 1 MB Flash, 192 KB RAM in | ||
+ | an LQFP100 package | ||
+ | On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone ST-LINK/V2 | ||
+ | (with SWD connector for programming and debugging) | ||
+ | Board power supply: through USB bus or from an external 5 V supply voltage | ||
+ | External application power supply: 3 V and 5 V | ||
+ | LIS302DL or LIS3DSH ST MEMS 3-axis accelerometer | ||
+ | MP45DT02, ST MEMS audio sensor, omni-directional digital microphone | ||
+ | CS43L22, audio DAC with integrated class D speaker driver | ||
+ | Eight LEDs: | ||
+ | LD1 (red/green) for USB communication | ||
+ | LD2 (red) for 3.3 V power on | ||
+ | Four user LEDs, LD3 (orange), LD4 (green), LD5 (red) and LD6 (blue) | ||
+ | 2 USB OTG LEDs LD7 (green) VBus and LD8 (red) over-current | ||
+ | Two push buttons (user and reset) | ||
+ | USB OTG FS with micro-AB connector | ||
+ | Extension header for all LQFP100 I/Os for quick connection to prototyping board and easy probing | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====== Software ====== | ||
+ | |||
+ | V hlavním souboru main.c probíha inicializace ADC převodníku, USB device audio class a audio kodeku pro přehrávání audio výstupu. | ||
+ | |||
+ | Použité knihovny v soubotu main.c | ||
+ | |||
+ | |||
+ | * #include "stm32f4xx_hal.h" | ||
+ | * #include "usb_device.h" | ||
+ | * #include "stm32f4xx_hal_adc.h" | ||
+ | * #include "cs43l22.h" | ||
+ | * #include "stm32f4_discovery_audio.h" | ||
+ | |||
+ | |||
+ | assert_param(IS_ADC_CHANNEL(sConfig->ADC_CHANNEL_1)); | ||
+ | hadc->Instance->SMPR2 &= ~ADC_SMPR2(ADC_SMPR2_SMP0, sConfig->Channel); | ||
+ | hadc->Instance->SMPR2 |= ADC_SMPR2(sConfig->SamplingTime, sConfig->Channel); | ||
+ | void ADC_Init(hadc); | ||
+ | cs43l22_Init(29, OUTPUT_DEVICE_SPEAKER, 60, AUDIO_FREQUENCY_48K); | ||
+ | |||
+ | |||
+ | Nejprve je inicializován AD převodník a přiřazeným kanálem číslo jedna, který odpovídá převodníku ADC1. Na tento převodník je přivedeno napětí z potenciometru, který ovládá Volume přehrávání audio výstupu. Následně jsou přiřazeny patřičné parametry a vzorkovací frekvence. | ||
+ | |||
+ | Dále je inicializován audio kodek, kde je přižen výstupní pin na Jack 3.5 mm, zvolen typ výstupního zařízení, počáteční hlasitost v procentech a vrozkovací frekvence na 48 kHz. Stejná je vzorkovací frekvence AD převodníku a rychlost přenosu po USB. | ||
+ | |||
+ | |||