1 / 52

Rodzina AVR wykład 3

Rodzina AVR wykład 3. AVR 2 /52. Zależności czasowe Zewnętrzna pamięć danych System przerwań Porty zewnętrzne Zerowanie V REF i komparator analogowy.

katoka
Download Presentation

Rodzina AVR wykład 3

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 3

  2. AVR 2/52 Zależności czasoweZewnętrzna pamięć danychSystem przerwańPorty zewnętrzneZerowanieVREF i komparator analogowy

  3. AVR - zależności czasowe 3/52 • Wykonywanie kolejnych rozkazów - potokowe

  4. AVR - zależności czasowe 4/52 Wykonanie rozkazu odwołującego się do wewnętrznego SRAM:

  5. 1HC NC XTAL2 XTAL2 ZEWNĘTRZNY OSCYLATOR XTAL1 XTAL1 GND GND VCC PA1/XTAL2 NC XTAL2 WEWNĘTRZNYOSCYLATORRC PA0/XTAL1 XTAL1 GND GND AVR - zależności czasowe 5/52 • Generator taktu w ATtiny2313 / ATmega8515

  6. CKDIV8 CKOUT SUT1 SUT0 CKSEL3 CKSEL2 CKSEL1 CKSEL0 AVR - zależności czasowe 6/52 • Generator taktu w ATtiny2313 Wybór źródła sygnału taktującego - bitami konfiguracyjnymi CKSEL3...CKSEL0 źródło sygnału 0000 generator zewnętrzny 0010 wewn. oscylator RC 4MHz 0100 wewn. oscylator RC 8MHz (ustawienie fabryczne) 0110 wewn. oscylator watch-doga 128kHz 100x oscylator ceramiczny do 1MHz 101x oscylator ceramiczny/kwarcowy 1..3MHz 110x oscylator ceramiczny/kwarcowy 3..8MHz 111x oscylator ceramiczny/kwarcowy >8MHz CKDIV8 - wyzerowany włącza dodatkowy podzielnik generatora :8 (ust.fabr.)

  7. OSCCAL 51h CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 31h AVR - zależności czasowe 7/52 • Generator taktu w ATtiny2313 Kalibrowanie wewnętrznego generatora RC Uwaga: nowa wartość wpisywana do rejestru OSCCAL nie może się różnić od poprzedniej o więcej niż 20h

  8. CLKPR 46h CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 26h AVR - zależności czasowe 8/52 • Generator taktu w ATtiny2313 Preskaler generatora taktu - umożliwia spowolnienie pracy mikrokontrolera, gdy nie potrzebujemy jego pełnej szybkości obliczeniowej CLKPCE - musi być ustawiony by możliwa była zmiana bitów CLKPSx zmiana CLKPSx musi nastąpić w ciągu 4 cykli maszynowych CLKPS3..CLKPS0 - określają współczynnik podziału: 0000 - :1 0100 - :16 1000 - :256 0001 - :2 0101 - :32 1001..1111 - wartości zastrzeżone0010 - :4 0110 - :640011 - :8 0111 - :128 Zaprogramowanie (wyzerowanie) bitu CKDIV8 wstępnie ustawia CLKPR na 00000011 (czyli :8)

  9. BODLEVEL BODEN SUT1 SUT0 CKSEL3 CKSEL2 CKSEL1 CKSEL0 AVR - zależności czasowe 9/52 • Generator taktu w ATmega8515 Wybór źródła sygnału taktującego - bitami konfiguracyjnymi CKSEL3...CKSEL0 źródło sygnału 0000 generator zewnętrzny 0001 wewn. oscylator RC 1MHz (ustawienie fabryczne) 0010 wewn. oscylator RC 2MHz 0011 wewn. oscylator RC 4MHz 0100 wewn. oscylator RC 8MHz 0101 zewn. oscylator RC 0,1..0,9MHz 0110 zewn. oscylator RC 0,9..3MHz 0111 zewn. oscylator RC 3..8MHz 1000 zewn. oscylator RC 8..12MHz 1001 zewn. oscylator kwarcowy 32768Hz 101x zewn. oscylator ceramiczny/kwarcowy 0,4..0,9MHz 110x zewn. oscylator ceramiczny/kwarcowy 0,9..3MHz 111x zewn. oscylator ceramiczny/kwarcowy 3..8MHz

  10. AVR - zależności czasowe 10/52 • Generator taktu w ATmega8515 Kalibrowanie wewnętrznego generatora RC OSCCAL 24h CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 04h Uwaga: Podczas RESETu rejestr jest inicjowany wartością ustawioną fabryczniew jednym z bajtów sygnatur. Odpowiada ona wewnętrznemu oscylatorowi RC o f=1MHz.Dla innych częstotliwości generatora RC rejestr OSCCAL musi być inicjowany programowo - wartości kalibrujące dla częstotliwości 2, 4 i 8 MHz są wpisane fabrycznie w kolejne bajty sygnatur - należy je odczytać poprzez programator i zapisać w niewykorzystywanym obszarze FLASH lub EEPROM.

  11. AVR - zewnętrzna pamięć danych w ATmega851511/52 • ATmega8515 umożliwia dołączenie do 64kB zewnętrznej pamięci danych. • Cechy: • możliwość wyboru 4 wariantów czasu dostępu do zewnętrznego SRAM (określenie liczby taktów oczekiwania przy dostępie); • pamięć podzielona na 2 sektory o programowalnym rozmiarze; • dla każdego z sektorów odrębnie definiuje się ilość taktów oczekiwania; • możliwość wyboru liczby aktywnych bitów starszego bajtu adresu odwołania do pamięci - dostosowanie do aktualnie użytej kości pamięci SRAM; • PORTA działa jako multipleksowany port D7..D0/A7..A0; • PORTC działa jako wyjście starszego bajtu adresu dostępu A15..A8; • ponadto: PE1  ALE, PD6  /RD, PD7  /WR.

  12. AVR - zewnętrzna pamięć danych w ATmega851512/52 • Działanie: • dostęp jest uruchamiany automatycznie gdy bit SRE=1 i adres odwołania przekracza 25Fh; • jeżeli bit SRE=1 a adres odwołania jest mniejszy od 260h to działa mechanizm wysłania adresu na zewnątrz poprzez linie portów A i C wraz z sygnałem ALE sterującym zewnętrznym zatrzaskiem, ale nie działają zewn. stroby /RD i /WR; • typowy schemat aplikacyjny: na podstawie danych katalogowych Atmela

  13. AVR - zewnętrzna pamięć danych w ATmega851513/52 Wykonanie rozkazu odwołującego się do zewnętrznego RAM bez dodatkowych opóźnień: na podstawie danych katalogowych Atmela

  14. MCUCR 55h SRE SRW10 SE SM1 ISC11 ISC10 ISC01 ISC00 35h EMCUCR 56h SM0 SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 ISC2 36h AVR - zewnętrzna pamięć danych w ATmega851514/52 Rejestry obsługujące zewnętrzny RAM wATmega8515: SRE - ustawiony włącza mechanizm dostępu do zewnętrznej pamięci (wymusza jednocześnie właściwe kierunki pracy linii portów D i E jako sygnałów sterujących tym dostępem) SRWn1,SRWn0 - określają ilość taktów oczekiwania dla sektora #n: 0 0 - bez taktów oczekiwania 0 1 - 1 takt oczekiwania podczas strobu odczytu/zapisu 1 0 - 2 takty oczekiwania podczas strobu odczytu/zapisu 1 1 - 2 takty oczekiwania podczas strobu odczytu/zapisu oraz 1 takt oczekiwania przed wystawieniem nowego adresu dostępu

  15. AVR - zewnętrzna pamięć danych w ATmega851515/52 SRL2,SRL1,SRL0 - określają podział przestrzeni 64kB na sektory: dolny sektor #0 górny sektor #1 0 0 0 - niedostępny 260h - FFFFh 0 0 1 - 260h - 1FFFh 2000h - FFFFh 0 1 0 - 260h - 3FFFh 4000h - FFFFh 0 1 1 - 260h - 5FFFh 6000h - FFFFh 1 0 0 - 260h - 7FFFh 8000h - FFFFh 1 0 1 - 260h - 9FFFh A000h - FFFFh 1 1 0 - 260h - BFFFh C000h - FFFFh 1 1 1 - 260h - DFFFh E000h - FFFFh

  16. AVR - zewnętrzna pamięć danych w ATmega851516/52 Wykonanie rozkazu odwołującego się do zewnętrznego RAM z maksymalnymi opóźnieniami (SRWn1,SRWn0=11) : 3 (2+1) dodatkowe takty opóźnienia na podstawie danych katalogowych Atmela

  17. SFIOR 50h XMBK XMM2 XMM1 XMM0 PUD PSR10 30h AVR - zewnętrzna pamięć danych w ATmega851517/52 XMBK - ustawiony włącza mechanizm utrzymywania stanu magistrali AD0..AD7 XMM2, XMM1, XMM0 - określają ilość bitów portu C używanych do adresowania zewn. pamięci: 0 0 0 - bity 7..0 (cały port C) 0 0 1 - bity 6..0 0 1 0 - bity 5..0 0 1 1 - bity 4..0 1 0 0 - bity 5..0 1 0 1 - bity 2..0 1 1 0 - bity 1..0 1 1 1 - żaden z bitów PORTC - adres tylko 8-bitowy nie używane bity można wykorzystać jako we/wy

  18. System przerwań: • maskowalny- flaga I zezwolenia na przerwania w rejestrze SREG; • wektorowy; • częściowo priorytetowy; • możliwa wielopoziomowość; • wystąpienie przerwania jest sygnalizowane ustawieniem odpowiedniej flagi przerwań; • flagi przerwań (z wyj. przerwań zewnętrznych) są dostępne programowo. SREG 5Fh I T H S V N Z C 3Fh AVR - przerwania 18/52

  19. AVR - przerwania 19/52 Możliwe źródła - wektory przerwań w ATtiny2313 / ATmega8515:

  20. AVR - przerwania 20/52 Możliwe źródła - wektory przerwań w ATtiny2313 / ATmega8515:

  21. AVR - przerwania 21/52 Możliwe źródła - wektory przerwań w ATtiny2313 / ATmega8515 :

  22. AVR - przerwania 22/52 Mechanizm rozpoczęcia obsługi przerwania: Jeżeli pojawia się przerwanie - zostaje ustawiona odpowiednia flaga Jeżeli ponadto ustawiona jest flaga I w rejestrze SREG to następuje proces przyjęcia przerwania: 1. zerowanie flagi I w SREG; 2. zapis na stos bieżącej wartości PC jako adresu powrotu z obsługi przerwania; 3. zainicjowanie PC na wartość odpowiedniego wektora oczekującego na obsługę przerwania o najwyższym priorytecie; 4. skasowanie indywidualnej flagi przerwania przyjętego do obsługi. UWAGA: czas wejścia w procedurę obsługi przerwania wynosi min. 8 cykli zegara systemowego.

  23. AVR - przerwania 23/52 • Mechanizm zakończenia obsługi przerwania: • procedura obsługi przerwania (po wykonaniu właściwych operacji) powinna się kończyć rozkazem RETI; • RETI odtwarza ze stosu wartość PC i ustawia flagę I w SREG; • wykonywany jest minimum 1 rozkaz z przerwanego (zawieszonego) wcześniej procesu. • UWAGA: powrót z obsługi przerwania zajmuje 4 cykle zegara systemowego. • Wielopoziomowość uzyskuje się ustawiając flagę I we wnętrzu procedury obsługi przerwania.

  24. GIMSK GICR 5Bh 5Bh INT1 INT1 INT0 INT0 PCIE INT2 3Bh 3Bh AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 24/52 Linie portu PD mogą pracować jako wejścia przerwań od układów zewnętrznych PD2 - INT0 i PD3 - INT1.Także zmiany stanu linii portu B mogą powodować przerwanie.Linia 0 portu PE może pracować jako wejście przerwań zewnętrznych INT2. O warunkach przyjmowania tych przerwań decydują bity rejestrów GIMSK, GICR, MCUCR i PCMSK: INT1 - bit zezwolenia na przerwanie INT1 (na PD3); INT0 - bit zezwolenia na przerwanie INT0 (na PD2); PCIE - bit zezwolenia na przerwanie od zmiany stanu linii portu B;INT2 - bit zezwolenia na przerwanie INT2 (na PE0);

  25. MCUCR MCUCR 55h 55h SRE PUD SRW10 SM1 SE SE SM0 SM1 ISC11 ISC11 ISC10 ISC10 ISC01 ISC01 ISC00 ISC00 35h 35h AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 25/52 Uaktywnianie przerwań zewnętrznych INT0 i INT1 w ATtiny2313 / ATmega8515 ISCx1,ISCx0 - wybór warunku przerwania INTx (x=0,1): 0 0 - wyzwalanie niskim poziomem na wejściu INTx; 0 1 - nie używane;0 1 - wyzwalanie dowolnym zboczem na wejściu INTx; 1 0 - wyzwalanie zboczem opadającym na wejściu INTx; 1 1 - wyzwalanie zboczem narastającym na wejściu INTx; Podczas zmiany tych bitów przerwanie INTx musi być zablokowane !

  26. PCMSK 40h PCINT7 PCINT6 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 20h AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 26/52 Uaktywnianie przerwania od zmiany stanu wejść portu B w ATtiny2313: PCINTx - bit zezwalający (gdy =1) na zgłoszenie przerwania, jeżeli nastąpiła zmiana na linii x portu B

  27. EMCUCR 56h SM0 SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 ISC2 36h AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 27/52 Uaktywnianie przerwań zewnętrznych INT2 w ATmega8515 ISC2 - wybór warunku przerwania INT2: 0 - wyzwalanie zboczem opadającym na wejściu INT2; 1 - wyzwalanie zboczem narastającym na wejściu INT2; Podczas zmiany bitu ISC2 przerwanie INT2 musi być zablokowane !

  28. EIFR GIFR 5Ah 5Ah INTF1 INTF1 INTF0 INTF0 PCIF INTF2 3Ah 3Ah AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 28/52 Flagi sygnalizujące przerwania zewnętrzne: Flag tych nie można zmienić programowo, ale: Jeżeli odpowiednie linie portu D ustawi się jako wyjściowe i programowo dokona się zmiany stanu tych linii zgodnie z zaprogramowanym warunkiem zgłoszenia przerwania zewnętrznego to zostanie przyjęte odpowiednie przerwanie zewnętrzne. Analogicznie jest w przypadku przerwania INT2 i linii PE0. Podobnie wymuszona programowo zmiana stanu linii portu B może spowodować ustawienie flagi PCIF.

  29. AVR - porty zewnętrzne ATtiny2313 / ATmega851529/52 • Cechy portów PA, PB i PD: • dwukierunkowe; • indywidualnie dla każdego bitu określany kierunek transmisji; • obciążalność IIL = 20mA; • występują funkcje alternatywne; • 3b / 8b PA; • 8b PB i 7b/ 8b PD. • Cechy portów PC i PE: • dwukierunkowe; • indywidualnie dla każdego bitu określany kierunek transmisji; • obciążalność IIL = 20mA; • występują funkcje alternatywne; • 8b PC , 3b PE;

  30. PORTC PORTB 35h 38h rej. wyjściowy rej. wyjściowy 18h 15h DDRC DDRB 37h 34h rej. kierunku rej. kierunku 14h 17h SFIOR 50h XMBK XMM2 XMM1 XMM0 PUD PSR10 30h PINB PINC 36h 33h rej. wejściowy rej. wejściowy 16h 13h PORTA 3Bh rej. wyjściowy 1Bh DDRA 3Ah rej. kierunku 1Ah PINA 39h rej. wejściowy 19h MCUCR 55h PUD SM1 SE SM0 ISC11 ISC10 ISC01 ISC00 35h AVR - porty zewnętrzne ATtiny2313 / ATmega851530/52 Rejestry sterujące pracą portów:

  31. PORTD 32h rej. wyjściowy 12h PORTD 32h rej. wyjściowy 12h PORTE DDRD 27h 31h rej. kierunku rej. wyjściowy 07h 11h DDRD 31h rej. kierunku 11h DDRE PIND 30h 26h rej. wejściowy rej. kierunku 06h 10h PIND 30h rej. wejściowy 10h PINE 25h rej. wejściowy 05h AVR - porty zewnętrzne ATtiny2313 / ATmega851531/52 Rejestry sterujące pracą portów:

  32. AVR - porty zewnętrzne ATtiny2313 / ATmega851532/52 Konfigurowanie linii portów: PUD ustawiony odłącza opornik polaryzujący do Vcc wyjście portu Potrzeby funkcji alternatywnych linii portów dominują nad bitem PUD

  33. AVR - porty zewnętrzne ATtiny2313 / ATmega851533/52 Struktura bitów portów bez funkcji alternatywnych: na podstawie danych katalogowych Atmela

  34. AVR - porty zewnętrzne ATtiny2313 / ATmega851534/52 Alternatywne funkcje linii portu PB:

  35. AVR - porty zewnętrzne ATtiny2313 / ATmega851535/52 Alternatywne funkcje linii portu PD:

  36. AVR - porty zewnętrzne ATtiny2313 / ATmega851536/52 Alternatywne funkcje linii portu PA:

  37. AVR - porty zewnętrzne ATtiny2313 / ATmega851537/52 Alternatywne funkcje linii portów PC i PE w ATmega8515:

  38. AVR - porty zewnętrzne ATtiny2313 / ATmega851538/52 Struktura przykładowego bitu portu z funkcją alternatywną: na podstawie danych katalogowych Atmela

  39. GPIOR2 35h uniwersalny rejestr I/O #2 15h GPIOR1 34h uniwersalny rejestr I/O #1 14h GPIOR0 33h uniwersalny rejestr I/O #0 13h AVR - porty zewnętrzne ATtiny2313 / ATmega851539/52 ATtiny2313 zawiera 3 uniwersalne rejestry GPIORx: Nie są fizycznie połączone z końcówkami zewnętrznymi. Ich adresy umożliwiają użycie rozkazów bitowych (zmiana stanu bitu, skok warunkowy). Przeznaczone są do przechowywania globalnych zmiennych i flag stanu.

  40. AVR - zerowanie 40/52 • Możliwe są 4 źródła resetu procesora: • od zasilania układu (przy wzroście Vcc ponad VPOT=1,2V lub przy spadku Vcc poniżej VPOT= 1,1V - wartości „typowe”); • od zewnętrznego sygnału /RESET (poziom napięcia niższy od VRST=0,2..0,9Vcc musi trwać przez min. 2 okresy generatora taktu); • od wbudowanego układu watch-doga - w przypadku przepełnienia się jego licznika. • od wbudowanego układu wykrywającego częściowy spadek Vcc (ang. Brown-out Detector, BOD) • przyczyna resetu może być programowo rozpoznana na podstawie bitów rejestru MCUSR / MCUCSR

  41. AVR - zerowanie 41/52 Schemat logiczny obwodów zerowania: na podstawie danych katalogowych Atmela

  42. AVR - zerowanie 42/52 Wewnętrzny impuls zerujący AT90S2313 trwa : 11÷21ms przy niezaprogramowanym bicie FSTRT (=1) 1,0÷1,2ms po zaprogramowaniu tego bitu (FSTRT=0). Bit FSTRT jest jednym z bitów konfiguracyjnych mikrokontrolera, programowanym podczas programowania pamięci programu. Czas trwania wewn. impulsu zerującego ATtiny2313 zależy od ustawienia bitów konfiguracyjnych SUT1 i SUT0oraz bitów konfigurujących generator taktu CKSEL3 .. CKSEL0

  43. AVR - zerowanie 43/52 RESET od zasilania i wymuszony z zewnątrz: na podstawie danych katalogowych Atmela

  44. AVR - zerowanie 44/52 RESET od przepełnienia watch-doga: na podstawie danych katalogowych Atmela

  45. AVR - zerowanie 45/52 RESET od częściowego spadku napięcia zasilania w ATtiny2313 / ATmega8515: tBOD  2ns / 2μs VBOD+ - VBOD- = 60mV / 130mV (VBOD+ + VBOD-)/2 = VBOD wartość VBOD definiują bity konfiguracyjne:BODLEVEL2 .. BODLEVEL0:111 - mechanizm wyłączony; 110 - 1,8V; 101 - 2,7V; 100 - 4,3V;011..000 - zarezerwowane BODLEVEL: 0 - 4,0V; 1 - 2,7V na podstawie danych katalogowych Atmela

  46. MCUCSR 54h SM2 WRDF BORF EXTRF PORF 34h AVR - zerowanie 46/52 Przyczynę RESETu sygnalizuje rejestr: MCUSR 54h WRDF BORF EXTRF PORF 34h • WRDF - reset spowodowany przez watch-dog • BORF - reset spowodowany przez układ Brown-out Detector • EXTRF - reset spowodowany sygnałem zewnętrznym • PORF - reset spowodowany napięciem zasilania • flagi WRDF, BORF i EXTRF są automatycznie zerowane przy resecie od zasilania (ustawia się wtedy PORF=1) • wszystkie 4 flagi mogą być zerowane programowo

  47. AVR - zerowanie 47/52 • Wewnętrzny RESET powoduje: • wyzerowanie licznika rozkazów PC; • ustawienie pinów portów PB i PD w stan wysokiej impedancji; • zainicjowanie wartościami początkowymi rejestrów specjalnych; • wszystkie rejestry przyjmują wartość 00h; • wyjątkiem jest rej. USR, który przyjmuje wartość 20h. • Pod adresem 000h w pamięci programu powinien znajdować się rozkaz • RJMP ini • realizujący skok relatywny do adresu oznaczonego etykietą ‘ini’, od którego zaczyna się właściwa sekwencja startowa programu.

  48. AVR - wbudowane źródło VREF48/52 • Wbudowane źródło VREF ATtiny2313 / ATmega8515 • Właściwości: • źródło napięcia o orientacyjnej wartości 1,1V / 1,23V; • do wykorzystania przez: - układ BOD w obwodach resetu; - komparator analogowy; • orientacyjny czas włączenia do pracy: 40..70μs; • orientacyjny pobór prądu z zasilania: 15μA / 10μA; • domyślnie wyłączone; • włącza się automatycznie przy: - ustawieniu bitu ACBG w rej. ACSR, - włączeniu mechanizmu brown-out detection

  49. AVR - komparator analogowy ATtiny2313 / ATmega851549/52 • Właściwości: • wejścia podłączone do pinów 0 (“+”) i 1 (“-”) PORTB; • możliwość włączenia/wyłączenia zasilania komparatora bitem sterującym (po resecie domyślnie wyłączony) w celu redukcji poboru energii; • wybrana zmiana stanu wyjścia komparatora może powodować: - zgłoszenie przerwania; - zadziałanie układu przechwytującego w timerze/liczniku #1 • wejście nieodwracające komparatora może być dołączone do wbudowanego źródła napięcia VREF; • możliwość odłączenia pinów 0 i 1 PORTB od wejść buforów cyfrowych (od rej. PINB).

  50. AVR - komparator analogowy ATtiny2313 / ATmega851550/52 WEWN. SZYNA DANYCH REJ. STER. DIDR REJ. STER. ACSR ACD ACI ACO ACIE ACIS1 ACIS0 ACIC AIN0D AIN1D ACBG Vcc WBUD.VREF 0 1 PRZERWANIE ODKOMPARATORA 1 PB0AIN0 + - LOGIKAPRZERWAŃ WYZWALANIE UKŁADUPRZECHWYTUJĄCEGOTIMERA/LICZNIKA #1 0 PB1AIN1 PINB.0 PINB.1 0 0

More Related