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

©2021 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Mikrokontrolery

ATmega48A/PA/88A/PA/168A/PA/328/P

Porty we/wy

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

Wprowadzenie

W rozdziale pojawiają się terminy angielskie Input Capture oraz Output Compare. Nie tłumaczyłem ich, ponieważ w języku polskim brak jest dobrych odpowiedników.

Termin Input Capture oznacza reakcję na zdarzenia, które mogą się pojawić w trakcie pracy mikrokontrolera. Reakcja ta polega na zapisaniu czasu wystąpienia tego zdarzenia, czyli na Rejestracji Czasu Zdarzenia Wejściowego. Odbywa się to w ten sposób, iż w momencie wykrycia zdarzenia (np. zmiany poziomu sygnału na określonej końcówce mikrokontrolera) następuje zapamiętanie w osobnym rejestrze stanu timera/licznika (stąd słowo Capture, które po angielsku oznacza "przechwycenie" lub "zarejestrowanie"). Stan ten jest znacznikiem czasu (ang. time-stamp), w którym wystąpiło zdarzenie i może być w różny sposób wykorzystywany w aplikacji.

Termin Output Compare odnosi się do zmiany stanu wybranej końcówki, jeśli wewnętrzny licznik odmierzy odpowiedni czas. Odbywa się to w ten sposób, iż stan licznika jest porównywany z rejestrem przechowującym znacznik czasu. Gdy licznik osiągnie wartość znacznika czasu, występuje zgodność porównania (ang. Compare Match) i w tym momencie mikrokontroler może wykonać różne operacje, np. zmienić stan logiczny określonej końcówki. Pozwala to generować różne przebiegi czasowe.

Wszystkie porty AVR posiadają możliwość pracy jako wejście lub wyjście danych, gdy używa się ich jako ogólne, cyfrowe porty wejścia/wyjścia. Oznacza to, iż kierunek pracy jednego portu (wejście lub wyjście) można zmieniać bez ryzyka niezamierzonej zmiany kierunku innych portów za pomocą instrukcji SBI i CBI. To samo dotyczy stanów wyjściowych (jeśli dany port pracuje jako wyjście) lub włączania/wyłączania oporników podciągających (ang. pull-up resistors). Każdy z buforów wyjściowych posiada symetryczne charakterystyki obciążenia z możliwością pochłaniania lub wyprowadzania prądu. Porty posiadają wystarczającą obciążalność do sterowania bezpośrednio wyświetlaczami LED. Wszystkie porty posiadają indywidualnie wybierane oporniki podciągające o oporności niezależnej od napięcia zasilającego. Wszystkie końcówki we/wy posiadają diody zabezpieczające zarówno do VCC jak i do masy, co zaznaczono na rysunku poniżej. Kompletną listę parametrów znajdziesz w rozdziale "Charakterystyki elektryczne (TA = -40°C ... 85°C)".

obrazek

Wszystkie rejestry i odwołania do bitów w tym rozdziale są zapisane w sposób ogólny. Mała litera “x” reprezentuje literową nazwę portu, a mała litera "n" reprezentuje numer bitu. Jednakże, gdy stosuje się definicje rejestru lub bitu w programie, należy stosować precyzyjną postać nazwy. Na przykład PORTB3 dla bitu nr 3 w porcie B, tutaj ogólnie zapisanego jako PORTxn. Fizyczne rejestry we/wy i pozycje ich bitów opisane są dalej w tym rozdziale.

Dla każdego portu przydzielone są trzy adresy w pamięci we/wy, po jednym dla rejestru danych – PORTx (ang. Data Register), dla rejestru kierunku danych – DDRx (ang. Data Direction Register)   i dla rejestru portu wejściowego – PINx (ang. Port Input Pins). Rejestr portu wejściowego znajduje się w komórce pamięci we/wy, której zawartość można tylko odczytywać, natomiast pozostałe komórki portów danych i można odczytywać i zapisywać.  Jednakże zapis logicznej jedynki do bitu portu PINx spowoduje zmianę stanu na przeciwny odpowiadającego bitu w rejestrze danych. Dodatkowo bit wyłączania oporników podciągających PUD (ang. Pull-up Disable) w rejestrze MCUCR po ustawieniu na jeden wyłącza funkcję podciągania dla wszystkich końcówek  we wszystkich portach.

Użycie portu we/wy jako ogólnego portu cyfrowego opisane jest w następnym podrozdziale. Większość końcówek portów jest multipleksowana z alternatywnymi funkcjami mikrokontrolera, co opisano w podrozdziale "Alternatywne funkcje Portu". Opis tych funkcji znajdziesz w dalszych rozdziałach dotyczących określonych modułów.

Zauważ, iż włączenie alternatywnej funkcji na niektórych wyprowadzeniach portu nie wpływa na używanie innych wyprowadzeń w porcie jako ogólnego cyfrowego we/wy.

Na początek:  podrozdziału   strony 

Porty jako ogólne, cyfrowe we/wy

Porty są dwukierunkowymi portami we/wy z opcjonalnymi, wewnętrznymi opornikami podciągającymi. Poniższy rysunek pokazuje funkcjonalny opis jednej z końcówek portu we/wy, tutaj ogólnie zwanej Pxn:

obrazek

Uwaga: 1. WRx, WPx, WDx, RRx, RPx, i RDx są wspólne dla wszystkich końcówek w obrębie tego samego portu. clkI/O, SLEEP i PUD są wspólne dla wszystkich portów.


Konfigurowanie końcówki

Każda końcówka portu składa się z trzech bitów rejestrowych: DDxn, PORTxn i PINxn. Jak pokazano w podrozdziale "Opis rejestrów" bity DDxn są dostępne pod adresem we/wy DDRx, bity PORTxn pod adresem we/wy PORTx, a bity PINxn pod adresem we/wy PINx.

Bit DDxn w rejestrze DDRx wybiera kierunek pracy tej końcówki. Jeśli w DDxn jest zapisany stan logiczny 1, to Pxn zostaje skonfigurowane jako wyjście. Jeśli DDxn jest wyzerowane,, Pxn jest skonfigurowane jako końcówka wejścia.

Jeśli w PORTxn zostanie zapisany stan logiczny 1, gdy ta końcówka pracuje jako wejście, to uaktywniony będzie opornik podciągający. Aby wyłączyć opornik podciągający, należy wpisać do PORTxn zero lub skonfigurować tę końcówkę jako końcówkę wyjścia. Gdy warunek resetu staje się aktywny, końcówki portu przechodzą w stan wysokiej rezystancji, nawet jeśli nie pracuje żaden zegar.

