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 | ||
2014:adc-to-matlab [2015/01/18 13:05] Jan Novotný [Program pro MATLAB] |
2014:adc-to-matlab [2015/01/18 21:22] (aktuální) Jan Novotný [Výsledky] |
||
---|---|---|---|
Řádek 11: | Řádek 11: | ||
*Periferie USB_OTG | *Periferie USB_OTG | ||
====A/D převodník==== | ====A/D převodník==== | ||
- | Mikrokontrolér STM32F429ZIT nabízí tři vnitřní 12-bitové analogově-digitální převodníky, z nichž zde jsou využity dva, a to ADC1 a ADC2, každý pro vzorkování jednoho vstupního analogového kanálu. Přenos digitalizovaných dat do paměti je řešen přes DMA pro dosažení co největší rychlosti. Převodníky jsou nastaveny do tzv. Multimode Interleaved módu (prokládaný režim). Ten spočívá v tom, že výstupem každého převodníku jsou 16-bitová slova, ta jsou pak složena do 32-bitového slova, které je posláno přes DMA do paměti. 16-bitová slova jsou do 32-bitového slova organizována tak, že v horních 16 bitů obsahuje data z převodníku ADC2, spodních 16 bitů obsahuje data z převodníku ADC1. Tuto situaci znázorňuje následující obrázek: | + | Mikrokontrolér STM32F429ZIT nabízí tři vnitřní 12-bitové analogově-digitální převodníky, z nichž zde jsou využity dva, a to ADC1 a ADC2, každý pro vzorkování jednoho vstupního analogového kanálu. Přenos digitalizovaných dat do paměti je řešen přes DMA pro dosažení co největší rychlosti. Převodníky jsou nastaveny do tzv. Multimode Interleaved módu (prokládaný režim). Ten spočívá v tom, že výstupem každého převodníku jsou 16-bitová slova, ta jsou pak složena do 32-bitového slova, které je posláno přes DMA do paměti. 16-bitová slova jsou do 32-bitového slova organizována tak, že v horních 16 bitů obsahuje data z převodníku ADC2 (kanál č. 2), spodních 16 bitů obsahuje data z převodníku ADC1 (kanál č. 1). Tuto situaci znázorňuje následující obrázek: |
{{ :2014:adc-to-matlab:ADC_reg.jpg?650 |Seřazení výstupních registrů A/D převodníků v prokládaném režimu}} | {{ :2014:adc-to-matlab:ADC_reg.jpg?650 |Seřazení výstupních registrů A/D převodníků v prokládaném režimu}} | ||
====Kontrolér DMA==== | ====Kontrolér DMA==== | ||
Řádek 166: | Řádek 166: | ||
- | Na následujícím videu lze vidět navzorkování signálu. Nejprve se v MATLABu spustí funkce ''Serial_2channel()'' a pak se na Discovery kitu stiskne modré tlačítko, čímž se provede navzorkování a odeslání dat. Dokončení tohoto procesu je indikováno rozsvícením zelené LED diody a výsledné průběhy se pak objeví v grafu v MATLABu. | + | Na následujícím videu lze vidět navzorkování signálu. Nejprve se v MATLABu spustí funkce ''Serial_2channel()'' a pak se na Discovery kitu stiskne modré tlačítko, čímž se provede navzorkování a odeslání dat. Dokončení tohoto procesu je indikováno rozsvícením zelené LED diody a výsledné průběhy se pak objeví v grafu v MATLABu. Bohužel kvalita videa není dobrá, protože nebyl k dispozici přístroj poskytující dostatečnou kvalitu záznamu. |
- | {{youtube>1hZj2ThIF-E?medium}} | + | {{ youtube>1hZj2ThIF-E?medium }} |
---- | ---- | ||
=====Závěr===== | =====Závěr===== | ||
- | Celkově je možno říci, že zadání se podařilo splnit. Vznikl dvoukanálový vzorkovač, který by teoreticky mohl být schopen vzorkovat signály až do kmitočtu 1MHz (A/D převodníky vzorkují s rychlostí 2,4 milionu vzorků za sekundu). Prakticky bude tato hodnota zřejmě nižší, ale vzhledem k určení vzorkovače by postačovala schopnost vzorkovat signály do kmitočtu 640kHz. Předností vzorkovače je využití periferie DMA, což zrychluje celý proces přenosu dat. Přenos navzorkovaných dat do PC a jejich vykreslení také funguje velmi dobře, z tohoto hlediska by však bylo ještě dobré vylepšit některé části programu v MATLABu, které se však týkají spíše čistoty kódu než jeho funkčnosti. | + | Celkově je možno říci, že zadání se podařilo splnit. Vznikl dvoukanálový vzorkovač, který by teoreticky mohl být schopen vzorkovat signály až do kmitočtu 1MHz (A/D převodníky vzorkují s rychlostí 2,4 milionu vzorků za sekundu). Prakticky bude tato hodnota zřejmě nižší, ale vzhledem k určení vzorkovače by postačovala schopnost vzorkovat signály do kmitočtu 640kHz. Předností vzorkovače je využití periferie DMA, což zrychluje celý proces přenosu dat. Přenos navzorkovaných dat do počítače a jejich vykreslení také funguje velmi dobře, díky vestavěným funkcím MATLABu, které např. umožňují čtení dat ze sériového portu ve zvoleném formátu, není třeba data nějak výrazněji upravovat nebo přeskládávat, což přispívá k přehlednosti kódu. |