Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek
Konsultacje: Wojciech Grodowski, mgr inż. Janusz Wałaszek

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Mikrokontrolery

ATtiny4/5/9/10

Przetwornik analogowo/cyfrowy

obrazek

Educational and Non-Profit Use of Copyrighted Material:

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s permission is not required when using copyrighted material in: (1) an academic report, thesis, or dissertation; (2) classroom handouts or textbook; or (3) a presentation or article that is solely educational in nature (e.g., technical article published in a magazine).

https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

SPIS TREŚCI
Podrozdziały

obrazek

Cechy przetwornika A/C

Na początek:  podrozdziału   strony 

Przegląd

Mikrokontroler ATtiny 5/10 zawiera 8-bitowy, kompensacyjny przetwornik analogowo/cyfrowy (ang. ADC – Analog to Digital Converter). Przetwornik A/C połączony jest z 4-kanałowym multiplekserem analogowym, który pozwala na podłączenie do końcówek portu B mikrokontrolera 4 różnych napięć. Napięcia te są mierzone względem masy 0V (GND).
Przetwornik A/C zawiera układ próbkowania z pamięcią, który zapewnia, iż napięcie wejściowe dla przetwornika A/C będzie utrzymywane na stałym poziomie podczas przetwarzania. Schemat blokowy przetwornika A/C umieszczony jest w następnym podrozdziale.
Wewnętrzne napięcie odniesienia VCC jest udostępniane przez sam mikrokontroler.
Przetwornik A/C nie jest dostępny w mikrokontrolerach ATtiny4 i 9.
Na początek:  podrozdziału   strony 

Działanie

W celu umożliwienia korzystania z przetwornika A/C, należy wyłączyć bit ograniczania poboru energii (ang. Power Reduction bit, PRADC) w rejestrze zmniejszania poboru energii. Wykonuje się to przez wyzerowanie bitu PRADC bit. Zobacz na opis rejestru PRR.

Przetwornik A/C jest włączany przez ustawienie bitu ADEN w rejestrze A sterowania i stanu przetwornika A/C (ang. ADCSRA – ADC Control and Status Register A). Wybór kanału wejściowego nie będzie ważny, dopóki bit ADEN nie zostanie ustawiony. Przetwornik A/C nie zużywa energii przy wyzerowanym bicie ADEN, zatem zaleca się wyzerowanie tego bitu przed wejściem w tryb uśpienia oszczędzający energię.

Przetwornik A/C przetwarza analogowe napięcie wejściowe na 8-bitową wartość cyfrową wykorzystując metodę kolejnych przybliżeń (opisaliśmy taki przetwornik tutaj). Wartość minimalna reprezentuje napięcie masy GND, a wartość maksymalna reprezentuje napięcie zasilające VCC.

Analogowy kanał wejściowy wybiera się przez zapis bitów MUX1:0 w rejestrze multipleksera przetwornika A/C, ADMUX. Każda z końcówek wejściowych ADC0...ADC3 może zostać wybrana jako wejście dla przetwornika A/C.

Przetwornik A/C generuje 8-bitowy wynik, który jest obecny w rejestrze danych przetwornika, ADCL.

Przetwornik A/C posiada swoje własne żądanie obsługi przerwania, które może być wyzwalane przy zakończeniu przetwarzania.

Schemat blokowy przetwornika analogowo cyfrowego

obrazek

Na początek:  podrozdziału   strony 

Rozpoczynanie przetwarzania

Upewnij się, że bit PRADC w rejestrze zmniejszania poboru energii (ang. Power Reduction Register, PRR) jest wyzerowany, co umożliwi zasilanie przetwornika A/C. Pojedyncze przetwarzanie rozpoczyna się po zapisie logicznej jedynki do bitu rozpoczęcia przetwarzania w przetworniku A/C (ang. ADC Start Conversion bit, ADSC w rejestrze ADCSRA). Ten bit pozostaje w stanie wysokim tak długo, jak trwa przetwarzanie, po czym jest sprzętowo zerowany, gdy przetwarzanie zakończy się. Jeśli w trakcie przetwarzania zostanie wybrany inny kanał wejścia, to przetwornik zakończy bieżące przetwarzanie zanim zmieni ten kanał.