Jeśli w PORTxn zostanie zapisany stan logiczny 1, gdy końcówka ta jest skonfigurowana jako końcówka wyjścia, to zostaje ona wysterowana w stan wysoki 1. Jeśli do PORTxn zostanie wpisane zero logiczne, gdy końcówka pracuje jako wyjście, to zostanie ona wysterowana w stan niski 0.

Zmiana stanu końcówki portu

Zapis logicznej jedynki do PINxn powoduje zmianę stanu PORTxn na przeciwny (z 1 na 0 lub z 0 na 1) niezależnie od wartości DDRxn.
Zauważ, iż do zmiany stanu na przeciwny pojedynczego bitu w porcie może zostać użyta instrukcja SBI.

Przełączanie pomiędzy trybami pracy wejścia i wyjścia

Gdy występuje przełączenie pomiędzy stanem wysokiej impedancji ({DDxn, PORTxn} = 0b00) a wyjściem w stanie wysokim 1 ({DDxn, PORTxn} = 0b11), musi pojawić się stan pośredni albo z włączonym opornikiem podciągającym ({DDxn, PORTxn} = 0b01), albo z wyjściem w stanie niskim ({DDxn, PORTxn} = 0b10). Zwykle stan z włączonym opornikiem podciągającym jest w pełni akceptowalny, ponieważ środowisko z wysoką impedancją nie zauważy różnicy pomiędzy mocnym wysterowaniem w stan wysoki a podciągnięciem za pomocą opornika. Jeśli tak nie jest, to można ustawić bit PUD w rejestrze MCUCR w celu wyłączenia oporników podciągających we wszystkich portach.

Przełączenie pomiędzy wejściem z podciąganiem oraz wyjściem w stanie niskim daje ten sam problem. Użytkownik musi użyć albo stanu wysokiej impedancji ({DDxn, PORTxn} = 0b00), albo wysokiego stanu wyjściowego ({DDxn, PORTxn} = 0b10) w kroku pośrednim. Poniższa tabela podsumowuje sygnały sterujące dla wartości sygnału na końcówce portu:

DDxn PORTxn PUD
(w MCUCR)
we/wy Podciąganie Komentarz
0 0 X Wejście Nie Stan wysokiej impedancji (Hi-Z)
0 1 0 Wejście Tak Pxn będzie pobierać prąd, gdy zewnętrznie wysterowane stanem niskim
0 1 1 Wejście Nie Stan wysokiej impedancji (Hi-Z)
1 0 X Wyjście Nie Wyjście w stanie niskim (pobieranie prądu)
1 1 X Wyjście Nie Wyjście w stanie wysokim (wyprowadzanie prądu)

Odczyt wartości końcówki

Niezależnie od ustawienia bitu kierunku danych DDxn końcówka portu może być odczytywana poprzez bit rejestrowy PINxn. Jak pokazano na schemacie z początku podrozdziału bit rejestrowy PINxn i poprzedzający go przerzutnik latch tworzą synchronizator. Jest on potrzebny, aby uniknąć metastabilności, jeśli fizyczna końcówka zmienia wartość w pobliżu zbocza wewnętrznego zegar, lecz wprowadza on również pewne opóźnienie.

Poniższy rysunek pokazuje wykres czasowy synchronizacji, gdy odczytywany jest stan logiczny przykładany zewnętrznie do końcówki portu. Maksymalne i minimalne czasy opóźnień propagacyjnych są oznaczone odpowiednio jako tpd,max i tpd,min.

obrazek

Rozważmy sytuację, gdy okres zegarowy rozpoczyna się tuż za pierwszą opadającą krawędzią zegara systemowego. Przerzutnik latch jest zatrzaśnięty przy niskim poziomie sygnału zegarowego, a staje się przezroczysty (na wyjściu pojawia się sygnał z wejścia D), gdy sygnał zegara przyjmuje stan wysoki, co pokazuje na powyższym wykresie zakreskowany na czerwono obszar. Gdy sygnał zegara wróci do stanu niskiego, wartość sygnału z wejścia zostaje zatrzaśnięta w przerzutniku latch. Przy następnej krawędzi narastającej zegara stan wyjścia Q przerzutnika latch zostaje przepisany do bitu rejestru PINxn. Jak pokazują czasy tpd,max i tpd,min, przejście sygnału z końcówki do bitu portu PINxn będzie opóźnione o czas pomiędzy ½ a 1½ okresu zegara systemu.

Gdy odczytywana jest wartość końcówki portu ustawiona programowo, należy wstawić instrukcję NOP, jak pokazano na poniższym wykresie. Instrukcja OUT ustawia przerzutnik latch przy dodatniej krawędzi zegara (przejście z 0 na 1). W tym przypadku opóźnienie tpd wprowadzane przez synchronizator wynosi jeden okres zegara systemowego.

obrazek

Poniższy przykład kodu pokazuje, jak ustawić końcówki portu B 0 i 1 w stan wysoki, 2 i 3 w stan niski, i zdefiniować końcówki od 4 do 7 jako wejścia z opornikiem podciągającym podpiętym do końcówek 6 i 7. Końcówki są odczytywane z powrotem, lecz jak przedyskutowano poprzednio, została wstawiona instrukcja NOP, aby móc odczytać wartość poprzednio przypisaną do niektórych z końcówek.
Przykład w kodzie maszynowym(1)
    ...
    ; Zdefiniuj podciąganie i ustaw wyjścia w stan wysoki
    ; Zdefiniuj kierunki dla końcówek portu
    ldi r16,(1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0)
    ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)
    out PORTB,r16
    out DDRB,r17
    ; Wstaw NOP dla synchronizacji
    nop
    ; Odczytaj końcówki portu
    in r16,PINB
    ...
Przykład w języku C
unsigned char i;
    ...
    /* Zdefiniuj podciąganie i ustaw wyjścia w stan wysoki */
    /* Zdefiniuj kierunki dla końcówek portu */
    PORTB = (1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0);
    DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);
    /* Wstaw NOP dla synchronizacji */
    __no_operation();
    /* Odczytaj końcówki portu */
    i = PINB;
    ...
Uwaga: 1. W programie asemblerowym używane są dwa rejestry tymczasowe w celu zminimalizowania czasu użycia oporników podciągających na końcówkach 0, 1 i 6 i 7, aż zostaną właściwie ustawione bity kierunku, definiując bity 2 i 3 jako stan niski oraz redefiniując bity 0 i 1 jako mocno wysterowane w stan wysoki.

Uaktywnienienie wejścia cyfrowego a tryby uśpienia

Jak pokazano na schemacie z początku rozdziału, wejściowy sygnał cyfrowy może zostać zwarty do masy przed wejściem bramki Schmitta:

obrazek

