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

©2022 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Mikrokontrolery

ATtiny15

Port we/wy B

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

Wszystkie porty AVR mogą być odczytywane, modyfikowane lub zapisywane w czasie pracy jako ogólne, cyfrowe porty we/wy. 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) (jeśli port pracuje jako wejście).

obrazek

Port B jest 6-bitowym, dwukierunkowym portem we/wy.

Dla portu B przydzielone są trzy rejestry: rejestr danych – PORTB pod adresem 0x18, rejestr kierunku danych – DDRB pod adresem 0x17 i rejestr odczytu stanu końcówek wejściowych portu B – PINB pod adresem 0x16. Port PINB jest tylko do odczytu, natomiast rejestry PORTB i DDRB można zapisywać i odczytywać.

Porty PB5:0 posiadają specjalne funkcje opisane niżej. Jeśli końcówka PB5 nie jest skonfigurowana jako zewnętrzny reset, is może być wejściem bez opornika podciągającego lub wyjściem z otwartym drenem. Wszystkie pozostałe końcówki we/wy posiadają włączane indywidualnie oporniki podciągające, które mogą zostać odłączone na żądanie.

Bufory wyjściowe portu B końcówek PB0...PB4 mogą pochłaniać prąd 20 mA i w ten sposób sterować bezpośrednio wyświetlaczami LED. Końcówka PB5 może pochłaniać prąd 12 mA. Jeśli końcówki PB0...PB4 są używane jako wejścia i zostaną zewnętrznie wysterowane niskim poziomem, to będą źródłem prądu (IIL), jeśli mają podpięte oporniki podciągające.

Niepodłączone końcówki

Jeśli niektóre końcówki portu B nie są używane, to zaleca się, aby posiadały one zdefiniowany poziom napięcia. Najprostszą metodą zapewnienia określonego poziomu napięcia na nieużywanej końcówce jest włączenie wewnętrznego opornika podciągającego. W takim przypadku opornik podciągający zostanie wyłączony podczas resetu. Jeśli ważny jest niski pobór energii podczas resetu, zaleca się użycie zewnętrznego opornika podciągającego w górę lub w dół. Podłączanie nieużywanych końcówek bezpośrednio do VCC lub do GND nie jest zalecane, ponieważ może to wywołać wysokie prądy, jeśli dana końcówka przypadkowo zostanie skonfigurowana jako wyjście.
Na początek:  podrozdziału   strony 

Alternatywne funkcje portu B

W ATtiny15L cztery końcówki portu B – PB2, PB3, PB4 i PB5 – posiadają alternatywną funkcję wejść dla przetwornika A/C. Jeśli niektóre końcówki portu B zostały skonfigurowane jako wyjścia, to ważne jest, aby nie zmieniały one swoich poziomów logicznych w trakcie trwania przetwarzania. To może uszkodzić wynik przetwarzania. Podczas trybu wyłączenia zasilania (ang. Power-down mode) oraz trybu zmniejszania zakłóceń dla przetwornika A/C (ang. ADC Noise Reduction mode) przełączniki Schmitta cyfrowych wejść są odłączone od tych końcówek. Umożliwia to przyłożenie analogowego napięcia wejściowego bliskiego VCC/2 podczas uśpienia z wyłączeniem zasilania bez powodowania nadmiernego poboru prądu.

Gdy końcówki PB4:0 są używane do funkcji alternatywnych, rejestry DDRB i PORTB muszą zostać ustawione zgodnie z opisem funkcji alternatywnych. Gdy końcówka PB5 jest używana jako końcówka zewnętrznego resetu, wartości odpowiadających jej bitów w DDRB i PORTB są ignorowane.

Funkcje alternatywne portu B są następujące:

obrazek

RESET – PORT B, Bit 5

Gdy nie jest zaprogramowany bit bezpiecznikowy RSTDISBL, końcówka ta służy jako zewnętrzny reset. Gdy bit RSTDISBL jest zaprogramowany, końcówka ta staje się ogólną końcówką wejścia lub końcówką wyjścia z otwartym drenem. Jeśli bit DDB5 w rejestrze kierunku danych DDRB jest wyzerowany, końcówka PB5 jest skonfigurowana jako wejście. If bit DDB5 jest ustawiony na 1, końcówka jest wyjściem z otwartym drenem.

SCK/T0/INT0 – PORT B, Bit 2

W trybie programowania szeregowego końcówka ta służy jako wejście zegara szeregowego SCK.

W trybie normalnym końcówka ta może służyć jako wejście przerwania zewnętrznego 0. Szczegóły znajdziesz w opisie przerwań.. Zapamiętaj, iż zmiana stanu tej końcówki wygeneruje przerwanie nawet wtedy, gdy końcówka pracuje jako wyjście danych.

W trybie normalnym końcówka ta może służyć jako wejście zegara zewnętrznego dla licznika. Szczegóły znajdziesz w opisie timera/licznika 0. Jeśli zostanie wybrane taktowanie zewnętrzne timera/licznika, to zmiana stanów tej końcówki spowoduje zliczanie w liczniku, nawet jeśli końcówka pracuje jako wyjście.

MISO/OC1A/AIN1 – PORT B, Bit 1

W trybie programowania szeregowego końcówka ta służy jako wyjście danych szeregowych MISO.