Alternatywnie przetwarzanie może być wyzwalane automatycznie przez różne źródła. Autowyzwalanie jest włączane przez ustawienie bitu ADATE w rejestrze ADCSRA. Źródło wyzwalania jest wybierane przez bity ADTS w rejestrze ADCSRB. Gdy w sygnale wyzwalającym pojawi się dodatnie zbocze, to preskaler przetwornika A/C zostaje zresetowany i rozpoczyna się przetwarzanie. Daje to możliwość rozpoczynania przetwarzania w ustalonych odstępach czasu. Jeśli sygnał wyzwalania wciąż jest ustawiony przy końcu przetwarzania, nowe przetwarzanie nie zostanie uruchomione. Jeśli w trakcie przetwarzania pojawi się kolejne zbocze dodatnie w sygnale wyzwalającym, to zbocze to zostanie zignorowane. Zwróć uwagę, iż znacznik przerwania zostanie ustawiony, nawet jeśli określone przerwanie jest wyłączone. W ten sposób przetwarzanie może zostać wyzwolone bez wywoływania przerwania. Jednakże znacznik przerwania musi zostać wyzerowany, aby wyzwolić nowe przetwarzanie przy następnym zdarzeniu przerwania.

Logika autowyzwalania przetwornika A/C

obrazek

Używanie znacznika przerwania od przetwornika A/C jako źródła wyzwalania sprawia, że przetwornik rozpoczyna nowe przetwarzanie tuż po zakończeniu bieżącego. W takim przypadku przetwornik pracuje w trybie ciągłym (ang. Free Running mode), ciągle próbkując i uaktualniając rejestr danych ADCL. Pierwsze przetwarzanie musi zostać uruchomione przez zapis logicznej jedynki do bitu ADSC w rejestrze ADCSRA. W trybie tym przetwornik będzie wykonywał kolejne przetwarzania niezależnie od stanu znacznika przerwania ADIF.

Jeśli autowyzwalanie jest wyłączone, pojedyncze przetwarzania można uruchamiać przez zapis jedynki do bitu ADSC w ADCSRA. Bit ADSC może również być używany do sprawdzania, czy przetwarzanie jest w trakcie wykonywania. Podczas przetwarzania bit ten daje odczyt 1 bez względu na sposób uruchomienia tego przetwarzania.

Na początek:  podrozdziału   strony 

Preskaler oraz czasy przetwarzania

Standardowo układ kompensacyjny wymaga częstotliwości zegara wejściowego pomiędzy 50kHz a 200 kHz, aby osiągnąć maksymalną rozdzielczość.

Preskaler przetwornika A/C

obrazek

Moduł przetwornika A/C zawiera 7-bitowy preskaler, który generuje impulsy zegarowe dla przetwornika w odpowiednim zakresie częstotliwości z impulsów zegarowych mikroprocesora o częstotliwości powyżej 100kHz. Podział w wybór częstotliwości impulsów zegarowych z preskalera jest dokonywany przez ustawienie bitów ADPS w ADCSRA. Preskaler rozpoczyna zliczanie od momentu włączenia przetwornika A/C przez ustawienie bitu ADEN w ADCSRA. Preskaler pracuje tak długo, jak bit ADEN jest ustawiony, a jest ciągle resetowany, gdy bit ADEN przyjmuje stan niski.

Przy inicjowaniu pojedynczego przetwarzania przez ustawienie bitu ADSC w ADCSRA, przetwarzanie rozpoczyna się od następnego narastającego zbocza cyklu zegarowego przetwornika A/C.

Zwykłe przetwarzanie zajmuje 13 cykli zegarowych przetwornika A/C. Pierwsze przetwarzanie po włączeniu przetwornika (ustawienie bitu ADEN w ADCSRA) zajmuje 25 cykli zegarowych w celu inicjalizacji obwodów analogowych.

Wykres czasowy przetwornika A/C, pierwsze przetwarzanie (tryb pojedynczego przetwarzania)
obrazek

Faktyczne próbkowanie napięcia wejściowego i zapamiętanie jego wartości na czas przetwarzania w przetworniku A/C ma miejsce w trzecim cyklu zegarowym przetwornika po rozpoczęciu normalnego przetwarzania, a po szesnastym cyklu po rozpoczęciu pierwszego przetwarzania po włączeniu przetwornika. Gdy przetwarzanie zostanie zakończone, wynik jest wpisywany do rejestru danych przetwornika, a znacznik ADIF zostaje ustawiony. W trybie pojedynczego przetwarzania bit ADSC jest w tym momencie zerowany. Oprogramowanie może ustawić go ponownie, a nowe przetwarzanie rozpocznie się od pierwszego narastającego zbocza sygnału zegarowego przetwornika A/C.

