POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH

1 POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatroni...
Author: Czesław Skowroński
0 downloads 1 Views

1 POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH [email protected] www.zum.put.poznan.pl

2 Przetworniki ADC: Analog-Digital Converter DAC: Digital-Analog Converter Zadaniem przetworników jest konwersja postaci sygnału (ciągły/dyskretny). Znacząca większość mikrokontrolerów wyposażona jest jedynie w przetwornik ADC Przetwornik analogowo-cyfrowy zamienia sygnał analogowy na jego reprezentację cyfrową.

3 A/C i C/A Aby otrzymać sygnał cyfrowy, po dyskretyzacji dokonuje się dwóch zabiegów: kwantyzacji oraz redukcji sygnału do wartości bitowej. Wszystkie te zabiegi realizowane są poprzez przetwornik ADC. Trzy główne parametry przetwornika ADC to: Rozdzielczość przetwornika, wyrażana w bitach np. przetwornik 10 bitowy, 12 bitowy albo 16 bitowy Częstotliwość próbkowania, (krok czasowy pomiędzy zebraniem próbek sygnału) Zakres przetwarzania: napięce wej.

4 Próbkowanie i Kwantyzacja

5

6 Aliasing

7

8 Podstawowe parametry: zakres przetwarzanych napiec wejściowych: minimalne U0 i maksymalne U1, zwykle U0 = 0 V lub U0 = −U1 (wtedy mamy od −U1 do +U1), rozdzielczość w bitach – liczba bitów n wyznaczająca liczbę poziomów kwantowania 2^n, rozdzielczosc napieciowa – wielkosc kwantu (U1 − U0)/2^n, czas przetwarzania – czas potrzebny dla wykonania jednego cyklu przetworzenia, czestotliwosc próbkowania – maksymalna czestotliwość z jaka moga byc wykonywane kolejne przetworzenia – nie może przekroczyc odwrotnosci czasu przetwarzania.

9 Mikrokontroler ATmega128 wyposażony jest w przetwornik ADC o następujących właściwościach: 10-bitowa rozdzielczość 0.5LSB nieliniowości charakterystyki przetwarzania ±2% FSB całkowitej dokładności 13 - 260μs czasu przetwarzania do 76.9kSPS (maksymalnie do 15 kSPS przy maksymalnej rozdzielczości) 8 multipleksowanych pojedynczych wejść 7 różnicowych wejść 2 różnicowe wejścia z opcjonalnym wzmocnieniem 10x i 200x opcjonalne wyrównanie wyniku przetwarzania do lewej (rejestr ADC) 0 - VCC zakres pomiarowy napięć przetwornika opcjonalne wewnętrzne napięcie referencyjne AVCC lub stabilizowane 2.56V tryb ciągłego przetwarzania lub pojedynczej konwersji przerwanie od zakończenia konwersji tryb uśpienia z redukcją szumów

10

11 Szczegółowy schemat ADC w AtMega128

12 Uproszczony schemat ADC w AtMega128 Multiplexer GPIO (ADC_x) konwerter preskaler Zegar systemowy Rejestry konfiguracyjne Napięcie odniesienia (Aref) Napięcie zasilania (AVCC) Rejestr wynikuFlaga przerwania MCU Stab. 2.56V zasilanie odniesienie magistrala

13 Kanały wejściowe

14 Dwie z par wejść różnicowych (ADC1, ADC0, ADC2 i ADC3,) są wyposażone w programowalny stopień wzmacniający pozwalający na wzmocnienie sygnału z wejścia różnicowego : 0 dB (1x), 20 dB (10x) lub 46 dB (200x). Siedem analogowych różnicowych wejść używa wspólnej ujemnej końcówki (ADC1). Wtedy wzmacniana jest różnica między wejściami

15 Napięcie odniesienia Vref Przetwornik ADC przyrównuje wartość sygnału mierzonego do wartości napięcia odniesienia Vref doprowadzonego do pinu Aref. Wartość napięcia mierzonego równa Vref odpowiada maksymalnemu możliwemu wynikowi przetwornika. Wartość napięcia mierzonego równa 0 V odpowiada minimalnemu możliwemu wynikowi przetwornika.

16 Dla konwersji symetryczne: Dla konwersji asymetrycznej:

17 Napięcie odniesienia Vref Możliwe źródła Vref: Napięcie na pinie Aref Wewnętrzne AVCC wewnętrzne stabilizowane napięcie odniesienia, nominalnie 2,56 V,  Uwaga: wartość rzeczywista miedzy 2,3 a 2,7 V!; W przypadku korzystania z wewnętrznych źródeł Vref, pin Aref powinien być szeregowo podłączony do masy poprzez kondensator 100 nF Vref nie może być wyższe od Vcc, Vin nie może być większe od Vref, Vref nie może być mniejsze od 2V