Sygnał oznaczony na tym rysunku jako SLEEP jest ustawiany przez sterownik usypiania mikrokontrolera w trybie wyłączania napięcia oraz w trybie gotowości, aby uniknąć wysokiego poboru energii, jeśli jakieś sygnały wejściowe pozostawiono w stanie pośrednim np. w pobliżu wartości VCC/2. Sygnał SLEEP zostaje anulowany dla końcówek portu aktywowanych jako końcówki przerwań zewnętrznych. Jeśli żądanie przerwania zewnętrznego nie jest włączone, to sygnał SLEEP jest aktywny również dla tych końcówek.

Sygnał SLEEP jest również anulowany przez różne inne funkcje alternatywne, jak opisano w kolejnym podrozdziale.

Jeśli wysoki stan logiczny utrzymuje się na końcówce asynchronicznego przerwania zewnętrznego skonfigurowanej jako "przerwanie przy narastającym zboczu, opadającym zboczu lub zmianie stanu końcówki", gdy przerwanie zewnętrzne nie jest uaktywnione, to odpowiadający tej końcówce znacznik przerwania zewnętrznego zostanie ustawiony, gdy mikrokontroler wybudzi się z powyżej wspomnianego trybu uśpienia, ponieważ zwarcie do masy w tych trybach uśpienia powoduje zmianę stanu logicznego.

Niepodłączone końcówki

Jeśli niektóre końcówki są nieużywane, to zaleca się, aby te końcówki posiadały zdefiniowany poziom. Nawet jeśli większość wejść cyfrowych jest wyłączona w głębokich trybach uśpienia, jak opisano powyżej, niepodłączonych wejść należy unikać, aby zmniejszyć pobór prądu we wszystkich innych trybach, gdzie cyfrowe wejścia są włączone (reset, tryb aktywny i tryb bezczynności).

Najprostszą metodą zapewnienia zdefiniowanego poziomu nieużywanej końcówki jest włączenie wewnętrznych oporników podciągających. W tym wypadku opornik podciągający będzie wyłączony podczas resetu. Jeśli niski pobór prądu podczas resetu jest ważny, to zaleca się użycie zewnętrznych oporników podciągających w górę lub w dół (dołączonych do Vcc lub do GND). Nie jest zalecane bezpośrednie podłączanie nieużywanych końcówek do Vcc lub do GND, ponieważ może to spowodować pobór nadmiernego prądu, jeśli końcówka zostanie przypadkowo skonfigurowana jako wyjście.

Na początek:  podrozdziału   strony 

Alternatywne funkcje portów

Większość końcówek portów posiada funkcje alternatywne oprócz ogólnego wejścia/wyjścia cyfrowego. Rysunek poniżej pokazuje, jak sygnały sterujące końcówkami portu z uproszczonego rysunku z poprzedniego podrozdziału mogą zostać zastąpione funkcjami alternatywnymi:

obrazek

PUOExn: Pxn PULL-UP OVERRIDE ENABLE
włączenie anulacji opornika podciągającego dla Pxn
       PUD: PULLUP DISABLE
wyłączenie funkcji podciągania
PUOVxn: Pxn PULL-UP OVERRIDE VALUE
stan opornika podciągającego dla Pxn po anulacji
  WDx: WRITE DDRx
zapis DDRx
DDOExn: Pxn DATA DIRECTION OVERRIDE ENABLE
włączenie anulacji kierunku danych dla Pxn
  RDx: READ DDRx
odczyt DDRx
DDOVxn: Pxn DATA DIRECTION OVERRIDE VALUE
kierunek danych dla Pxn po anulacji
  RRx: READ PORTx REGISTER
odczyt rejestru PORTx
PVOExn: Pxn PORT VALUE OVERRIDE ENABLE
włączenie anulacji stanu wyjściowego portu Pxn
  WRx WRITE PORTx
zapis rejestru PORTx
PVOVxn: Pxn PORT VALUE OVERRIDE VALUE
stan wyjściowy portu Pxn po anulacji
  RPx: READ PORTx PIN
odczyt końcówki PORTx
DIEOExn: Pxn DIGITAL INPUT-ENABLE OVERRIDE ENABLE
włączenie anulacji włączenia wejścia cyfrowego dla Pxn
  WPx: WRITE PINx
zapis PINx
DIEOVxn:  Pxn DIGITAL INPUT-ENABLE OVERRIDE VALUE
stan włączenia wejścia cyfrowego Pxn po anulacji
  clkI/O:  I/O CLOCK
zegar we/wy
SLEEP sterowanie uśpieniem   DIxn: DIGITAL INPUT PIN n ON PORTx
końcówka wejścia cyfrowego w PORTx
PTOExn: Pxn, PORT TOGGLE OVERRIDE ENABLE
włączenie anulacji zmiany stanu portu Pxn na przeciwny
  AIOxn: ANALOG INPUT/OUTPUT PIN n ON PORTx
końcówka n we/wy analogowego w PORTx
Uwaga: Sygnały WRx, WPx, WDx, RRx, RPx i RDx są wspólne dla wszystkich końcówek wewnątrz tego samego portu. Sygnały clkI/O i SLEEP i PUD są wspólne dla wszystkich portów. Wszystkie pozostałe sygnały są indywidualne dla każdej końcówki.

Ilustracja na powyższym obrazku służy jako ogólny opis, który odnosi się do wszystkich końcówek portów w rodzinie mikrokontrolerów AVR. Niektóre sygnały anulujące mogą nie występować we wszystkich końcówkach portów.

Poniższa tabela podsumowuje funkcje sygnałów anulujących. Indeksy końcówek i portów z obrazka powyżej nie będą pokazywane w następnych tabelach. Sygnały anulujące są generowane wewnętrznie w modułach posiadających alternatywną funkcję.

