1 / 23

Rodzina AVR wykład 4

Rodzina AVR wykład 4. AVR 2 /23. Porty szeregowe: UART/USART USI SPI. transmisja znaku 5..9-bitowego w ATtiny2313/ATmega8515:. START. bit. [ bit. [. b6. ]. [. b7. ]. [.

orrick
Download Presentation

Rodzina AVR wykład 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rodzina AVRwykład 4

  2. AVR 2/23 Porty szeregowe:UART/USARTUSISPI

  3. transmisja znaku 5..9-bitowego w ATtiny2313/ATmega8515: START bit [ bit [ b6 ] [ b7 ] [ b8 ] [ pb] [ b5 ] b0 b1 b2 b3 b4 bit STOP STOP] AVR - porty szeregowe ATtiny2313/ATmega85153/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 fXCK<fOSC:4); • transmisja znaków 5-, 6-, 7-, 8- i 9-bitowych z 1 lub 2 bitami stopu; • sprzętowa generacja i sprawdzanie kontrolnych bitów parzystości/nieparzystości;

  4. AVR - porty szeregowe ATtiny2313/ATmega85154/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 fOSC=10MHz; • podwójny bufor odbiornika; • realizacja komunikacji w systemie wieloprocesorowym; • możliwość zdwojenia szybkości transmisji asynchronicznej.

  5. AVR - porty szeregowe ATtiny2313/ATmega85155/23 WEWN. SZYNA DANYCH REJ. SZYBK. UBRR REJ. BUF. ODBIORNIKA REJESTRBUFOROWY NADAJNIKA REJ. BUF. ODBIORNIKA UDR 16fBOD XTAL GENERATORSZYBKOŚCI f :16 B O D GEN.BITU PARZ. WPIS DO UDR PRZEPISZ Z UDR XCK PD2 UKŁ.SYNCH 1 KONTR PARZ. U.S.PINU TXD REJESTR PRZESUWNY ODBIORNIKA UKŁADODTWARZ.BITÓW REJESTR PRZESUWNY NADAJNIKA PD1 U.S.PINU RXD U.S.NAD PD0 UDRE UCSZ2 UCPOL RXC UMSEL UCSZ0 DOR UPE TXB8 RXB8 TXEN RXEN UPM1 TXC MPCM UPM0 UCSZ1 FE U2X USBS REJ. STER UCR/UCSRB REJ. STANU/STER USR/UCSRA REJ. STANU/STER UCSRC TXC RXC UDRE TXCIE RXCIE UDRIE WEWN. SZYNA DANYCH PRZERWANIA: RXC TXC UDRE

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

  7. UBRRL 29h UBRR7..0 09h 22h40h 02h20h UBRRH URSEL UBRR11..8 AVR - porty szeregowe ATtiny2313/ATmega85157/23 Rejestry portu szeregowego: • W ATtiny2313 i ATmega8515 są 2 rejestry szybkości transmisji : UBRRH i UBRRL • fTRASYN[bod] = fOSC×2U2X/(16×(UBRR+1)) • fTRSYN[bod] = fOSC/(2×(UBRR+1)) URSEL - musi być: =0 przy wpisie do UBRRH

  8. UCSRA 2Bh RXC TXC UDRE FE DOR UPE/PE U2X MPCM 0Bh AVR - porty szeregowe ATtiny2313/ATmega85158/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

  9. UCSRA 2Bh RXC TXC UDRE FE DOR UPE/PE U2X MPCM 0Bh AVR - porty szeregowe ATtiny2313/ATmega85159/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

  10. UCSRB 2Ah RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 0Ah AVR - porty szeregowe ATtiny2313/ATmega851510/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

  11. 23h40h 03h20h UCSRC URSEL UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL AVR - porty szeregowe ATtiny2313/ATmega851511/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: 000 - 5b 001 - 6b 010 - 7b 011 - 8b 100..110 - zarezerwowane 111 - 9b UCPOL - tylko dla transmisji synchronicznej - wybór zbocza sygnału XCK, przy którym następuje zmiana stanu linii nadajnika i odbiornika

  12. AVR - porty szeregowe ATtiny231312/23 Uniwersalny interfejs szeregowy USI • Właściwości: • sprzętowy interfejs dwu-przewodowej transmisji synchronicznej (I2C) 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 ATtiny231313/23 Uniwersalny interfejs szeregowy USI

  14. AVR - porty szeregowe ATtiny231314/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. USIUDRodbywa się przy wybranym zboczu zegara, ale 4-bitowy licznik zlicza wszystkie zbocza.

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

  16. USICR 2Dh USISIE USIOIE USIWM1 USIWM0 USICS1 USICS0 USICLK USITC 0Dh AVR - porty szeregowe ATtiny231316/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

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

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

  19. AVR - porty szeregowe ATmega851519/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 szeregoweATmega851520/23 Port SPI:

  21. SPCR 2Dh SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0 0Dh AVR - porty szeregoweATmega851521/23 Rejestr sterujący SPI: 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 transmisjiCPOL=1 stan SCK wysoki gdy nie ma transmisjiCPHA=0 odczyt danych przy pierwszym zboczu, zmiana przy drugim zboczuCPHA=1 odczyt danych przy drugim zboczu, zmiana przy pierwszym zboczu

  22. SPCR 2Dh SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0 0Dh AVR - porty szeregoweATmega851522/23 Rejestr sterujący SPI: SPR1,SPR0 - bity określające razem z SPI2X szybkość transmisji portu SPI: SPI2X,SPR1,SPR0 częstotliwość SCK 0 0 0 fOSC / 4 0 0 1 fOSC / 16 0 1 0 fOSC / 64 0 1 1 fOSC / 128 1 0 0 fOSC / 2 1 0 1 fOSC / 8 1 1 0 fOSC / 32 1 1 1 fOSC / 64

  23. SPSR 2Eh SPIF WCOL SPI2X 0Eh SPDR 2Fh 0Fh AVR - porty szeregoweATmega851523/23 Rejestr stanu SPI: 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:

More Related