W trybie normalnym końcówka może służyć jako wyjście output compare timera/licznika 1 (OC1A). Zobacz do opisu timera/licznika 1. Końcówka OC1A jest również końcówką wyjściową funkcji PWM timera.

Końcówka ta służy również jako wejście odwracające wewnętrznego komparatora analogowego.

MOSI/AIN0/AREF – PORT B, Bit 0

W trybie programowania szeregowego końcówka ta służy jako wejście danych szeregowych MOSI.

W trybie normalnym końcówka służy również jako wejście nieodwracające wewnętrznego komparatora analogowego.

W ATtiny15L końcówkę tą można wybrać jako napięcie odniesienia dla przetwornika A/C. Szczegóły znajdziesz w rozdziale "Przetwornik analogowo/cyfrowy".

Na początek:  podrozdziału   strony 

Opis rejestrów

PORTB – Port B Data Register – Rejestr danych portu B

Bit 7 6 5 4 3 2 1 0  
0x18 - - PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Zapis/Odczyt O O Z/O Z/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 w porcie B

Bit 7 6 5 4 3 2 1 0  
0x17 - - DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Zapis/Odczyt O 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 odczytu stanu końcówek portu B

Bit 7 6 5 4 3 2 1 0  
0x16 - - PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Zapis/Odczyt O O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 N/A N/A N/A N/A N/A N/A  

Komórka we/wy związana z adresem PINB nie jest rejestrem, lecz obrazuje fizyczny stan każdej końcówki portu B. Gdy jest odczytywany rejestr PORTB, wynikiem jest odczyt przerzutników latch tego portu, a gdy jest odczytywany adres PINB, wynikiem są wartości logiczne na końcówkach zewnętrznych portu B.

Na początek:  podrozdziału   strony 

Port B jako ogólne we/wy cyfrowe

Dolne pięć końcówek w porcie B są równoważne, gdy są używane jako cyfrowe końcówki we/wy.

PBn, ogólna końcówka we/wy: Bit DDBn w rejestrze DDRB wybiera kierunek przesyłu danych tej końcówki. Jeśli bit DDBn jest ustawiony na 1, końcówka PBn zostaje skonfigurowana jako końcówka wyjścia. Jeśli bit DDBn jest wyzerowany, końcówka PBn jest skonfigurowana jako końcówka wejścia. Jeśli bit PORTBn zostanie ustawiony, gdy końcówka ta pracuje jako końcówka wejścia, to jest uaktywniany opornik podciągający MOS. Aby wyłączyć ten opornik podciągający, należy wyzerować bit PORTBn lub skonfigurować tę końcówkę jako końcówkę wyjściową. Oporniki podciągające wszystkich linii portu B można wyłączyć przez ustawienie bitu PUD w rejestrze MCUCR.

Wpływ bitów DDBn na końcówki portu B (n = 0...4)

DDBn PORTBn we/wy Opornik Komentarz
0 0 we Nie Wysoka impedancja
0 1 we Nie Ustawiony bit PUD w rejestrze MCUCR.
0 1 we Tak Końcówka PBn będzie dostarczała prąd przy wymuszeniu na niej stanu niskiego.
Wyzerowany bit PUD w rejestrze MCUCR.
1 0 wy Nie Wymuszenie stanu 0 na wyjściu.
1 1 wy Nie Wymuszenie stanu 1 na wyjściu.

W mikrokontrolerze ATtiny15L końcówka PB5 jest wejściem lub wyjściem z otwartym drenem. Z tego powodu końcówka ta wykorzystywana jest do programowania z napięciem 12V, nie ma tu diody zabezpieczającej ESD, która ogranicza napięcie na końcówce do VCC + 0.5V. Z tego powodu należy podjąć środki ostrożności, które zapewnią, iż napięcie na tej końcówce nie przekroczy VCC + 1V podczas normalnej pracy. Może to spowodować zresetowanie się mikrokontrolera lub niezamierzone wejście w tryb programowania.

Wszystkie końcówki portu B są połączone z detektorem zmiany stanu końcówki, który może wyzwalać przerwanie od zmiany stanu końcówki.

Przerwanie przy zmianie stanu końcówki (ang. Pin Change Interrupt) jest wyzwalane przez każdą zmianę na dowolnej końcówce wejścia lub wyjścia. Zmiana na końcówkach PB4:0 zawsze wywoła przerwanie. Zmiana na końcówkach PB5 wywoła przerwanie, jeśli końcówka pracuje jako wejście lub wyjście. Zauważ, iż jeśli przerwanie zostało aktywowane to zostanie wyzwolone nawet wtedy, gdy końcówka pracuje jako wyjście. Ta cecha pozwala generować przerwania programowe. Zauważ również, iż przerwanie od zmiany stanu końcówki zostanie wyzwolone, nawet jeśli aktywność na danej końcówce wyzwala inne przerwanie, np. przerwanie zewnętrzne. Wynika z tego, iż jedno zdarzenie zewnętrzne może spowodować kilka przerwań.

Wartości na końcówkach są próbkowane przed wykrywaniem zboczy. Jeśli przerwanie od zmiany stanu końcówki jest aktywne, to impulsy o czasie trwania dłuższym od okresu zegarowego mikroprocesora wygenerują przerwanie. Krótsze impulsy nie dają pewności wygenerowania przerwania.

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
©2022 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.