Abstrakt: Generátor ss napětí se zvolenou hodnotou
Pomocí DA převodníku dostupného na mikrokontroléru aplikace umožňuje generovat ss napětí o zvolené hodnotě. Napětí je měřitelné mezi vyvodem 31 (konektoru JP9) a zemí FITkitu.
Požadovanou hodnotu napětí je možno zadat pomocí příkazu mV
, jehož parametrem je celočíselná hodnota (předpokládaná v rozmezí mV_MIN = 0
až mV_MAX = 2500
mV) udávající hodnotu ss napětí, které má být generováno.
Napětí je generováno na 0. kanálu DA převodníku
mikrokontroléru. Tento kanál je vyveden na pin č. 31 knektoru JP9
- tzn. generované napětí je možno měřit mezi tímto pinem a zemí.
Nastavení DA převodníku
DA převodník převádí n-bitový (tj. číslicový, v našem případě n=12) vzorek na napětí ve zvoleném rozsahu (tzv. referenčního napětí, v našem případě 0 V - 2,5 V). Tento převod je lineární, přičemž hodnotě 0x000 (0 na 12 bitech) odpovídá 0 V a hodnotě 0xfff (samé 1 na 12 bitech) 2,5 V. Referenční napětí můžeme nechat násobit 1x (náš případ) nebo 3x.
Jinou konfiguraci DA převodníku (8-bitový režim, referenční napětí 1,5 V) můžete nalézt v aplikaci Generátor signálů.
Ve funkci main
je DA převodník nastaven takto:
int main(void) { ... ADC12CTL0 |= 0x0060; // nastaveni referencniho napeti na 2,5 V DAC12_0CTL |= 0x0060; // nastaveni kontrolniho registru DAC (12-bitovy rezim, medium speed) DAC12_0CTL |= 0x100; // referencni napeti nasobit 1x .. }
Volba hodnoty napětí
Ve funkci decode_user_cmd
je hodnota mV zadaná na příkazové řádce (a uložená do celočíselné proměnné mili_volts
) přepočtena na hodnotu 12-bitového vzorku pomocí vztahu:
DAC12_0DAT = 4095*((double)mili_volts/(mV_MAX - mV_MIN)); // preved mV na 12-bitovy vzorek
Kompletní zdrojové kódy je možné nalézt v souboru mcu/main.c.
přeložte aplikaci
naprogramujte MCU a FPGA a spusťte terminálový program.
generovaný signál je měřitelný mezi vývodem 31 konektoru JP9 a zemí