ADC - WEMiF
Transkrypt
ADC - WEMiF
Komunikacja w Mikrokontrolerach Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski Konwerter analogowo-cyfrowy ADC ADC - cechy • 10-o bitowy wynik • nieliniowość 0,5 LSB • dokładność konwersji ± 2 LSB • czas konwersji 65÷260 µs • 8 pojedynczych kanałów wejściowych • 7 kanałów różnicowych • 2 kanały różnicowe ze wzmocnieniem • zapis wyniku wyrównywany do P lub L • zakres napięć 0 – Vcc [V] • 3 rodzaje napięcia odniesienia • tryb Free Running • wyzwalanie konwersji zdarzeniem • przerwanie od zakończenia konwersji • konwersja w stanie uśpienia – eliminacja zakłóceń Rejestry: ADMUX (ADC Multiplexer) ADCSRA (ADC Control/Status Reg.) ADCL + ADCH (ADC Data Reg.) SFIOR (Special Function Register) Przerwanie: Zakończenie konwersji Flaga ADIF (ADCSRA) Włączanie ADIE (ADCSRA) Wektor 0x00E ADC - budowa Rozpoczęcie konwersji Rozpoczęcie konwersji Pojedyncza konwersja: ADSC (ADCSRA) « 1 1 póki trwa konwersja zmiana MUX, REF gdy ADSC = 0 Konwersja wielokrotna (free running): ADATE (ADCSRA) « 1 ADTS 2..0 (SFIOR) « ‘000’ ADSC (ADCSRA) « 1 Rozpoczęcie konwersji Konwersja wyzwalana zdarzeniem (triggering): ADATE (ADCSRA) « 1 ADTS 2..0 (SFIOR) « ‘001’ ÷ ‘111’ wystąpienie zdarzenia wyzwalającego (zbocze ^ na fladze obserwowanego przerwania) Przebieg konwersji Przebieg konwersji U [V] ADCHL [-] t [µs] Przebieg konwersji - pojedyncza Start: ADEN « 1 ADSC « 1 12 cykli zeg. – rozgrzewka 1,5 cykla zeg. - SAMPLE AND HOLD 11,5 cykli zeg. - konwersja Inne typy konwersji Wielokrotna (free running) Start pierwszej – ADSC « 1 Start kolejnych – natychmiast po poprzedniej Wyzwalana zdarzeniem (triggering) Start – flaga startująca « 1 Większy odstęp po konwersji - synchronizacja Przebieg konwersji - taktowanie 50 ÷ 200 kHz ADEN « 0 => stop CLK Konwersja sygnałów różnicowych Różnicowe + triggering: ADEN « 0 ADEN « 1 (przed każdym) Eliminacja zakłóceń Eliminacja zakłóceń Wynik konwersji Wynik konwersji DLA POJEDYNCZEGO SYGNAŁU ANALOGOWEGO: • 10-bitowa naturalna liczba binarna (0÷1023) • zapis do rejestru ADC (ADCH, ADCL) • wynik obliczany ze wzoru lub z prostej proporcji: 0 V --- 0 (w ADC) 5 V --- 1023 (w ADC) DLA KONWERSJI RÓŻNICOWEJ: • liczba 10-bitowej w kodzie U2 (-512÷511) • zapis do rejestru ADC (ADCH, ADCL) • wynik obliczany ze wzoru Rejestry konwertera Analogowo-cyfrowego ADC Multiplexer Selection Register wybór kanału wejściowego, napięcia odniesienia, zapis wyniku zmiana MUX, REF gdy ADSC = 0 ADMUX ADC Data Register 1 - ADLAR (ADCSRA) - 0 rejestr wyniku ADC Control and Status Register A rejestr sterujący ADEN – ADC on/off (ADC enable) ADSC – start konwersji (ADC start conversion) ADATE – automatyczne wyzwalanie (zob. rejestr SFIOR) (ADC auto trigger enable) ADIF – flaga przerwania (ADC interrupt flag) ADIE – przerwanie on/off (ADC interrupt enable) ADC Control and Status Register A rejestr sterujący (ADC prescaler select) Special Function IO Register Przykład Konwerter analogowo-cyfrowy Program przykładowy