Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Rodzina AVR wykład 4. AVR 2/23 Porty szeregowe: UART/USART USI SPI.

Podobne prezentacje


Prezentacja na temat: "Rodzina AVR wykład 4. AVR 2/23 Porty szeregowe: UART/USART USI SPI."— Zapis prezentacji:

1 Rodzina AVR wykład 4

2 AVR 2/23 Porty szeregowe: UART/USART USI SPI

3 AVR - porty szeregowe ATtiny2313/ATmega8515 3/23 Port USART Cechy układu: transmisja asynchroniczna i synchroniczna w pełnym dupleksie; transmisja synchroniczna w trybie master (własny) lub slave (zewn. przebieg synchronizujący o f XCK

4 AVR - porty szeregowe ATtiny2313/ATmega8515 4/23 Cechy układu UART: wykrywanie błędów: przepełnienia odbiornika (overrun error), ramki (framing error) i fałszywego bitu startu (false start bit error); trzy możliwe przyczyny przerwania; własny, niezależny generator prędkości; szybkość transmisji do 1250 kbodów przy f OSC =10MHz; podwójny bufor odbiornika; realizacja komunikacji w systemie wieloprocesorowym; możliwość zdwojenia szybkości transmisji asynchronicznej.

5 AVR - porty szeregowe ATtiny2313/ATmega8515 5/23 REJ. BUF. ODBIORNIKA UKŁAD ODTWARZ. BITÓW REJ. STANU/STER USR/UCSRA PD0 U.S. PINU RXD f BOD :16 16f BOD WPIS DO UDR WEWN. SZYNA DANYCH PRZERWANIA: RXC TXC UDRE RXCIE WEWN. SZYNA DANYCH XTAL GENERATOR SZYBKOŚCI RXEN TXEN UCSZ2 RXB8 TXB8 RXC TXC UDREFE DOR 1 TXD PD1 PRZEPISZ Z UDR U.S. NAD UDR REJESTR PRZESUWNY ODBIORNIKA REJESTR PRZESUWNY NADAJNIKA REJESTR BUFOROWY NADAJNIKA U.S. PINU REJ. STER UCR/UCSRB TXCIE UDRIE RXC TXC UDRE PD2UKŁ.SYNCH XCK KONTR PARZ. GEN. BITU PARZ. REJ. STANU/STER UCSRC REJ. SZYBK. UBRR REJ. BUF. ODBIORNIKA UPE MPCM U2X UCPOL UCSZ0UCSZ1 USBS UPM0 UPM1 UMSEL

6 AVR - porty szeregowe ATtiny2313/ATmega8515 6/23 Rejestry portu szeregowego: rej. portu szeregowego UDR0Ch 2Ch UDR - rejestr buforowy portu szeregowego - odczyt odebranego znaku; - zapis znaku do wysłania. W przypadku ATtiny2313 odbiornik jest buforowany podwójnie - rejestr FIFO

7 AVR - porty szeregowe ATtiny2313/ATmega8515 7/23 Rejestry portu szeregowego: W ATtiny2313 i ATmega8515 są 2 rejestry szybkości transmisji : UBRRH i UBRRL f TRASYN [bod] = f OSC U2X /(16 (UBRR+1)) f TRSYN [bod] = f OSC /(2 (UBRR+1)) UBRR 7..0 UBRRL09h 29h UBRR UBRRH 02h 20h 22h 40h URSEL URSEL - musi być: =0 przy wpisie do UBRRH

8 AVR - porty szeregowe ATtiny2313/ATmega8515 8/23 UCSRA - rejestr stanu transmisji RXC - flaga sygnalizująca odebranie znaku, kasowana automatycznie przy odczycie znaku poprzez UDR TXC - flaga sygnalizująca koniec nadawania znaku (wysłano bit stopu), zerowana automatycznie przy wejściu w procedurę obsługi przerwania, programowe ustawienie tej flagi może uruchomić przerwanie UDRE - flaga opróżnienia rejestru buforowego nadajnika (znak z bufora został przeniesiony do rejestru przesuwającego nadajnika), zerowana automatycznie podczas wpisu do rejestru UDR, ale gdy rejestr przesuwający nadajnika jest pusty to zapis do UDR trafia wprost do tego rejestru i flaga pozostaje ustawiona RXCTXCUDREFEDORUPE/PEU2XMPCM UCSRA0Bh 2Bh

9 AVR - porty szeregowe ATtiny2313/ATmega8515 9/23 UCSRA - rejestr stanu transmisji FE - flaga sygnalizująca błąd ramki DOR - flaga przepełnienia bufora odbiornika UPE/PE - flaga sygnalizująca błąd parzystości odebranego znaku (czekającego na odczyt z UDR) U2X - bit zdwojenia szybkości transmisji asynchronicznej MPCM - bit włączający tryb komunikacji wieloprocesorowej RXCTXCUDREFEDORUPE/PEU2XMPCM UCSRA0Bh 2Bh

10 AVR - porty szeregowe ATtiny2313/ATmega /23 UCSRB - rejestr sterujący transmisją RXCIE - zezwolenie na przerwania wywołane odebraniem znaku TXCIE - zezwolenie na przerwania wywołane zakończeniem nadawania znaku UDRIE - zezwolenie na przerwania wywołane opróżnieniem bufora nadajnika RXEN - włączenie odbiornika TXEN - włączenie nadajnika UCSZ2 - włączenie transmisji 9-bitowej (CHR9 w AT90S2313) RXB8 - najstarszy bit odebranego znaku 9-bitowego TXB8 - najstarszy bit 9-bitowego znaku do nadania RXCIETXCIEUDRIERXENTXENUCSZ2RXB8TXB8 UCSRB0Ah 2Ah

11 AVR - porty szeregowe ATtiny2313/ATmega /23 UCSRC - rejestr sterujący transmisją URSEL - musi być: =1 przy zapisie do UCSRC, =0 przy zapisie do UBRRH UMSEL - wybór między asynchronicznym i synchronicznym trybem pracy UPM1,UPM0 - określają rodzaj kontroli parzystości: 00 - kontrola i generacja wyłączone 10 - kontrola i generacja bitu parzystości 11 - kontrola i generacja bitu nieparzystości USBS - ustawiony włącza drugi bit stopu UCSZ1,UCSZ0 - razem z UCSZ2 określają długość transmitowanych znaków: b b b b zarezerwowane b UCPOL - tylko dla transmisji synchronicznej - wybór zbocza sygnału XCK, przy którym następuje zmiana stanu linii nadajnika i odbiornika URSELUMSELUPM1UPM0USBSUCSZ1UCSZ0UCPOL UCSRC 03h 20h 23h 40h

12 AVR - porty szeregowe ATtiny /23 Uniwersalny interfejs szeregowy USI Właściwości: sprzętowy interfejs dwu-przewodowej transmisji synchronicznej (I 2 C) w trybie master lub slave; sprzętowy interfejs trój-przewodowej transmisji synchronicznej (SPI w trybie 0 lub 1) jako master lub slave; możliwość zgłoszenia przerwania po odebraniu bajtu danej; może wybudzić mikrokontroler z trybu pracy z obniżonym poborem energii; przy pracy interfejsu dwu-przewodowego możliwe jest wybudzenie także z trybu power-down; wykrycie bitu startu przy odbiorze dwu-przewodowym także może być przyczyną przerwania.

13 AVR - porty szeregowe ATtiny /23 Uniwersalny interfejs szeregowy USI

14 AVR - porty szeregowe ATtiny /23 Wpisując początkową wartość do 4-bitowego licznika można określić po ilu nadanych/odebranych bitach ma się pojawić przerwanie (USIOIF) od przepełnienia tego licznika. Taktowanie transmisji: wewnętrzne - sygnałami przepełnień z timera/licznika #0; sygnałem zewnętrznym, doprowadzonym do końcówki USCK/SCL (przy pracy jako slave); programowe poprzez wpisywanie 1 do bitu USITC w rej. USICR. UWAGA: przy taktowaniu zewnętrznym przesuwanie bitów w rej. USIUDR odbywa się przy wybranym zboczu zegara, ale 4-bitowy licznik zlicza wszystkie zbocza.

15 AVR - porty szeregowe ATtiny /23 Praca interfejsu trój-przewodowego: Praca interfejsu dwu-przewodowego:

16 AVR - porty szeregowe ATtiny /23 USICR - rejestr sterujący transmisją USISIE - zezwolenie na przerwanie po odebraniu warunku startu USIOIE - zezwolenie na przerwanie od przepełnienia się licznika 4b USIWM1,USIWM0 - określają tryb pracy interfejsu: 00 - wyłączony;01 - tryb trój-przewodowy 10,11 - dwa warianty interfejsu dwu-przewodowego (różnice w pracy linii SCL) USICS1,USICS0 i USICLK - wybór źródła taktowania interfejsu USITC - zmienia stan wyjścia zegarowego, do programowego taktowania transmisji szeregowej USISIEUSIOIE USIWM1USIWM0 USICS1USICS0USICLKUSITC USICR0Dh 2Dh

17 AVR - porty szeregowe ATtiny /23 USISR - rejestr stanu transmisji USISIF - flaga przerwania od odebrania bitu startu przy I 2 C lub zbocza na wejściu zegarowym SCK USIOIF - flaga przerwania od przepełnienia licznika 4-bitowego USIPF - flaga ustawiana po odebraniu bitu stopu przy I 2 C USIDC - flaga ustawiana przy nadawaniu przez I 2 C po wykryciu kolizji 7-go bitu na linii SDA USICNT3..USICNT0 - stan 4-bitowego licznika USISIFUSIOIFUSIPFUSIDC USICNT3USICNT2USICNT1USICNT0 USISR0Eh 2Eh

18 AVR - porty szeregowe ATtiny /23 USIDR - rejestr danych rejestr do odczytu odebranej danej i zapisu bajtu do wysłania USIDR0Fh 2Fh

19 AVR - porty szeregowe ATmega /23 Port SPI: 3-przewodowy, pracujący w pełnym dupleksie; tryb master lub slave; możliwy wybór kolejności transmisji bitów (od LSB albo od MSB); możliwy wybór jednego z 4 trybów transmisji; zgłaszanie przerwania od zakończenia transmisji; szybkość transmisji dobierana multiplekserem z podzielnika generatora systemowego;

20 AVR - porty szeregowe ATmega /23 Port SPI:

21 AVR - porty szeregowe ATmega /23 Rejestr sterujący SPI: SPIESPEDORDMSTRCPOLCPHASPR1SPR0 SPCR0Dh2Dh SPIE - flaga zezwolenia na przerwanie od portu SPI SPE - bit włączający do pracy port SPI DORD - bit ustalający porządek przesyłu bitów: gdy =1 od LSB, gdy =0 od MSB MSTR - gdy =1 wymusza tryb master portu SPI, ale podanie na wejście /SS=0 automatycznie kasuje ten bit CPOL, CPHA - bity wybierające jeden z 4 trybów (0..3) transmisji SPI: CPOL=0 stan SCK niski gdy nie ma transmisji CPOL=1 stan SCK wysoki gdy nie ma transmisji CPHA=0 odczyt danych przy pierwszym zboczu, zmiana przy drugim zboczu CPHA=1 odczyt danych przy drugim zboczu, zmiana przy pierwszym zboczu

22 AVR - porty szeregowe ATmega /23 Rejestr sterujący SPI: SPIESPEDORDMSTRCPOLCPHASPR1SPR0 SPCR0Dh2Dh SPR1,SPR0 - bity określające razem z SPI2X szybkość transmisji portu SPI: SPI2X,SPR1,SPR0 częstotliwość SCK f OSC / f OSC / f OSC / f OSC / f OSC / f OSC / f OSC / f OSC / 64

23 AVR - porty szeregowe ATmega /23 Rejestr stanu SPI: SPIFWCOLSPI2X SPSR0Eh2Eh SPIF - flaga przerwania od portu SPI (gdy transmisja się skończy lub pojawi się na wejściu /SS niski poziom) WCOL - bit sygnalizujący wpis do rejestru buforującego dane SPDR w trakcie transmisji Rejestr buforowy danych SPI: SPDR0Fh2Fh


Pobierz ppt "Rodzina AVR wykład 4. AVR 2/23 Porty szeregowe: UART/USART USI SPI."

Podobne prezentacje


Reklamy Google