Często używanym elementem w konstrukcjach opartych o Atmega jest rejestr przesuwny, zwykle typu SIPO (Serial IN-Parallel OUT), co oznacza, że wprowadzamy dane szeregowo a wyprowadzane są równolegle. Zwykle rejestry zaopatrzone są w zatrzaski (Latch) umożliwiające buforowanie danych. Zastosowanie rejestrów przesuwnych SIPO umożliwia oszczędzenie wyjść mikrokontrolera, oraz wykorzystanie wbudowanej magistrali SPI. Możliwe jest również programowe zarządzanie rejestrem bez wykorzystania rozwiązań sprzętowych. Najczęściej spotykanym rejestrem jest układ 74hc595N. Jest to 8 bitowy rejestr SIPO. Wyprowadzenie pinów przedstawia rysunek:
VCC - zasilanie (+).
Q0...Q7 - wyjścia
Q7S - wyjście do następnego rejestru (można je łączyć kaskadowo)
GND - masa
OE - Enable Output - powinno być podłączone do masy
MR - reset - powinno być podłączone do +
DS - wejście danych (MOSI)
STCP - wejście zegara zatrzasku
SHCP - wejście zegara rejestru
Jak jest zbudowany i jak działa rejestr? Rejestr 8 bitowy składa się z zepołu przerzutników D oraz zespołu zatrzasków pełniących rolę bufora. Schematycznie za pomocą układów TTL można przedstawić wewnętrzną budowę rejestru jak jest pokazane na schemacie.
Symulację dla programu NI Multisim moża pobrać tutaj
Zasada działania rejestru jest następująca. Złóżmy, że chcemy wysłać do rejestru bajt 10110101. Ustawiamy stan linii SHCP i STCP na niski. Bierzemy najstarszy bit tj.1 czyli ustawiamy stan linii DS na wysoki. Aby wpisać tą wartość do rejestru co ma miejsce przy narastającym zboczu sygnału SHCP wystawiamy la linii SHCP stan wysoki na krótki czas. Narastające zbocze SHCP spowoduje zapisanie 1 do zatrzasku. Następny bit to 0. Wystawiamy zatem stan niski na DS a następnie wysoki na SHCP. Wpcześniej wpisana 1 przesunie się w prawo a w jej miejsce zostanie wpisane 0. I tak dalej. Przebiegi czasowe ilustruje symbolicznie rysunek:
Warto zapoznać się z notą aplikacyjną układu 74hc595. W następnej części obsługa programowa rejestru.
Brak komentarzy:
Prześlij komentarz