Wykres czasowy przetwornika A/C, pojedyncze przetwarzania
obrazek

Gdy jest używane samowyzwalanie, preskaler zostaje zresetowany przy zdarzeniu wyzwalającym. Zapewnia to ustalony odstęp czasu pomiędzy zdarzeniem wyzwalającym a rozpoczęciem przetwarzania. W tym trybie próbkowanie z zapamiętaniem ma miejsce po dwóch cyklach zegarowych przetwornika A/C od narastającego zbocza źródłowego sygnału wyzwalania. Trzy dodatkowe cykle zegara mikroprocesora są zużyte dla układów synchronizujących.

Wykres czasowy przetwornika A/C, przetwarzanie z autowyzwalaniem
obrazek

W trybie ciągłym nowe przetwarzanie rozpoczyna się natychmiast po zakończeniu poprzedniego, a bit ADSC pozostaje w stanie wysokim.

Wykres czasowy przetwornika A/C, przetwarzanie ciągłe
obrazek

Poniższa tabela podsumowuje czasy przetwarzania w przetworniku A/C:

Warunek Próbkowanie z zapamiętaniem
Liczba cykli od rozpoczęcia
przetwarzania
Czas przetwarzania (w cyklach)
Pierwsze przetwarzanie 16,5 25
Normalne przetwarzania 3,5 13
Przetwarzania z autowyzwalaniem 4 13,5
Na początek:  podrozdziału   strony 

Zmienianie kanału

Bity MUXn w rejestrze ADMUX są pojedynczo buforowane poprzez rejestr tymczasowy, do którego ma swobodny dostęp mikroprocesor. Zapewnia to, iż wybór kanału ma miejsce tylko w bezpiecznym punkcie podczas przetwarzania. Kanał jest stale uaktualniany aż do rozpoczęcia przetwarzania. Gdy przetwarzanie się rozpocznie wybór kanału zostaje zablokowany, aby zapewnić wystarczający czas próbkowania dla przetwornika A/C. Stałe uaktualnianie zostaje wznowione w ostatnim cyklu zegarowym przetwornika przed zakończeniem przetwarzania (bit ADIF w ADCSRA jest ustawiany). Zwróć uwagę, że przetwarzanie rozpoczyna się od następnego narastającego zbocza sygnału zegara przetwornika A/C po zapisaniu bitu ADSC. Z tego powodu użytkownik nie powinien wpisywać nowych wartości wyboru kanału do ADMUX, aż upłynie jeden okres zegara przetwornika A/C po wpisaniu bitu  ADSC.

Jeśli jest używane autowyzwalanie, to dokładny czas zdarzenia wyzwalającego może być niedeterministyczny. Aktualizacja rejestru ADMUX musi być wykonywana ze szczególną ostrożnością, aby kontrolować, na które przetwarzanie wpłyną nowe ustawienia.

Jeśli oba bity ADATE i ADEN zostaną zapisane stanem 1, to zdarzenie przerwania może wystąpić w dowolnym czasie. Jeśli rejestr ADMUX jest zmieniany w tym okresie, to użytkownik nie będzie wiedział, czy następne przetwarzanie będzie oparte na nowych, czy na starych ustawieniach. Rejestr ADMUX można bezpiecznie uaktualnić następująco:

Gdy rejestr ADMUX jest modyfikowany w trakcie jednego z tych warunków, nowe ustawienia wpłyną na następne przetwarzanie w przetworniku A/C.

Kanały wejściowe przetwornika A/C

Przy zmianie wyboru kanału użytkownik powinien przestrzegać poniższych wskazówek, aby zapewnić, iż został wybrany właściwy kanał:

Napięcie odniesienia przetwornika A/C

Napięcie odniesienia przetwornika A/C określa zakres przetwarzania, który w tym przypadku jest ograniczony do przedziału od  0V (VGND) do VREF = Vcc. Kanały o napięciu przewyższającym VREF dadzą w wyniku kody nasycone do 0xFF.

Na początek:  podrozdziału   strony 

