A/D převodníky a analogový komparátor
Z MAM wiki
(teploměr 168A) |
(Čidlo teploty) |
||
Řádka 7: | Řádka 7: | ||
== A/D převodník == | == A/D převodník == | ||
- | Mikroprocesor ATmega88, 168 má mezi periferiemi zařazen 10-bitový A/D převodník s postupnou aproximací, na vstupu doplněný multiplexorem (dle pouzdra procesoru 6 nebo 8 vstupů, v DIL28 pouze 6) a obvodem Sample&Hold. U ATmega168A je přidán ještě | + | Mikroprocesor ATmega88, 168 má mezi periferiemi zařazen 10-bitový A/D převodník s postupnou aproximací, na vstupu doplněný multiplexorem (dle pouzdra procesoru 6 nebo 8 vstupů, v DIL28 pouze 6) a obvodem Sample&Hold. U ATmega168A je přidán ještě teploměr. Doba převodu je 13 - 260 μs, rozsah vstupního napětí 0 V - Ucc, referenční napětí buď referenční zdroj 1,1 V, nebo analogové napájecí napětí blízké Ucc. Převodník lze spustit k provedení jedné konverze, nebo může být volně běžící, po ukončení převodu může vyvolat přerušení. Pro zvýšení přesnosti převodu lze procesor po dobu převodu uspat v Noise Canceler módu. |
- | + | Atmega168 pro A/D převod využívá 6 různých registrů, podrobnosti viz datasheet: | |
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Registr | ||
+ | ! Popis | ||
+ | |- | ||
+ | ! ADMUX | ||
+ | ! ADC Multiplexer Selection Register | ||
+ | |- | ||
+ | ! ADCSRA | ||
+ | ! ADC Control and Status Register A | ||
+ | |- | ||
+ | ! ADCSRB | ||
+ | ! ADC Control and Status Register B | ||
+ | |- | ||
+ | ! DIDR0 | ||
+ | ! Digital Input Disable Register 0 | ||
+ | |- | ||
+ | ! ADCL | ||
+ | ! ADC Data Register – Low | ||
+ | |- | ||
+ | ! ADCH | ||
+ | ! ADC Data Register – High | ||
+ | |} | ||
- | Registry s řídicími slovy nastavují zdroj referenčního napětí a vstupního signálu (ADMUX), způsob spouštění převodu, povolení přerušení a zdroj a předdělič taktovací frekvence převodu (ADCSRA – ADC Control and Status Register A), zdroj vnějšího spouštění (ADCSRB – ADC Control and Status Register B), zablokování logiky číslicových vstupů na vstupech analogového signálu (DIDR0 – Digital Input Disable Register 0). Výsledek převodu je uložen v registrech ADCL a ADCH (ADC Data Register). | + | Registry s řídicími slovy nastavují zdroj referenčního napětí a vstupního signálu (registr ADMUX), způsob spouštění převodu, povolení přerušení a zdroj a předdělič taktovací frekvence převodu (ADCSRA – ADC Control and Status Register A), zdroj vnějšího spouštění (ADCSRB – ADC Control and Status Register B), zablokování logiky číslicových vstupů na vstupech analogového signálu (DIDR0 – Digital Input Disable Register 0). Výsledek převodu je uložen v registrech ADCL a ADCH (ADC Data Register). |
+ | |||
+ | Převod startuje zápisem log. nuly do Power Reduction ADC bitu, PRADC, a log. 1 do ADC Start Conversion bitu, ADSC v registru ADCSRA. ADSC je vynulován po skončení převodu. Mimo to může být převod spouštěn automaticky vzestupnou hranou spouštěcího signálu (možnosti: volně běžící mód, analogový komparátor, externí přerušení INT0, událost na čítači/časovači 0 a 1). K ADC8 je připojen teplotní senzor (vyžaduje nastavit referenční napětí 1,1 V, typicky 1 mV/K, 314 mV při 25°C), bez kalibrace je velmi nepřesný, viz datasheet, chyba až 10°C, pro lepší výsledky nutno kalibrovat. | ||
Podobně pracuje A/D převodník u ATtiny45, má navíc možnost nastavit diferenciální vstupy a zvolit zesílení diferenciálního zesilovače mezi hodnotami 1 a 20, to při referenčním napětí 1,1 V dává napětí pro plný rozsah 55 mV, detaily viz datasheet [http://www.atmel.com/dyn/resources/prod_documents/doc2586.pdf ATtiny25/45/85 - podrobná technická dokumentace] (4,6 MB). | Podobně pracuje A/D převodník u ATtiny45, má navíc možnost nastavit diferenciální vstupy a zvolit zesílení diferenciálního zesilovače mezi hodnotami 1 a 20, to při referenčním napětí 1,1 V dává napětí pro plný rozsah 55 mV, detaily viz datasheet [http://www.atmel.com/dyn/resources/prod_documents/doc2586.pdf ATtiny25/45/85 - podrobná technická dokumentace] (4,6 MB). |
Aktuální verze z 10. 4. 2014, 06:23
[editovat] Analogový komparátor
Analogový komparátor porovnává vstupní signály na invertujícím AIN1 a neinvertujícím AIN0 vstupu, výstupní hodnota Analog Comparator output, ACO, je v log. 1, je-li napětí AIN0 větší než AIN1. Výstup může sloužit jako vstup čítače/časovače 1 a jeho změna nebo zvolená hrana může vyvolat přerušení. Ke vstupům může být připojen zdroj referenčního napětí, vstupní piny, nebo vstupní signál A/D převodníku. Detaily ovládání jsou v datasheetu, sekce Analog Comparator.
[editovat] A/D převodník
Mikroprocesor ATmega88, 168 má mezi periferiemi zařazen 10-bitový A/D převodník s postupnou aproximací, na vstupu doplněný multiplexorem (dle pouzdra procesoru 6 nebo 8 vstupů, v DIL28 pouze 6) a obvodem Sample&Hold. U ATmega168A je přidán ještě teploměr. Doba převodu je 13 - 260 μs, rozsah vstupního napětí 0 V - Ucc, referenční napětí buď referenční zdroj 1,1 V, nebo analogové napájecí napětí blízké Ucc. Převodník lze spustit k provedení jedné konverze, nebo může být volně běžící, po ukončení převodu může vyvolat přerušení. Pro zvýšení přesnosti převodu lze procesor po dobu převodu uspat v Noise Canceler módu.
Atmega168 pro A/D převod využívá 6 různých registrů, podrobnosti viz datasheet:
Registr | Popis |
---|---|
ADMUX | ADC Multiplexer Selection Register |
ADCSRA | ADC Control and Status Register A |
ADCSRB | ADC Control and Status Register B |
DIDR0 | Digital Input Disable Register 0 |
ADCL | ADC Data Register – Low |
ADCH | ADC Data Register – High |
Registry s řídicími slovy nastavují zdroj referenčního napětí a vstupního signálu (registr ADMUX), způsob spouštění převodu, povolení přerušení a zdroj a předdělič taktovací frekvence převodu (ADCSRA – ADC Control and Status Register A), zdroj vnějšího spouštění (ADCSRB – ADC Control and Status Register B), zablokování logiky číslicových vstupů na vstupech analogového signálu (DIDR0 – Digital Input Disable Register 0). Výsledek převodu je uložen v registrech ADCL a ADCH (ADC Data Register).
Převod startuje zápisem log. nuly do Power Reduction ADC bitu, PRADC, a log. 1 do ADC Start Conversion bitu, ADSC v registru ADCSRA. ADSC je vynulován po skončení převodu. Mimo to může být převod spouštěn automaticky vzestupnou hranou spouštěcího signálu (možnosti: volně běžící mód, analogový komparátor, externí přerušení INT0, událost na čítači/časovači 0 a 1). K ADC8 je připojen teplotní senzor (vyžaduje nastavit referenční napětí 1,1 V, typicky 1 mV/K, 314 mV při 25°C), bez kalibrace je velmi nepřesný, viz datasheet, chyba až 10°C, pro lepší výsledky nutno kalibrovat.
Podobně pracuje A/D převodník u ATtiny45, má navíc možnost nastavit diferenciální vstupy a zvolit zesílení diferenciálního zesilovače mezi hodnotami 1 a 20, to při referenčním napětí 1,1 V dává napětí pro plný rozsah 55 mV, detaily viz datasheet ATtiny25/45/85 - podrobná technická dokumentace (4,6 MB).
- Podrobný popis AD převodníku Využítí AD převodníku
- A/D na WikiBooks
- ADC on the ATMEGA krátká funkce v C s vysvětlením