Nazwa sygnału Pełna nazwa Opis
PUOE Pull-up Override Enable
włączenie anulacji opornika podciągającego
Jeśli sygnał ten ma wysoki poziom logiczny, to sterowanie przyłączaniem opornika podciągającego jest kontrolowane przez sygnał PUOV. Jeśli sygnał ten ma niski stan logiczny, to opornik podciągający zostanie podłączony do linii portu, gdy PUExn = 0b1.
PUOV Pull-up Override Value
stan opornika podciągającego po anulacji
Jeśli PUOE jest w stanie wysokim, to opornik podciągający jest podłączany/odłączany przez stan sygnału PUOV bez względu na ustawienie bitu rejestrowego PUExn.
DDOE Data Direction  Override Enable
włączenie anulacji kierunku danych
Jeśli sygnał ten ma stan wysoki, kierunek działania portu jest kontrolowany przez sygnał DDOV. Jeśli ten sygnał ma stan niski, to kierunkiem pracy portu steruje bit rejestrowy DDxn.
DDOV Data Direction Override Value
kierunek danych po anulacji
Jeśli DDOE ma stan wysoki, to kierunkiem pracy portu steruje sygnał DDOV bez względu na ustawienie bitu rejestrowego DDxn.
PVOE Port Value Override Enable
włączenie anulacji stanu wyjściowego portu
Jeśli sygnał ten ma stan wysoki i aktywne jest wyjście portu, to stan na tym wyjściu kontroluje sygnał PVOV. Jeśli PVOE ma stan niski i wyjście portu jest aktywne, to stan na tym wyjściu określa bit rejestrowy PORTxn.
PVOV Port Value Override Value
stan wyjścia portu po anulacji
Jeśli PVOE jest w stanie wysokim, to stan wyjścia portu (jeśli port pracuje jako wyjście) określa PVOV, bez względu na ustawienie bitu rejestrowego PORTxn.
PTOE Port Toggle Override Enable
włączenie anulacji zmiany stanu portu na przeciwny
Jeśli PTOE jest w stanie wysokim, to bit rejestrowy PORTxn zostanie zanegowany.
DIEOE Digital Input Enable Override Enable
włączenie anulacji włączenia wejścia cyfrowego
Jeśli sygnał ten jest ustawiony, to włączanie/wyłączanie wejścia cyfrowego jest kontrolowane stanem sygnału DIEOV. Jeśli sygnał DIEOE ma stan niski to włączanie/wyłączanie wejścia cyfrowego określa stan mikrokontrolera (tryb normalny, tryb uśpienia).
DIEOV Digital Input Enable Override Value
stan włączenia wejścia cyfrowego po anulacji
Jeśli sygnał DIEOE jest ustawiony, to wejście cyfrowe jest włączane/wyłączane stanem sygnału DIEOV, bez względu na stan mikrokontrolera (tryb normalny, tryb uśpienia).
DI Digital Input
wejście cyfrowe
Jest to wejście cyfrowe dla alternatywnych funkcji. Na rysunku powyżej jest ono połączone z wyjściem bramki Schmitta przed synchronizatorem. O ile wejście cyfrowe nie będzie używane jako źródło zegarowe, moduł z alternatywną funkcją będzie korzystał ze swojego własnego synchronizatora.
AIO Analog Input/Output
wejście/wyjście analogowe
Jest to analogowe wejście/wyjście dla alternatywnych funkcji. Sygnał jest bezpośrednio podłączony do końcówki mikrokontrolera i może być używany w obu kierunkach.

Kolejne podrozdziały krótko opisują alternatywne funkcje dla każdego portu oraz łączą sygnały anulujące z tymi funkcjami. Więcej szczegółów znajdziesz w opisie funkcji alternatywnych w dalszych rozdziałach.


Alternatywne funkcje portu B

Końcówka portu Funkcja alternatywna
PB7 XTAL2 (Końcówka 2 oscylatora zegara układu)
TOSC2 (Końcówka 2 timera oscylatora)
PCINT7 (Przerwanie 7 od zmiany stanu końcówki)
PB6 XTAL1 (Końcówka 1 oscylatora zegara układu lub wejście zegara zewnętrznego)
TOSC1 (Końcówka 1 timera oscylatora)
PCINT6 (Przerwanie 6 od zmiany stanu końcówki)
PB5 SCK (Wejście zegara Master magistrali SPI)
PCINT5  (Przerwanie 5 od zmiany stanu końcówki)
PB4 MISO (Wejście Master/wyjście Slave magistrali SPI)
PCINT4  (Przerwanie 4 od zmiany stanu końcówki)
PB3 MOSI (Wyjście Master/wejście Slave magistrali SPI)
OC2A (Wyjście zgodności A Output Compare timera/licznika 2)
PCINT3  (Przerwanie 3 od zmiany stanu końcówki)
PB2 SS (Wybór Master Slave magistrali SPI)
OC1B (Wyjście zgodności B Output Compare timera/licznika 1)
PCINT2  (Przerwanie 2 od zmiany stanu końcówki)
PB1 OC1A (Wyjście zgodności A Output Compare timera/licznika 1)
PCINT1  (Przerwanie 1 od zmiany stanu końcówki)
PB0 ICP1 (Wejście Input Capture timera/licznika 1)
CLKO (Wyjście podzielonego zegara systemowego)
PCINT0  (Przerwanie 0 od zmiany stanu końcówki)

Alternatywna konfiguracja końcówek jest następująca:

XTAL2/TOSC2/PCINT7 – Port B, Bit 7

XTAL2: Końcówka 2 oscylatora zegara układu. Używana jako końcówka zegarowa dla oscylatora kwarcowego lub oscylatora kwarcowego niskiej częstotliwości. Końcówki tej nie można używać jako końcówki we/wy, gdy pełni funkcję alternatywną.
TOSC2: Końcówka 2 oscylatora timera. Używana tylko, gdy na źródło zegara układu wybrano wewnętrzny, kalibrowany oscylator RC, a asynchroniczny timer został uaktywniony przez właściwe ustawienie w rejestrze ASSR. Gdy bit AS2 w ASSR jest ustawiony na jeden, a bit EXCLK jest wyzerowany w celu włączenia asynchronicznego taktowania timera/licznika 2 przy użyciu oscylatora kwarcowego, końcówka PB7 zostaje odłączona od portu i staje się odwracającym wyjściem wzmacniacza oscylatora. W tym trybie oscylator kwarcowy jest podłączony do tej końcówki i nie może ona być używana jako końcówka we/wy.
PCINT7: Źródło 7 przerwania od zmiany stanu końcówki. Końcówka PB7 może pełnić rolę zewnętrznego źródła przerwań.
Jeśli PB7 używane jest jako końcówka zegarowa, to bity DDB7, PORTB7 i PINB7 dadzą przy odczycie wartość 0.

XTAL1/TOSC1/PCINT6 – Port B, Bit 6

XTAL1: Końcówka 1 oscylatora zegara układu. Używana dla wszystkich źródeł zegarowych mikrokontrolera z wyjątkiem wewnętrznego, kalibrowanego oscylatora RC. Końcówki tej nie można używać jako końcówki we/wy, gdy pełni funkcję końcówki zegarowej.
TOSC1: Końcówka 1 oscylatora timera. Używana tylko, gdy na źródło zegara układu wybrano wewnętrzny, kalibrowany oscylator RC, a asynchroniczny timer został uaktywniony przez właściwe ustawienie w rejestrze ASSR. Gdy bit AS2 w ASSR jest ustawiony na jeden, aby włączyć asynchroniczne taktowanie timera/licznika 2, końcówka PB6 zostaje odłączona od portu i staje się wejściem odwracającego wzmacniacza oscylatora. W tym trybie oscylator kwarcowy jest podłączony do tej końcówki i nie może ona być używana jako końcówka we/wy.
PCINT6: Źródło 6 przerwania od zmiany stanu końcówki. Końcówka PB6 może pełnić rolę zewnętrznego źródła przerwań.
Jeśli PB6 używane jest jako końcówka zegarowa, to bity DDB6, PORTB6 i PINB6 dadzą przy odczycie wartość 0.