Reduktor szumu przetwornika A/C

Przetwornik A/C posiada możliwość zmniejszania szumów, która umożliwia przetwarzanie podczas trybu uśpienia w celu zmniejszenia szumu pochodzącego od pracy mikroprocesora oraz innych układów peryferyjnych w mikrokontrolerze. Reduktor szumu może być używany z przetwornikiem A/C i trybem bezczynności (ang. Idle mode). Aby skorzystać z tej cechy, należy użyć następującej procedury:

Zwróć uwagę, że przetwornik A/C nie zostanie automatycznie wyłączony, gdy mikroprocesor wejdzie w inne tryby uśpienia niż tryb bezczynności oraz tryb zmniejszania szumu przetwornika A/C. Uzytkownik powinien wpisać 0 do bitu ADEN, przed wejściem do takich trybów uśpienia, aby zapobiec nadmiernemu poborowi energii.

Na początek:  podrozdziału   strony 

Obwody analogowe

Układ analogowego wejścia dla kanałów przetwornika A/C jest pokazany na poniższym rysunku. Źródło analogowe przyłożone do końcówki ADCn jest obciążone pojemnością końcówki oraz upływom wejściowym bez względu na to, czy ten kanał został wybrany jako wejście dla przetwornika A/C. Gdy kanał jest wybrany, źródło musi zasilić kondensator CS/H (ang. Sample and Hold capacitor – kondensator próbkowania i podtrzymania) poprzez szeregowy opornik (połączona oporność ścieżki wejścia).

obrazek

Kondensator pokazany na rysunku przedstawia całkowitą pojemność, łącznie z kondensatorem CS/H oraz z wszelkimi obcymi i pasożytniczymi pojemnościami wewnątrz mikrokontrolera. Podana wartość jest najgorszym przypadkiem. Przetwornik A/C jest zoptymalizowany dla sygnałów analogowych o impedancji wyjściowej w przybliżeniu 10 kΩ lub mniejszej. Dla takich źródeł czas próbkowania będzie pomijalny. Jeśli zostanie użyte źródło o większej impedancji, czas próbkowania będzie zależał od tego, jak długo źródło potrzebuje ładować kondensator CS/H. Tutaj może być duży rozrzut. Zaleca się użytkownikom używania źródeł o niskiej impedancji oraz wolnozmiennych sygnałów, ponieważ to minimalizuje czas ładowania kondensatora CS/H do pożądanej wartości napięcia wejściowego.

Składowe sygnału wyższe od częstotliwości Nyquista (fADC/2) nie powinny btć obecne, aby uniknąć nieprzewidywalnych zniekształceń. Należy usunąć składowe o wysokich częstotliwościach za pomocą filtru dolnoprzepustowego przed przekazaniem sygnałów jako wejścia dla przetwornika A/C.

Na początek:  podrozdziału   strony 

Sposoby zmniejszania szumów

Układy cyfrowe wewnątrz i na zewnątrz mikrokontrolera generują interferencje elektromagnetyczne, które mogą wpłynąć na dokładność pomiarów analogowych. Gdy dokładność przetwarzania jest istotna, to poziom szumów można obniżyć przez zastosowanie poniższych sposobów:

Tam, gdzie wymagana jest wysoka dokładność przetwornika A/C, zaleca się stosowanie trybu zmniejszania szumu, co opisano powyżej. Dobrze zaprojektowany system z właściwie rozmieszczonymi, zewnętrznymi kondensatorami bocznikowymi zmniejsza potrzebę stosowania trybu zmniejszania szumu dla przetwornika A/C.

Na początek:  podrozdziału   strony 

Definicje dokładności przetwornika A/C

n-bitowy Przetwornik Analogowo/Cyfrowy o pojedynczej końcówce (ang. n-bit single-ended ADC)   przetwarza w sposób liniowy napięcia pomiędzy GND a VREF w liczbę binarną o 2n poziomach. Najniższy kod daje odczyt 0, a najwyższy daje odczyt 2n-1. Kilka parametrów opisuje odchylenie od idealnego zachowania:

obrazek

obrazek

obrazek

obrazek

Na początek:  podrozdziału   strony 

Wynik przetwarzania przetwornika A/C

Po zakończeniu przetwarzania (bit ADIF w stanie wysokim) wynik przetwarzania znajduje się w rejestrze danych przetwornika A/C (ADCL). Wynik ten wynosi:

gdzie VIN jest napięciem na wybranej końcówce wejściowej, a VCC jest napięciem odniesienia. 0x00 reprezentuje napięcie o poziomie masy analogowej, a 0xFF reprezentuje wybrane napięcie odniesienia minus jeden LSB (najmłodszy bit).

Na początek:  podrozdziału   strony 

Opis rejestrów

ADMUX – ADC Multiplexer Selection Register – Rejestr wyboru kanału multipleksera przetwornika A/C

Bit 7 6 5 4 3 2 1 0  
0x1B - - - - - - MUX1 MUX0 ADMUX
Zapis/Odczyt O O O O O O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Bity 7:2 – Zarezerwowane

Te bity są zarezerwowane i przy odczycie zawsze dają stan 0.

Bity 1:0 – MUX1:0: Analog Channel Selection Bits – Bity wyboru kanału analogowego

Wartość tych bitów wybiera wejściowy kanał analogowy, który zostanie podłączony do wejścia przetwornika A/C wg poniższej tabeli:

MUX1 MUX0 Wejście analogowe Końcówka
0 0 ADC0 PB0
1 ADC1 PB1
1 0 ADC2 PB2
1 ADC3 PB3

Jeśli bity te zostaną zmienione podczas przetwarzania, to zmiana wejdzie w życie dopiero
po zakończeniu tego przetwarzania (gdy bit ADIF w ADCSRA zostanie ustawiony).


ADCSRA – ADC Control and Status Register A – Rejestr A sterowania i stanu przetwornika A/C

Bit 7 6 5 4 3 2 1 0  
0x1D ADEN ADSC ADATE ADIF ADIE ADPS2 ADOS1 ADPS0 ADCSRA
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  

Bit 7 – ADEN: ADC Enable – Włączenie przetwornika A/C

Ustawienie tego bitu w stan 1 włącza przetwornik A/C. Po wpisaniu tutaj bitu 0 przetwornik A/C zostaje wyłączony. Wyłączenie przetwornika podczas przetwarzania przerywa to przetwarzanie.

Bit 6 – ADSC: ADC Start Conversion – Rozpoczęcie przetwarzania w przetworniku A/C

W trybie pojedynczego przetwarzania (ang. Single Conversion mode) zapisz do tego bitu 1, aby rozpocząć każde przetwarzanie. W trybie ciągłym (ang. Free Running mode) zapisz tutaj 1, aby rozpocząć pierwsze przetwarzanie. Pierwsze przetwarzanie po ustawieniu bitu ADSC i włączeniu przetwornika A/C lub gdy bit ADSC jest ustawiany równolegle z bitem ADEN zajmie 25 cykli zegarowych przetwornika A/C zamiast normalnych 13 cykli. Podczas pierwszego przetwarzania wykonywana jest inicjalizacja przetwornika A/C.

W trakcie przetwarzania bit ADSC będzie dawał odczyt 1. Gdy przetwarzanie zostanie wykonane, bit wróci do stanu 0. Zapisanie 0 do tego bitu nie daje żadnego efektu.

Bit 5 – ADATE: ADC Auto Trigger Enable – Włączenie autowyzwalania przetwornika A/C

GDy ten bit zostanie zapisany stanem 1, zostaje włączone autowyzwalanie przetwornika A/C. Przetwornik A/C będzie rozpoczynał przetwarzanie przy dodatnim zboczu wybranego sygnału wyzwalającego. Źródło sygnału wyzwalającego jest wybierane przez ustawienie stanu bitów wybierania źródła wyzwalania ADTS w rejestrze ADCSRB.

Bit 4 – ADIF: ADC Interrupt Flag – Znacznik przerwania z przetwornika A/C

Ten bit jest ustawiany, gdy zakończy się przetwarzanie w przetworniku A/C i rejestry danych (w ATtiny 5/10 jest tylko jeden rejestr danych) zostają uaktualnione. Żądanie przerwania przy zakończeniu przetwarzania w przetworniku A/C zostanie wygenerowane, jeśli bit ADIE jest ustawiony. Bit ADIF jest zerowany sprzętowo przy wykonaniu odpowiedniego wektora obsługi przerwania. Alternatywnie można go wyzerować przez zapis logicznej jedynki do tego znacznika.

