150 likes | 280 Views
Vestavné mikropočítačové systémy. 4 . Týden – Atmel AVR A/D převodník , analogový komparátor , reset, watch-dog a pojistky. A/D p řevodník. 10-bitov é rozlišení – 0x000 ~ 0V, 0x3FF ~ V REF Až 200kHz hodiny při plném rozlišení Doba převodu je 13 taktů až 15ksps ( ~ 200kHz)
E N D
Vestavné mikropočítačové systémy 4. Týden – Atmel AVRA/D převodník, analogový komparátor, reset, watch-dog a pojistky
A/D převodník • 10-bitové rozlišení – 0x000 ~ 0V, 0x3FF ~ VREF • Až 200kHz hodiny při plném rozlišení • Doba převodu je 13 taktů až 15ksps (~200kHz) • První převod trvá 25 taktů doporučuji odbýt si to hned z kraje programua dále neuvažovat • 8 multiplexovaných vstupů analogového signálu (dle typu a pouzdra nemusí být fyzicky vyvedeno všech 8) • Volitelné referenční napětí • AVCC (od VCC by mělo být odděleno filtrem typu dolní propust) • Interní napěťová reference 2,56V • Externí v rozsahu 0V ÷ VCC • Volnoběžný režim / jednotlivý převod • Výsledek může být hardwarově zarovnáván vlevo • Taktování převodníku se volí předděličem (poměry: 2, 4, 8, 16, 32, 64, 128) • Volitelné přerušení po dokončení převodu
10-bit DAC Bandgap reference A/D převodník – blokové schéma ADCSRA[7:3](ADEN,ADSC,ADFR,ADIF,ADIE) ADMUX[7](REFS1) ADMUX[5](ADLAR) Prescaler ADCSRA[2:0] ADMUX[6](REFS0) Conversion logic ADC[9:0] AVCC Internal 2,56V reference AREF Input MUX ADMUX[3:0] ADC0ADC7
A/D převodník – ošetření vstupů • Výstupní impedance zdroje měřeného napětí by měla být < 10 k • Měřené signály musí vyhovovat Nyquistovu teorému(< fADC / 2) předřazení anti-aliasingového filtru • Doporučení pro návrh HW • Analogové cesty by měli být co nejkratší, vedené nadzemní napájecí vrstvou DPS a pokud možno ne blízkodigitálních signálů • AVCC by mělo být odděleno od VCC LC filterm • Pokud se některé z multiplexovaných vstupů používajíjako digitální výstupy, měl by být software navržen tak,aby se v průběhu převodu stav těchto pinů neměnil
A/D převodník – registry • ADCSRA – Control and Status Register • Bit 7 (ADEN) – povolení A/D převodníku • Bit 6 (ADSC) – start převodu • Bit 5 (ADFR) – volnoběžný režim • Bit 4 (ADIF) – příznak dokončeného převodu, je-li povoleno přerušení, shazuje se automaticky při návratu z obslužné rutiny přerušení • Bit 3 (ADIE) – příznak, že má dojít k přerušení po dokončení převodu • Bit 2:0 – prescaler, dělící poměry: 2, 2, 4, 8, 16, 32, 64,128 • ADMUX • Bit 7:6 (REFS) – volba napěťové reference • Bit 5 (ADLAR) – výsledek převodu má být zarovnán vlevo • Bit 3:0 (MUX) – volba vstupního kanálu • ADCL, ADCH – výsledek převodu
Analogový komparátor • Neinvertující vstup je připojen buď na pin AIN0 nebo na interní referenci (1,3V) • Invertující vstup může být připojen buď na pin AIN1 nebo na výstup analogového multiplexeru A/D převodníku (ADC musí být zakázán) • Přerušení může být generováno změnou, sestupnou nebo náběžnou hranou na výstupu komparátoru • Výstup komparátoru může sloužit jako zdroj zachytávací jednotky čas./čítače 1
Analogový komparátor – registry • SFIOR • Bit 3 (ACME) – jednička vyřadí A/D převodník a zapojí výstup jeho analogového multiplexeru na invertující vstup komparátoru • ACSR (Analog Comparator Control and Status) • Bit 7 (ACD) – zakázání komparátoru (snížení spotřeby), po resetu je komparátor povolen. Když se mění stav ACD, měl by být ACIE vynulován, jinak hrozí nežádoucí přerušení v důsledku změny bitu ACD. • Bit 6 (ACBG) – připojení bandgap reference k neinvertujícímu vstupu • Bit 5 (ACO) – výstup komparátoru • Bit 4 (ACI) – indikuje vznik události, která může generovat přerušení, shazuje se hardwarově po opuštění interrupt handleru • Bit 3 (ACIE) – povolení přerušení při vzniku události • Bit 2 (ACIC) – zavedení výstupu komparátoru do zachytávací jednotky čítače/časovače 1 • Bit 0:1 (ACIS)
Reset • 4 zdroje resetovacího signálu • V registru MCUCSR je informace o příčině posledního resetu • Bit 0 (PORF) – Power-on reset • Bit1 (EXTRF) – externí signál RESET • Bit2 (BORF) – Brown-out reset • Bit3 (WDRF) – Watchdog reset
Reset • Externí signál RESET • VRST= 0,2÷0,9V • Power-on reset • VPOT= 1,3÷1,4V
Brown-out reset • Detekce zhoršené kvality napájecího napětí • Možnost zvolit jednu ze dvou hladin citlivosti • BODLEVEL = 0: VBOT = 4V • BODLEVEL = 1: VBOT = 2,6V • VBOT+ = VBOT + VHYST/2 • VBOT- = VBOT – VHYST/2 • VHYST= 130mV
Watch-dog • Ochrana proti „zabloudění“ programu • Korektně pracující program vykoná „jednou za čas“ instrukci WDR • Není-li instrukce WDR provedena do určité doby, provede se reset • Nezávislý interní oscilátor 1 MHz s volitelným předděličem 16k, 32k, 64k, 128k, 256k, 512k, 1024k nebo 2048k interval 16,3ms ÷ 2,1s • 2 úrovně zabezpečení • Safety Level 1 • Watch-dog je po resetu zakázán a spustí ho 1 v bitu WDE v registru WDTCR • Vypnutí a změna předěliče se provádí speciální sekvencí • Safety Level 2 • Watch-dog je stále aktivní a nelze ho vypnout • Změna předděliče se provádá speciální sekvencí • Konfigurační registr WDTCR • Bit 4 (WDCE) – ochrana proti nežádoucímu vypnutí watch-dogu • Bit 3 (WDE) – povolení funkce watch-dogu • Bit 2:1 (WDP) – dělící poměr hodin watch-dog timeru
Watch-dog – změnová sekvence • Na změnu dělícího poměru hodin watch-dogu nebo na vypnutí (pouze Safety Level 1) je potřeba vykonat speciální sekvenci – ochrana proti nechtěné změně 1. Jednou instrukcí se do registru WDTCR do bitů WDCE a WDE zapíše 1 2. Během následujících 4 strojových cyklů je možné zapsat do WDP resp.vynulovat WDE WDT_off: WDR ; reset WDT in r16, WDTCR ; Write onces to WDCE and WDE ori r16, (1<<WDCE)|(1<<WDE) out WDTCR, r16 ; Turn off WDT ldi r16, (0<<WDE) out WDTCR, r16 ret
Pojistky (fuses) • Slouží k hardwarové konfiguraci procesoru • Výběr oscilátoru • Aktivace watch-dog timeru • Povolení detektoru brow-out napětí a volba úrovně • Konfigurace bootblocku a lockbitů • Volba rozběhové doby • Nahrazení signálu externího resetu prostým I/O pinem (pozor, bez signálu RESET už nelze programovat sériovým programátorem) • Povolení SPI programování • Jsou realizovány buňkami EEPROM • Nastavit se dají pouze programátorem • Zavedená terminologie: • Nenaprogramovaná pojistka odpovídá hodnotě 1 • Naprogramovaná pojistka odpovídá hodnotě 0 • V programovacích nástrojích obvykle zaškrtnutý checkbox představuje naprogramovanou pojistku, tzn. hodnotu 0
Pojistky – výběr oscilátoru • Externí krystalový rezonátor • 0,4 ÷ 0,9 MHz • 0,9 ÷ 3,0 MHz • 3,0 ÷ 8,0 MHz • 1,0 ÷ 16 MHz • Externí nízkofrekvenční krystal (32768 Hz) • Externí RC oscilátor • 0,1 ÷ 0,9 MHz • 0,9 ÷ 3,0 MHz • 3,0 ÷ 8,0 MHz • 8,0 ÷ 12 MHz • Interní kalibrovatelný RC oscilátor • 1,0 MHz • 2,0 MHz • 4,0 MHz • 8,0 MHz • Externí hodiny