Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2025 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Komparator analogowy (ang. Analog Comparator) porównuje wartości wejściowe na wejściu nieodwracającym AIN0 i na wejściu odwracającym AIN1.
Gdy napięcie na końcówce nieodwracającej AIN0 jest wyższe od napięcia na końcówce odwracającej AIN1, to zostaje ustawione na 1 wyjście komparatora analogowego ACO (ang. the Analog Comparator Output). Komparator może wyzwalać osobne przerwanie, które jest mu wyłącznie przydzielone. Użytkownik może wybrać wyzwalanie tego przerwania przy narastającym, opadającym lub zmieniającym się sygnale na wyjściu komparatora. Poniższy rysunek pokazuje schemat blokowy komparatora wraz z otaczającymi go układami logicznymi.
Bit zmniejszania poboru prądu przez przetwornik A/C (ang. ADC Power Reduction bit, PRADC) musi być wyłączony przy korzystaniu z multipleksera wejść przetwornika A/C. Wykonuje się to przez wyzerowanie bitu PRADC w rejestrze zmniejszania poboru prądu (ang. Power Reduction Register, PRR).
Gdy przetwornik analogowo/cyfrowy (ang. Analog to Digital Converter, ADC) jest skonfigurowany do pracy z kanałami nieróżnicowymi, możliwy jest wybór dowolnej z końcówek ADC[7:0] w celu zastąpienia wejścia odwracającego dla komparatora analogowego. Wybór końcówki dokonywany jest przy wykorzystaniu multipleksera przetwornika A/C. Jeśli zostanie ustawiony bit włączający multiplekser komparatora analogowego (ang. Analog Comparator Multiplexer Enable bit, ACME w rejestrze ACSRB), to bity MUX w rejestrze ADMUX wybierają końcówkę wejściową do zastąpienia wejścia odwracającego komparatora analogowego.
ACME | MUX[3:0] | Wejście odwracające komparatora |
0 | XXXX | AIN1 |
1 | 0000 | ADC0 |
1 | 0001 | ADC1 |
1 | 0010 | ADC2 |
1 | 0011 | ADC3 |
1 | 0100 | ADC4 |
1 | 0101 | ADC5 |
1 | 0110 | ADC6 |
1 | 0111 | ADC7 |
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x14 | ACD | ACBG | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 | ACSRA |
Zapis/Odczyt | Z/O | Z/O | O | Z/O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | N/A | 0 | 0 | 0 | 0 | 0 |
Gdy do tego bitu zostanie wpisana logiczna jedynka, wyłączane jest zasilanie komparatora analogowego. Bit można ustawiać w każdej chwili w celu wyłączania komparatora analogowego. Spowoduje to zmniejszenie poboru prądu w trybie aktywnym i w trybie bezczynności. Przy zmianie bitu ACD należy wyłączyć przerwanie z komparatora analogowego przez wyzerowanie bitu ACIE. W przeciwnym razie może wystąpić przerwanie przy zmianie tego bitu.
Gdy bit ten zostanie ustawiony, to na wejście nieodwracające komparatora analogowego zostaje podane wewnętrzne napięcie odniesienia o ustalonej wartości. Gdy bit ACBG jest wyzerowany, to wejście nieodwracające komparatora połączone jest z zewnętrzną końcówką AIN0.
Wyjście komparatora analogowego jest synchronizowane i następnie podłączane bezpośrednio do ACO. Synchronizacja wprowadza opóźnienie 1 ... 2 taktów zegara.
Ten bit jest ustawiany sprzętowo, gdy wyjście komparatora wyzwala przerwanie w trybie zdefiniowanym w bitach ACIS1 i ACIS0. Procedura obsługi przerwania z komparatora analogowego jest wykonana, jeśli bit ACIE zostanie ustawiony oraz jest ustawiony bit I w rejestrze stanu SREG. Bit ACI jest zerowany sprzętowo przy wykonaniu odpowiedniego wektora przerwania. Alternatywnie ACI można wyzerować przez zapis jedynki do tego znacznika.
Gdy bity ACIE i I w rejestrze stanu SREG są ustawione na 1, aktywowane jest przyjmowanie przerwań z komparatora analogowego. Gdy w bicie tym zostaje zapisane 0 logiczne, przerwanie to jest wyłączane.
Gdy w bicie zostanie zapisana logiczna jedynka, uaktywniana jest funkcja Input Capture w timerze/liczniku 1, która będzie wyzwalana przez komparator analogowy. Wyjście komparatora zostaje połączone bezpośrednio z obwodem Input Capture, co powoduje, iż komparator korzysta z układów zmniejszania szumu oraz wyboru zbocza dla przerwania Input Capture z timera/licznika 1.
Po zapisie zera logicznego nie istnieje połączenie pomiędzy komparatorem analogowym a funkcją Input Capture. Aby komparator mógł wyzwalać przerwanie Input Capture w timerze/liczniku 1, musi być ustawiony bit ICIE1 w rejestrze maskowania przerwań timerów/liczników TIMSK.
Bity te określają, które ze zdarzeń komparatora wyzwoli przerwanie z komparatora analogowego. Ich ustawienia są pokazane w poniższej tabeli:
ACIS1 | ACIS0 | Tryb przerwania |
0 | 0 | Przerwanie z komparatora analogowego przy zmianie stanu wyjścia. |
0 | 1 | Zarezerwowane |
1 | 0 | Przerwanie z komparatora analogowego przy opadającym zboczu na wyjściu. |
1 | 1 | Przerwanie z komparatora analogowego przy narastającym zboczu na wyjściu. |
Przy zmianie stanu bitów ACIS1/ACIS0 należy wyłączyć przerwanie z komparatora analogowego przez wyzerowanie bitu ACIE. W przeciwnym razie może wystąpić przerwanie przy zmianie tego bitu.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x13 | HSEL | HLEV | ACLP | - | ACCE | ACME | ACIRS1 | ACIRS0 | ACSRB |
Zapis/Odczyt | Z/O | Z/O | Z/O | O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Gdy bit ten zostanie zapisany logiczną jedynką, jest uaktywniana histereza komparatora analogowego. Poziom histerezy wybierany jest bitem HLEV.
Po uaktywnieniu bitem HSEL bit poziom histerezy można ustawić za pomocą bitu HLEV, jak pokazuje poniższa tabela:
HSEL | HLEV | Histereza komparatora analogowego |
0 | X | Wyłączona |
1 | 0 | 20 mV |
1 | 50 mV |
Ten bit jest zarezerwowany dla QTouch, zawsze zapisuj go stanem zero.
Ten bit jest zarezerwowany i przy odczycie zawsze ma stan zero.
Ten bit jest zarezerwowany dla QTouch, zawsze zapisuj go stanem zero.
Gdy ten bit zostanie zapisany stanem logicznym jeden i jest wyłączony przetwornik A/C (bit ADEN w ADCSRA ma stan zero), to multiplekser przetwornika A/C wybiera wejście odwracające komparatora analogowego. Gdy w bicie zostanie umieszczone logiczne zero, to do wejścia odwracającego komparatora analogowego zostaje podłączona końcówka zewnętrzna AIN1.
Ten bit jest zarezerwowany dla QTouch, zawsze zapisuj go stanem zero.
Ten bit jest zarezerwowany dla QTouch, zawsze zapisuj go stanem zero.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x0D | ADC7D | ADC6D | ADC5D | ADC4D | ADC3D | ADC2D | ADC1D | ADC0D | DIDR0 |
Zapis/Odczyt | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Gdy dany bit jest zapisany logiczną jedynką, zostaje wyłączony bufor wejścia cyfrowego dla końcówek AIN1/0. Odpowiedni bit rejestru PIN będzie wtedy dawał zawsze odczyt zero. Jeśli dana końcówka jest używana jako wejście analogowe, a jej wejście cyfrowe nie jest potrzebne, to można zmniejszyć zużycie energii w buforze wejść cyfrowych przez zapis logicznej jedynki do danego bitu ADC2D/ADC1D.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2025 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.