Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2017:fn-generator

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2017:fn-generator [2018/01/14 22:46]
Martin Lelek [Firmware]
2017:fn-generator [2018/01/14 23:56] (aktuální)
Martin Lelek [Závěr]
Řádek 1: Řádek 1:
-======== ​Zadání ​========+======== ​Funkční generátor ​========
  
-Na vhodné architektuře (STM32F407) implementujte algoritmus schopný přes DA převodník generovat základní funkční signály v pásmu minimálně do 50kHz (AUDIO). Generátor umožní regulovat kmitočet, amplitudu a stejnosměrný offset výstupního signálu. Dále implementujte vhodné ovládání (LCD, tlačítka, rotační kodér apod.) pro pohodlné řízení generátoru. Pro FW procesoru realizujte vhodnou HW nadstavbu s potřebnými analogovými obvody včetně napájení. 
  
 **Vypracoval:​ Martin Lelek** **Vypracoval:​ Martin Lelek**
 +
 +----
 +
 +======= Zadání =======
 +
 +Na vhodné architektuře (STM32F407) implementujte algoritmus schopný přes DA převodník generovat základní funkční signály v pásmu minimálně do 50kHz (AUDIO). Generátor umožní regulovat kmitočet, amplitudu a stejnosměrný offset výstupního signálu. Dále implementujte vhodné ovládání (LCD, tlačítka, rotační kodér apod.) pro pohodlné řízení generátoru. Pro FW procesoru realizujte vhodnou HW nadstavbu s potřebnými analogovými obvody včetně napájení.
  
 ---- ----
Řádek 123: Řádek 128:
  
 ----- -----
 +
 +===== Závěr =====
 +
 +Vynaloženým úsilím se podařilo vytvořit funkční prototyp generátoru sinusového,​ pilovitého a obdélníkového signálu. Ve firmwaru kontroléru nebyla využita sběrnice DMA pro odesílání SPI dat, byl využit přímo dostupný HAL driver. Toto řešení se ne příliš později projevilo jako fatální v omezení schopností celého zařízení při použitém vzorkovacím kmitočtu a požadovaného kmitočtu signálu na výstupu. Měřením na datových a CS vodičích bylo zjištěno, že tento přístup k SPI periferii zanáší mezi zavoláním funkce pro odeslání dat a samotným odesláním dat z periferie zpoždění přibližně třetinu periody vzorkovacího kmitočtu. Důsledkem tohoto, jelikož jsou odesílány tři bajty dat za sebou, nelze vzorkovací kmitočet již dále zvyšovat. Řešením by bylo použití sběrnice DMA, popřípadě emulované sběrnice SPI.
 +
 +Dalším opomenutým nešvarem budiž absence rekonstrukčního filtru. Podvědomí autora si nejspíše naivně myslelo, že se sinusovka o kmitočtu 50kHz bude při vzorkovacím kmitočtu 100kHz jevit plynule jako vycházející a zapadající slunce.. Leč byl to omyl a to více než krutý. Tímto opomenutím je relativně dobrá použitelnost prototypu omezena na pásmo do 20kHz, což však pro použití v audio pásmu v podstatě stačí.
 +
 +**Fotografie nasazeného modulu je zde:**
 +
 +{{ :​2017:​fn_gen:​gen_proto.jpg?​direct&​400 |}}
 +
 +**ZIP archiv se schematem a PCB v SW Eagle a zdrojovými kódy:**
 +
 +{{ :​2017:​fn_gen:​xlelek02_2017_project_mpoa.zip |}}
 +
 +**Krátké video demonstrující funkci:**
 +
 +https://​youtu.be/​UYy0PPRKk28
 +
 +{{ youtube>​UYy0PPRKk28?​medium |}}
2017/fn-generator.1515966408.txt.gz · Poslední úprava: 2018/01/14 22:46 autor: Martin Lelek