SCK/PCINT5 – Port B, Bit 5

SCK: Wyjście zegara Master, wejście zegara Slave dla kanału SPI. Gdy SPI pracuje w trybie Slave, końcówka ta zostaje skonfigurowana jako wejście bez względu na ustawienie bitu kierunku DDB5. Jeśli SPI pracuje w trybie Master, kierunek danych tej końcówki określa bit kierunku DDB5. Gdy SPI wymusza na końcówce pracę jako wejście, opornik podciągający jest wciąż kontrolowany bitem PORTB5.
PCINT5: Źródło 5 przerwania od zmiany stanu końcówki. Końcówka PB5 może pełnić rolę zewnętrznego źródła przerwań.

MISO/PCINT4 – Port B, Bit 4

MISO: Wejście danych Master, wyjście danych Slave dla kanału SPI. Gdy SPI pracuje w trybie Master, końcówka ta jest skonfigurowana jako wejście bez względu na ustawienie bitu kierunku DDB4. Jeśli SPI pracuje w trybie Slave, kierunek danych tej końcówki określa bit kierunku DDB4. Gdy SPI wymusza na końcówce pracę jako wejście, opornik podciągający jest wciąż kontrolowany bitem PORTB4.
PCINT4: Źródło 4 przerwania od zmiany stanu końcówki. Końcówka PB4 może pełnić rolę zewnętrznego źródła przerwań.

MOSI/OC2/PCINT3 – Port B, Bit 3

MOSI: Wyjście danych Master, wejście danych Slave dla kanału SPI. Gdy SPI pracuje w trybie Slave, końcówka ta jest skonfigurowana jako wejście bez względu na ustawienie bitu kierunku DDB3. Jeśli SPI pracuje w trybie Master, kierunek danych tej końcówki określa bit kierunku DDB3. Gdy SPI wymusza na końcówce pracę jako wejście, opornik podciągający jest wciąż kontrolowany bitem PORTB3.
OC2, Wyjście zgodności Output Compare: Końcówka PB3 może służyć jako zewnętrzne wyjście zgodności porównania w timerze/liczniku 2. Końcówkę PB3 należy skonfigurować jako wyjście (bit DDB3 ustawiony na jeden), aby służyła tej funkcji. Końcówka OC2 jest również wyjściem dla funkcji trybu PWM timera.
PCINT3: Źródło 3 przerwania od zmiany stanu końcówki. Końcówka PB3 może pełnić rolę zewnętrznego źródła przerwań.

SS/OC1B/PCINT2 – Port B, Bit 2

SS: Wejście wyboru układu Slave. Gdy SPI pracuje jako Slave, końcówka ta jest skonfigurowana jako wejście bez względu na ustawienie bitu kierunku DDB2. W trybie Slave SPI jest aktywowane, gdy końcówka ta zostaje wysterowana stanem niskim. Gdy SPI pracuje w trybie Master, kierunek danych tej końcówki jest kontrolowany bitem DDB2. Gdy SPI wymusza na końcówce pracę jako wejście, opornik podciągający jest wciąż kontrolowany bitem PORTB2.
OC1B,wyjście zgodności Output Compare: Końcówka PB2 może służyć jako zewnętrzne wyjście zgodności porównania B w timerze/liczniku 1. Końcówkę PB2 należy skonfigurować jako wyjście (bit DDB2 ustawiony na jeden), aby służyła tej funkcji. Końcówka OC1B jest również wyjściem dla funkcji trybu PWM timera.
PCINT2: Źródło 2 przerwania od zmiany stanu końcówki. Końcówka PB2 może pełnić rolę zewnętrznego źródła przerwań.

OC1A/PCINT1 – Port B, Bit 1

OC1A, wyjście zgodności Output Compare: Końcówka PB1 może służyć jako zewnętrzne wyjście zgodności porównania A w timerze/liczniku 1. Końcówkę PB1 należy skonfigurować jako wyjście (bit DDB1 ustawiony na jeden), aby służyła tej funkcji. Końcówka OC1A jest również wyjściem dla funkcji trybu PWM timera
PCINT1: Źródło 1 przerwania od zmiany stanu końcówki. Końcówka PB1 może pełnić rolę zewnętrznego źródła przerwań.

ICP1/CLKO/PCINT0 – Port B, Bit 0

ICP1, Końcówka wejściowa Input Capture: Końcówka PB0 może pełnić funkcję końcówki Input Capture dla timera/licznika 1.
CLKO, Podzielony zegar systemu: Podzielony zegar systemowy może być wyprowadzany na końcówce PB0. Zegar ten będzie wyprowadzany po zaprogramowaniu bitu bezpiecznikowego CKOUT, bez względu na ustawienia bitów PORTB0 i DDB0. Zegar będzie również wyprowadzany podczas resetu.
PCINT0: Źródło 0 przerwania od zmiany stanu końcówki. Końcówka PB0 może pełnić rolę zewnętrznego źródła przerwań.

Poniższe tabele odwzorowują funkcje alternatywne portu B w zależności od sygnałów sterujących.

Nazwa
sygnału
PB7/XTAL2/
TOSC2/PCINT7
(1)
PB6/XTAL1/
TOSC1/PCINT6
(1)
PB5/SCK/
PCINT5
PB4/MISO/
PCINT4
PUOE INTRCEXTCK + AS2 INTRC + AS2 SPE • MSTR SPE • MSTR
PUOV 0 0 PORTB5 • PUD PORTB4 • PUD
DDOE INTRCEXTCK + AS2 INTRC + AS2 SPE • MSTR SPE • MSTR
DDOV 0 0 0 0
PVOE 0 0 SPE • MSTR SPE • MSTR
PVOV 0 0 Wyjście SCK Wyjście SPI Slave
DIEOE INTRCEXTCK + AS2 + PCINT7 • PCIE0 INTRC + AS2 + PCINT6 • PCIE0 PCINT5 • PCIE0 PCINT4 • PCIE0
DIEOV (INTRC + EXTCK) • AS2 INTRC • AS2 1 1
DI Wejście PCINT7 Wejście PCINT6 Wejście PCINT5
Wejście SCK
Wejście PCINT4
Wejście SPI Master
AIO Wyjście oscylatora Wejście oscylatora/zegara
Uwagi: 1. INTRC oznacza, iż jeden z wewnętrznych oscylatorów RC został wybrany przez bity bezpiecznikowe CKSEL, EXTCK oznacza, że bity bezpiecznikowe CKSEL wybierają zegar zewnętrzny.
Nazwa
sygnału
PB3/MOSI/OC2/PCINT3 PB2/SS/OC1B/PCINT2 PB1/OC1A/PCINT1 PB0/ICP1/PCINT0
PUOE SPE • MSTR SPE • MSTR 0 0
PUOV PORTB3 • PUD PORTB2 • PUD 0 0
DDOE SPE • MSTR SPE • MSTR 0 0
DDOV 0 0 0 0
PVOE SPE • MSTR + Włączenie OC2A Włączenie OC1B Włączenie OC1A 0
PVOV Wyjście SPI Master + OC2A OC1B OC1A 0
DIEOE PCINT3 • PCIE0 PCINT2 • PCIE0 PCINT1 • PCIE0 PCINT0 • PCIE0
DIEOV 1 1 1 1
DI Wejście PCINT3
Wejście SPI Slave
Wejście PCINT2
SPI SS
Wejście PCINT1 Wejście PCINT0
AIO

