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) jest modułem mikrokontrolera AVR, który porównuje wartości napięć wejściowych na końcówce nieodwracającej AIN0 i na końcówce odwracającej AIN1. Gdy napięcie na wejściu nieodwracającym 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. Analog Comparator Output). Wyjście to można wykorzystać do wyzwolenia funkcji Input Capture (rejestrowanie zdarzenia wejściowego) w timerze/liczniku 1. Dodatkowo komparator może wywołać oddzielne przerwanie, przydzielone wyłącznie komparatorowi analogowemu. Użytkownik może ustawić wyzwolenie tego przerwania przy zboczu narastającym, opadającym lub zmianie sygnału na wyjściu komparatora. Poniższy rysunek przedstawia schemat blokowy komparatora wraz z otaczającą go siecią logiczną:
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x08 (0x28) | 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. Gdy jako wejście komparatora użyte zostanie napięcie odniesienia, to stabilizuje się ono po pewnym czasie, dlatego pierwszy pomiar może nie być dokładny.
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 | |
0x01 (0x21) | AIN1D | AIN0D | DIDR | ||||||
Zapis/Odczyt | O | O | O | O | O | 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 AIN1D/AIN0D.
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.