Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


playground:playground

Toto je starší verze dokumentu!


Fonty FONTX pro grafické displeje

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.

playground/playground.1514552202.txt.gz · Poslední úprava: 2017/12/29 13:56 autor: Petr Skryja