Alternatywne funkcje portu C

Końcówka portu Funkcja alternatywna
PC6 RESET (Końcówka Reset)
PCINT14 (Przerwanie 14 od zmiany stanu końcówki)
PC5 ADC5 (Kanał wejściowy 5 przetwornika A/C)
SCL (Linia zegarowa 2-przewodowej magistrali szeregowej)
PCINT13 (Przerwanie 13 od zmiany stanu końcówki)
PC4 ADC4 (Kanał wejściowy 4 przetwornika A/C)
SDA (Linia wejścia/wyjścia danych 2-przewodowej magistrali szeregowej)
PCINT12 (Przerwanie 12 od zmiany stanu końcówki)
PC3 ADC3 (Kanał wejściowy 3 przetwornika A/C)
PCINT11 (Przerwanie 11 od zmiany stanu końcówki)
PC2 ADC2 (Kanał wejściowy 2 przetwornika A/C)
PCINT10 (Przerwanie 10 od zmiany stanu końcówki)
PC1 ADC1 (Kanał wejściowy 1 przetwornika A/C)
PCINT9 (Przerwanie 9 od zmiany stanu końcówki)
PC0 ADC0 (Kanał wejściowy 0 przetwornika A/C)
PCINT8 (Przerwanie 8 od zmiany stanu końcówki)

RESET/PCINT14 – Port C, Bit 6

RESET, Końcówka Resetu: Jeśli został zaprogramowany bit bezpiecznikowy RSTDISBL, to końcówka ta staje się normalną końcówką we/wy, a mikrokontroler musi polegać na resecie przy włączaniu zasilania i na resecie przy spadku napięcia jako źródłach swojego resetu. Gdy bit bezpiecznikowy RSTDISBL nie jest zaprogramowany, to do końcówki tej podłączony jest obwód resetowania, a końcówki nie można używać jako końcówki we/wy. Gdy PC6 pełni rolę końcówki resetu, to bity DDC6, PORTC6 i PINC6 będą dawały przy odczycie 0.
PCINT14: Źródło 14 przerwania przy zmianie stanu końcówki. Końcówka PC6 może służyć jako źródło przerwania zewnętrznego.

SCL/ADC5/PCINT13 – Port C, Bit 5

SCL, Zegar 2-przewodowego interfejsu szeregowego: Gdy zostanie ustawiony na jeden bit TWEN w rejestrze TWCR w celu uaktywnienia 2-przewodowego interfejsu szeregowego (ang. 2-wire Serial Interface, TWI), końcówka PC5 jest odłączana od portu i staje się końcówką we/wy zegara szeregowego 2-przewodowego interfejsu szeregowego. W tym trybie na końcówce znajduje się filtr zakłóceń szpilkowych, który tłumi w sygnale wejściowym impulsy krótsze od 50 ns, a końcówka jest sterowana przez drajwer z otwartym drenem posiadający ograniczenie szybkości narastania zboczy.
ADC5: Końcówka PC5 może być również używana jako kanał wejściowy 5 dla przetwornika A/C. Zauważ, iż kanał wejściowy 5 przetwornika A/C używa zasilania cyfrowego.
PCINT13: Źródło 13 przerwania przy zmianie stanu końcówki. Końcówka PC5 może służyć jako źródło przerwania zewnętrznego.

SDA/ADC4/PCINT12 – Port C, Bit 4

SDA, Dane 2-przewodowego interfejsu szeregowego: Gdy zostanie ustawiony na jeden bit TWEN w rejestrze TWCR w celu uaktywnienia 2-przewodowego interfejsu szeregowego (ang. 2-wire Serial Interface, TWI), końcówka PC4 jest odłączana od portu i staje się końcówką we/wy danych szeregowych 2-przewodowego interfejsu szeregowego. W tym trybie na końcówce znajduje się filtr zakłóceń szpilkowych, który tłumi w sygnale wejściowym impulsy krótsze od 50 ns, a końcówka jest sterowana przez drajwer z otwartym drenem posiadający ograniczenie szybkości narastania zboczy.
ADC4: Końcówka PC4 może być również używana jako kanał wejściowy 4 dla przetwornika A/C. Zauważ, iż kanał wejściowy 4 przetwornika A/C używa zasilania cyfrowego.
PCINT12: Źródło 12 przerwania przy zmianie stanu końcówki. Końcówka PC4 może służyć jako źródło przerwania zewnętrznego.

ADC3/PCINT11 – Port C, Bit 3

ADC3: Końcówka PC3 może być również używana jako kanał wejściowy 3 dla przetwornika A/C. Zauważ, iż kanał wejściowy 3 przetwornika A/C używa zasilania analogowego.
PCINT11: Źródło 11 przerwania przy zmianie stanu końcówki. Końcówka PC3 może służyć jako źródło przerwania zewnętrznego.

ADC2/PCINT10 – Port C, Bit 2

ADC2: Końcówka PC2 może być również używana jako kanał wejściowy 2 dla przetwornika A/C. Zauważ, iż kanał wejściowy 2 przetwornika A/C używa zasilania analogowego.
PCINT10: Źródło 10 przerwania przy zmianie stanu końcówki. Końcówka PC2 może służyć jako źródło przerwania zewnętrznego.

ADC1/PCINT9 – Port C, Bit 1

ADC1: Końcówka PC1 może być również używana jako kanał wejściowy 1 dla przetwornika A/C. Zauważ, iż kanał wejściowy 1 przetwornika A/C używa zasilania analogowego.
PCINT9: Źródło 9 przerwania przy zmianie stanu końcówki. Końcówka PC1 może służyć jako źródło przerwania zewnętrznego.

ADC0/PCINT8 – Port C, Bit 0