18 Sposób podłączenia AVCC

19 Rejestr ADCSRA ADEN (AD ENable): Przetwornik ADC jest włączany przez ustawienie bitu ADEN = 1 w rejestrze ADCSRA. Przetwornik nie pobiera energii jeśli ADEN = 0 dlatego zalecane jest wyłączenie ADC przed przejściem do trybu uśpienia.

20 Rejestr ADCSRA ADSC (AD Start Conversion): Pojedynczą konwersję rozpoczyna się przez wpisanie 1 do bitu ADSC w rejestrze ADCSRA. Wartość tego bitu pozostaje = 1 tak długo, jak długo trwa proces konwersji, i zostaje zmieniona na 0 po ukończeniu konwersji. Jeśli kanał danych wejściowych jest wybrany podczas konwersji, ADC ukończy bieżącą konwersję przed zmianą kanału. ADFR (Free Running Mode): ADC stale próbkuje i uaktualnia rejestry danych. Po zakończeniu konwersji automatycznie rozpoczyna się następna

21 Rejestry konfiguracyjne ADIF (ADC Interrupt Flag): flaga ustawiana na 1 za każdym razem gdy zakończy się konwersja i uaktualni się rejestr wyniku. ADIE (ADC Interrupt Enable): lokalne zezwolenie na przerwanie od zakończenia konwersji ADC. ADPS0..2

22 Czas konwersji ADC Pierwsza konwersja trwa 25 taktów (inicjalizacja) Każka kolejna konwersja zajmuje 13 taktów Zatrzaśnięcie próbki (eng: sample-and-hold) 13.5 taktów od rozpoczęcia podczas inicjalizacji i 1.5 dla każdej kolejnej konwersji. Dla normalnej konwersji próbkowanie wynosi: gdzie: N – preskaler, F clk – zegar systemowy

23 Rejestr wyniku Rozdzielczość ADC w AtMega128 wynosi 10bit Rejestr wyniku został podzielony na dwa rejestru: ADCL i ADCH Możliwe jest justowanie wyniku do lewej lub do prawej Możliwe jest wywołanie makro „ADC” aby dokonać zespolenia ADC=ADCH*256+ADCL ADC H ADCL WYNIK (justowanie do prawej) WYNIK (justowanie do lewej)

24 Rejestry konfiguracyjne REFS0..1: ADLAR (ADC Left Adjust Result): 0 – justowanie wyniku do prawej (domyślnie) 1 - justowanie do lewej,

25

26 MUX4..0:

27

28 Atmega - Komparator Komparator analogowy porównuje wartości wejściowe na pinie dodatnim AIN0 oraz ujemnym AIN1. Kiedy napięcie na pinie AIN0 jest większe niż na ujemnym pinie AIN1, wyjście analogowego komparatora ACO zostanie ustawione na 1. Wyjście komparatora może zostać użyte do wyzwolenia wejścia układu czasowo-licznikowego 1. Dodatkowo komparator może wyzwalać poszczególne przerwania. Użytkownik może wybrać wyzwalanie przerwań na wyjściu komparatora zboczem narastającym, opadającym lub poziomem.

29 Bit 4 ACI Analog Comparator Interrupt Flag Jeśli ACIE = 1 i bit I w rejestrze stanu jest równy 1 przerwanie komparatora analogowego jest aktywne. Ten bit jest ustawiany sprzętowo jeśli wystąpi przerwanie zdefiniowane przez bity ACIS1 i ACIS0. ACI jest zerowany sprzętowo lub przez wpisanie logicznej jedynki do flagi. Bit 3 ACIE Analog Comparator Interrupt Enable Jeśli ACIE = 0 przerwanie jest wyłączone. Bit 2 ACIC Analog Comparator Input Capture Enable Jeśli ten bit jest równy jeden wyjście komparatora analogowego jest wprost połączone z wejściem licznika 1. Po wpisaniu w ten bit zera nie ma połączenia między licznikiem1 a komparatorem analogowym Bity 1 i 0 ACIS1, ACIS0: Analog Comparator Interrupt Mode Select – sygnały przerwań

30 Przykładowe podłączenie ADC

31 Przykłady użycia ADC

32

33 Przykład GCC #include unsigned volatile int wynikADC; ISR(ADC_vect) { wynikADC = ADC; if(wynikADC>240) PORTC|=(1

34 Pytania? www.zum.put.poznan.pl

35 Dziękuję (lista)