====== ARM06 - Pipeline TIM-ADC-DMA ====== ^ Možný bodový zisk | 6b | ^ Vzorový program | {{ :courses:b2m37mam:homeworks:arm06_adc_s_dma.zip | ARM06_ADC_S_DMA.zip }} | Vytvořte program, který bude měřit napětí pomocí AD převodníku a zobrazí ho na rozširující desce. Vzorový program ukazuje vyčítání dat se vzorkovací frekvencí 100 Hz a zobrazení hodnoty v procentech na 4-místném displeji. ===== Zadání - Měření ===== * Vytvořte aplikaci, která bude měřit zprůměrované (z alespoň 16 vzorků) analogové napětí na trimru nebo jiném zdroji napětí bez zásahu programu, tj. vytvořit pipeline TIM-ADC-DMA * Napětí měřte se vzorkovací frekvencí 100 Hz pomocí časovače * Data z ADC vyčítejte a ukládejte pomocí DMA **pozn.** Nepoužívejte přerušení časovače pro spuštění převodu, ale využijte propojení TIM a ADC přes některý z kanálů. ===== Zadání - Zobrazení ===== Možné varianty zobrazení: * Pomocí řady 8 nebo 12 LED na rozširující desce MAM-Shield zobrazte poměrově naměřenou hodnotu * Na 4-místném displeji zobrazte poměrově naměřenou hodnotu ve formě bargrafu * Na 4-místném displeji zobrazte naměřenou hodnotu v procentech * Pomocí 4 diod na rozširující desce Funduino zobrazte poměrově hodnotu * Podle vlastního uvážení ===== Návod na řešení ===== * Pro spuštění převodu si prostudujte propojení TIM a ADC ze sekce {{ :courses:b2m37mam:stm32f401_refmanual.pdf#page=213 | ADC functional description}} a nastavením v registru {{ :courses:b2m37mam:stm32f401_refmanual.pdf#page=231 | ADC-CR2}} * Pro vyčítání a ukládání dat je dobré si prostudovat sekci s {{ :courses:b2m37mam:stm32f401_refmanual.pdf#page=167 | DMA}} a vybrat příslušný kanál a stream z {{ :courses:b2m37mam:stm32f401_refmanual.pdf#page=169 | tabulky 28}} nebo z {{ :courses:b2m37mam:stm32f401_refmanual.pdf#page=170 | tabulky 29}} podle zvolené periferie (v našem případě budeme hledat ADC1) * Pro vyčítání a ukládání dat přes DMA z ADC můžete využít kostru programu ze sekce [[courses:b2m37mam:priklady:stm32:04b-adc_dma|ADC s DMA]]