ADC0: Końcówka PC0 może być również używana jako kanał wejściowy 0 dla przetwornika A/C. Zauważ, iż kanał wejściowy 0 przetwornika A/C używa zasilania analogowego.
PCINT8: Źródło 8 przerwania przy zmianie stanu końcówki. Końcówka PC0 może służyć jako źródło przerwania zewnętrznego.

Poniższe tabele odwzorowują funkcje alternatywne portu C w zależności od sygnałów sterujących.

Nazwa
sygnału
PC6/RESET/PCINT14 PC5/SCL/ADC5/PCINT13 PC4/SDA/ADC4/PCINT12
PUOE RSTDISBL TWEN TWEN
PUOV 1 PORTC5 • PUD PORTC4 • PUD
DDOE RSTDISBL TWEN TWEN
DDOV 0 SCL_OUT SDA_OUT
PVOE 0 TWEN TWEN
PVOV 0 0 0
DIEOE RSTDISBL + PCINT14 • PCIE1 PCINT13 • PCIE1 + ADC5D PCINT12 • PCIE1 + ADC4D
DIEOV RSTDISBL PCINT13 • PCIE1 PCINT12 • PCIE1
DI Wejście PCINT14 Wejście PCINT13 Wejście PCINT12
AIO Wejście RESET Wejście ADC5/Wejście SCL Wejście ADC4/Wejście SDA
Uwagi: 1. Gdy zostanie włączony, 2-przewodowy interfejs szeregowy uaktywnia kontrolę stromości zbocza sygnału na końcówkach wyjściowych PC4 i PC5. Nie jest to pokazane na schemacie. Dodatkowo filtry zakłóceń impulsowych są włączane pomiędzy wyjścia AIO pokazane na rysunku portu a cyfrową logikę modułu TWI.
Nazwa
sygnału
PC3/ADC3/PCINT11 PC2/ADC2/PCINT10 PC1/ADC1/PCINT9 PC0/ADC0/PCINT8
PUOE 0 0 0 0
PUOV 0 0 0 0
DDOE 0 0 0 0
DDOV 0 0 0 0
PVOE 0 0 0 0
PVOV 0 0 0 0
DIEOE PCINT11 • PCIE1 + ADC3D PCINT10 • PCIE1 + ADC2D PCINT9 • PCIE1 + ADC1D PCINT8 • PCIE1 + ADC0D
DIEOV PCINT11 • PCIE1 PCINT10 • PCIE1 PCINT9 • PCIE1 PCINT8 • PCIE1
DI Wejście PCINT11 Wejście PCINT10 Wejście PCINT9 Wejście PCINT8
AIO Wejście ADC3 Wejście ADC2 Wejście ADC1 Wejście ADC0

Alternatywne funkcje portu D

   

Końcówka portu Funkcja alternatywna
PD7 AIN1 (Wejście odwracające komparatora analogowego)
PCINT23 (Przerwanie 23 od zmiany stanu końcówki)
PD6 AIN0 (Wejście nieodwracające komparatora analogowego)
OC0A (Wyjście zgodności A Output Compare timera/licznika 0)
PCINT22 ((Przerwanie 22 od zmiany stanu końcówki)
PD5 T1 (Wejście zewnętrzne taktowania timera/licznika 1)
OC0B (Wyjście zgodności B Output Compare timera/licznika 0)
PCINT21 (Przerwanie 21 od zmiany stanu końcówki)
PD4 XCK (Wejście/wyjście zewnętrznego zegara modułu USART)
T0 (Wejście zewnętrzne taktowania timera/licznika 0)
PCINT20 (Przerwanie 20 od zmiany stanu końcówki)
PD3 INT1 (Wejście przerwania zewnętrznego 1)
OC2B Wyjście zgodności B Output Compare timera/licznika 2)
PCINT19 (Przerwanie 19 od zmiany stanu końcówki)
PD2 INT0 (Wejście przerwania zewnętrznego 0)
PCINT18 (Przerwanie 18 od zmiany stanu końcówki)
PD1 TXD (Końcówka wyjściowa modułu)
PCINT17 (Przerwanie 17 od zmiany stanu końcówki)
PD0 RXD (Końcówka wejściowa modułu)
PCINT16 (Przerwanie 16 od zmiany stanu końcówki)

AIN1/OC2B/PCINT23 – Port D, Bit 7

AIN1: Wejście odwracające komparatora analogowego. Skonfiguruj tę końcówkę portu z odłączonym opornikiem podciągającym, aby uniknąć wpływu cyfrowej funkcji portu na działanie komparatora analogowego.
PCINT23: Źródło 23 przerwania przy zmianie stanu końcówki. Końcówka PD7 może służyć jako źródło przerwania zewnętrznego.

AIN0/OC0A/PCINT22 – Port D, Bit 6

AIN0: Wejście nieodwracające komparatora analogowego. Skonfiguruj tę końcówkę portu z odłączonym opornikiem podciągającym, aby uniknąć wpływu cyfrowej funkcji portu na działanie komparatora analogowego.
OC0A: Wyjście zgodności Output Compare: Końcówka PD6 może służyć jako zewnętrzne wyjście zgodności porównania A w timerze/liczniku. Końcówkę PD6 należy skonfigurować jako wyjście (bit DDD6 ustawiony na jeden), aby spełniała tę funkcję. Końcówka OC0A jest również końcówką wyjściową funkcji trybu PWM timera.
PCINT22: Źródło 22 przerwania przy zmianie stanu końcówki. Końcówka PD6 może służyć jako źródło przerwania zewnętrznego.

T1/OC0B/PCINT21 – Port D, Bit 5

T1: Źródło taktowania timera/licznika 1.
OC0B: Wyjście zgodności Output Compare: Końcówka PD5 może służyć jako zewnętrzne wyjście zgodności porównania B w timerze/liczniku. Końcówkę PD5 należy skonfigurować jako wyjście (bit DDD5 ustawiony na jeden), aby spełniała tę funkcję. Końcówka OC0B jest również końcówką wyjściową funkcji trybu PWM timera.
PCINT21: Źródło 21 przerwania przy zmianie stanu końcówki. Końcówka PD5 może służyć jako źródło przerwania zewnętrznego.

XCK/T0/PCINT20 – Port D, Bit 4

XCK: Zegar zewnętrzny modułu USART.
T0: Źródło taktowania timera/licznika 0.
PCINT20: Źródło 20 przerwania przy zmianie stanu końcówki. Końcówka PD4 może służyć jako źródło przerwania zewnętrznego.

INT1/OC2B/PCINT19 – Port D, Bit 3