Bit 3 – ADIE: ADC Interrupt Enable – Włączenie przerwania z przetwornika A/C

Gdy bit ten zostanie zapisany stanem 1, to zostanie włączone żądanie przerwań przy zakończeniu przetwarzania w przetworniku A/C.

Bity 2:0 – ADPS2:0: ADC Prescaler Select Bits – Bity wyboru preskalera

Bity te określają współczynnik podziału pomiędzy częstotliwością zegara systemowego a częstotliwością zegara wejściowego dla przetwornika A/C. Poniższa tabela przedstawia możliwe wartości:

ADPS2 ADPS1 ADPS0 Współczynnik podziału
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128

ADCSRB – ADC Control and Status Register B – Rejestr B sterowania i stanu przetwornika A/C

Bit 7 6 5 4 3 2 1 0  
0x1C - - - - - ADTS2 ADTS1 ADTS0 ADCSRB
Zapis/Odczyt O O O O O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Bity 7:3 – Zarezerwowane

Te bity są zarezerwowane i przy odczycie zawsze dają stan 0.

Bity 2:0 – ADTS2:0: ADC Auto Trigger Source – Źródło autowyzwalania przetwornika A/C

Jeśli bit ADATE w ADCSRA zostanie zapisany stanem jeden, to wartość tych bitów wybierze, które źródło będzie wyzwalało przetwarzanie w przetworniku A/C. Jeśli bit ADATE jest wyzerowany, to ustawienia bitów ADTS2:0 nie będą miały żadnego efektu. Przetwarzanie będzie wyzwalana przez narastające zbocze wybranego znacznika przerwania. Zwróć uwagę, iż przełączenie ze źródła wyzwalania będącego w stanie niskim na źródło będące w stanie wysokim wygeneruje dodatnie zbocze sygnału wyzwalania. Jeśli bit ADEN w ADCSRA jest ustawiony, to rozpocznie się przetwarzanie. Przełączenie na tryb ciągły (ADTS[2:0]=0) nie wywoła zdarzenia wyzwalającego, nawet jeśli znacznik przerwania zostanie ustawiony.

Wybór źródeł autowyzwalania dla przetwornika A/C

ADTS2 ADTS1 ADTS0 Źródło wyzwalania
0 0 0 Tryb ciągły
0 0 1 Komparator analogowy
0 1 0 Znacznik przerwania zewnętrznego 0
0 1 1 Zgodność porównania A w timerze/liczniku
1 0 0 Przepełnienie timera/licznika
1 0 1 Zgodność porównania B w timerze/liczniku
1 1 0 Żądanie przerwania przy zmianie stanu końcówki
1 1 1 Zdarzenie Input Capture w timerze/liczniku

ADCL – ADC Data Register – Rejestr danych przetwornika A/C

Bit 7 6 5 4 3 2 1 0  
0x19 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 ADCL
Zapis/Odczyt O O O O O O O O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Gdy przetwarzanie zostanie zakończone, tutaj znajduje się 8-bitowy wynik.

Bity 7:0 – ADC7:0: ADC Conversion Result – Wynik przetwarzania w przetworniku A/C

Te bity reprezentują wynik przetwarzania.


DIDR0 – Digital Input Disable Register 0 – Rejestr 0 wyłączania wejść cyfrowych

Bit 7 6 5 4 3 2 1 0  
0x17 - - - - ADC3D ADC2D ADC1D ADC0D DIDR0
Zapis/Odczyt O O O O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Bity 7:4 – Zarezerwowane

Te bity są zarezerwowane i przy odczycie zawsze dają stan 0.

Bity 3:0 – ADC3D..ADC0D: ADC3..0 Digital Input Disable – Wyłączanie cyfrowego wejścia

Gdy dany bit ma stan logiczny 1, to cyfrowy bufor wejściowy na odpowiadającej mu końcówce przetwornika A/C zostaje wyłączony.  W takim przypadku odczyt stanu końcówki w rejestrze PIN da zawsze wartość 0. Gdy do końcówki ADC3...0 zostaje doprowadzony sygnał analogowy, a wejście cyfrowe tej końcówki nie jest potrzebne, to ten bit powinien zostać zapisany stanem q, aby zmniejszyć pobór prądu w cyfrowym buforze wejściowym.

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2023 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: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.