INT1, Źródło przerwania zewnętrznego 1: Końcówka PD3 może służyć jako źródło przerwania zewnętrznego.
OC2B, wyjście zgodności Output Compare: Końcówka PD3 może służyć jako zewnętrzne wyjście zgodności porównania B w timerze/liczniku 2. Końcówkę PD3 należy skonfigurować jako wyjście (bit DDD3 ustawiony na jeden), aby służyła tej funkcji. Końcówka OC2B jest również wyjściem dla funkcji trybu PWM timera.
PCINT19: Źródło 19 przerwania przy zmianie stanu końcówki. Końcówka PD3 może służyć jako źródło przerwania zewnętrznego.

INT0/PCINT18 – Port D, Bit 2

INT0, Źródło przerwania zewnętrznego 0: Końcówka PD2 może służyć jako źródło przerwania zewnętrznego.
PCINT18: Źródło 18 przerwania przy zmianie stanu końcówki. Końcówka PD2 może służyć jako źródło przerwania zewnętrznego.

TXD/PCINT17 – Port D, Bit 1

TXD, Dane nadawane (końcówka wyjściowa danych dla modułu USART). Gdy zostanie włączony nadajnik USART, końcówka ta jest konfigurowana jako wyjście bez względu na wartość bitu DDD1.
PCINT17: Źródło 17 przerwania przy zmianie stanu końcówki. Końcówka PD1 może służyć jako źródło przerwania zewnętrznego.

RXD/PCINT16 – Port D, Bit 0

RXD, Dane odbierane (końcówka wejścia danych dla modułu USART). Gdy zostanie włączony odbiornik USART, to ta końcówka jest konfigurowana jako wejście bez względu na wartość bitu DDD0. Gdy moduł USART wymusza na tej końcówce pracę jako wejście, to opornik podciągający wciąż może być kontrolowany przez bit PORTD0.
PCINT16: Źródło 16 przerwania przy zmianie stanu końcówki. Końcówka PD0 może służyć jako źródło przerwania zewnętrznego.

Poniższe tabele odwzorowują funkcje alternatywne portu D w zależności od sygnałów sterujących.

Nazwa
sygnału
PD7/AIN1/PCINT23 PD6/AIN0/OC0A/PCINT22 PD5/T1/OC0B/PCINT21 PD4/XCK/T0/PCINT20
PUOE 0 0 0 0
PUO 0 0 0 0
DDOE 0 0 0 0
DDOV 0 0 0 0
PVOE 0 Włączenie OC0A Włączenie OC0B UMSEL
PVOV 0 OC0A OC0B Wyjście XCK
DIEOE PCINT23 • PCIE2 PCINT22 • PCIE2 PCINT21 • PCIE2 PCINT20 • PCIE2
DIEOV 1 1 1 1
DI Wejście PCINT23 Wejście PCINT22 Wejście PCINT21
Wejście T1
Wejście PCINT20
Wejście XCK
Wejście T0
AIO Wejście AIN1 Wejście AIN0
Nazwa
sygnału
PD3/OC2B/INT1/PCINT19 PD2/INT0/PCINT18 PD1/TXD/PCINT17 PD0/RXD/PCINT16
PUOE 0 0 TXEN RXEN
PUO 0 0 0 PORTD0 • PUD
DDOE 0 0 TXEN RXEN
DDOV 0 0 1 0
PVOE Włączenie OC2B 0 TXEN 0
PVOV OC2B 0 TXD 0
DIEOE Włączenie INT1 + PCINT19 • PCIE2 Włączenie INT0 + PCINT18 • PCIE1 PCINT17 • PCIE2 PCINT16 • PCIE2
DIEOV 1 1 1 1
DI Wejście PCINT19
Wejście INT1
Wejście PCINT18
INT0
Wejście PCINT17 Wejście PCINT16
Wejście RXD
AIO
Na początek:  podrozdziału   strony 

Opis rejestrów

MCUCR – MCU Control Register – Rejestr sterujący mikrokontrolerem

Bit 7 6 5 4 3 2 1 0  
0x35 (0x55) BODS(1) BODSE(1) PUD IVSEL IVCE MCUCR
Zapis/Odczyt O Z/O Z/O Z/O O O O O  
Wartość początkowa 0 0 0 0 0 0 0 0  
Uwagi: 1. Bity BODS i BODSE są dostępne tylko w mikrokontrolerach picoPower typu ATmega48PA/88PA/168PA/328P

Bit 4 – PUD: Pull-up Disable – Wyłączenie oporników podciągających

Gdy do tego bitu zostanie wpisany stan 1, to oporniki podciągające w portach we/wy zostaną odłączone, nawet jeśli rejestry DDxn i PORTxn zostały skonfigurowane na podłączenie tych oporników ({DDxn, PORTxn} = 0b01). Zobacz do podrozdziału "Konfigurowanie końcówki portu".


PORTB – Port B Data Register – Rejestr danych portu B

Bit 7 6 5 4 3 2 1 0  
0x05 (0x25) PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
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  

DDRB – Port B Data Direction Register – Rejestr kierunku danych portu B

Bit 7 6 5 4 3 2 1 0  
0x04 (0x24) DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
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  

PINB – Port B Input Pins Address – Adres stanu końcówek wejściowych portu B(1)

Bit 7 6 5 4 3 2 1 0  
0x03 (0x23) PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa N/A N/A N/A N/A N/A N/A N/A N/A  

PORTC – Port C Data Register – Rejestr danych portu C

Bit 7 6 5 4 3 2 1 0  
0x08 (0x28) PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0 PORTC
Zapis/Odczyt 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  

DDRC – Port C Data Direction Register – Rejestr kierunku danych portu C

Bit 7 6 5 4 3 2 1 0  
0x07 (0x27) DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0 DDRC
Zapis/Odczyt 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  

PINC – Port C Input Pins Address – Adres stanu końcówek wejściowych portu C(1)

Bit 7 6 5 4 3 2 1 0  
0x06 (0x26) PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0 PINC
Zapis/Odczyt O Z/O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 N/A N/A N/A N/A N/A N/A N/A  

PORTD – Port D Data Register – Rejestr danych portu D

Bit 7 6 5 4 3 2 1 0  
0x0B (0x2B) PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0 PORTD
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  

DDRD – Port D Data Direction Register – Rejestr kierunku danych portu D

Bit 7 6 5 4 3 2 1 0  
0x0A (0x2A) DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD0 DDRD
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  

PIND – Port D Input Pins Address – Adres stanu końcówek wejściowych portu D(1)

Bit 7 6 5 4 3 2 1 0  
0x09 (0x29) PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0 PIND
Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa N/A N/A N/A N/A N/A N/A N/A N/A  
Uwaga 1. Zapis bitu 1 do portu PIN powoduje zmianę stanu na przeciwny odpowiedniego bitu w rejestrze PORT.
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
©2021 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.