Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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.

Podobne prezentacje


Prezentacja na temat: "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."— Zapis prezentacji:

1 Rodzina AVR wykład 3

2 AVR 2/52 Zależności czasowe Zewnętrzna pamięć danych System przerwań Porty zewnętrzne Zerowanie V REF 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 AVR - zależności czasowe 5/52 Generator taktu w ATtiny2313 / ATmega8515 GND XTAL2 XTAL1 NC ZEWNĘTRZNY OSCYLATOR XTAL2 XTAL1 1HC GND WEWNĘTRZNY OSCYLATOR RC GND PA1/XTAL2 PA0/XTAL1 XTAL2 XTAL1 GND NC V CC

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

7 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 CAL6CAL5CAL4CAL3CAL2CAL1CAL0 OSCCAL31h 51h

8 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: : : : : : wartości zastrzeżone : : : :128 Zaprogramowanie (wyzerowanie) bitu CKDIV8 wstępnie ustawia CLKPR na (czyli :8) CLKPCECLKPS3CLKPS2CLKPS1CLKPS0 CLKPR26h 46h

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

10 AVR - zależności czasowe 10/52 Generator taktu w ATmega8515 Kalibrowanie wewnętrznego generatora RC Uwaga: Podczas RESETu rejestr jest inicjowany wartością ustawioną fabrycznie w 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. CAL7CAL6CAL5CAL4CAL3CAL2CAL1CAL0 OSCCAL04h 24h

11 AVR - zewnętrzna pamięć danych w ATmega /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 ATmega /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 ATmega /52 Wykonanie rozkazu odwołującego się do zewnętrznego RAM bez dodatkowych opóźnień: na podstawie danych katalogowych Atmela

14 AVR - zewnętrzna pamięć danych w ATmega /52 Rejestry obsługujące zewnętrzny RAM wATmega8515: SRESRW10SESM1ISC11ISC10ISC01ISC00 MCUCR35h 55h 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) SM0SRL2SRL1SRL0SRW01SRW00SRW11ISC2 EMCUCR36h 56h SRWn1,SRWn0 - określają ilość taktów oczekiwania dla sektora #n: bez taktów oczekiwania takt oczekiwania podczas strobu odczytu/zapisu takty oczekiwania podczas strobu odczytu/zapisu takty oczekiwania podczas strobu odczytu/zapisu oraz 1 takt oczekiwania przed wystawieniem nowego adresu dostępu

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

16 AVR - zewnętrzna pamięć danych w ATmega /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 AVR - zewnętrzna pamięć danych w ATmega /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: bity 7..0 (cały port C) bity bity bity bity bity bity żaden z bitów PORTC - adres tylko 8-bitowy nie używane bity można wykorzystać jako we/wy XMBKXMM2XMM1XMM0PUDPSR10 SFIOR30h 50h

18 AVR - przerwania 18/52 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. ITHSVNZC SREG3Fh5Fh

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 AVR - przerwania zewnętrzne ATtiny2313 / ATmega /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); INT1INT0PCIE GIMSK3Bh 5Bh INT1INT0INT2 GICR3Bh 5Bh

25 AVR - przerwania zewnętrzne ATtiny2313 / ATmega /52 ISCx1,ISCx0 - wybór warunku przerwania INTx (x=0,1): wyzwalanie niskim poziomem na wejściu INTx; nie używane; wyzwalanie dowolnym zboczem na wejściu INTx; wyzwalanie zboczem opadającym na wejściu INTx; wyzwalanie zboczem narastającym na wejściu INTx; Podczas zmiany tych bitów przerwanie INTx musi być zablokowane ! PUDSM1SESM0ISC11ISC10ISC01ISC00 MCUCR35h 55h Uaktywnianie przerwań zewnętrznych INT0 i INT1 w ATtiny2313 / ATmega8515 SRESRW10SESM1ISC11ISC10ISC01ISC00 MCUCR35h 55h

26 AVR - przerwania zewnętrzne ATtiny2313 / ATmega /52 PCINTx - bit zezwalający (gdy =1) na zgłoszenie przerwania, jeżeli nastąpiła zmiana na linii x portu B PCINT7PCINT6PCINT5PCINT4PCINT3PCINT2PCINT1PCINT0 PCMSK20h 40h Uaktywnianie przerwania od zmiany stanu wejść portu B w ATtiny2313:

27 AVR - przerwania zewnętrzne ATtiny2313 / ATmega /52 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 ! Uaktywnianie przerwań zewnętrznych INT2 w ATmega8515 SM0SRL2SRL1SRL0SRW01SRW00SRW11ISC2 EMCUCR36h 56h

28 AVR - przerwania zewnętrzne ATtiny2313 / ATmega /52 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. Flagi sygnalizujące przerwania zewnętrzne: INTF1INTF0PCIF EIFR3Ah 5Ah INTF1INTF0INTF2 GIFR3Ah 5Ah

29 AVR - porty zewnętrzne ATtiny2313 / ATmega /52 Cechy portów PA, PB i PD: dwukierunkowe; indywidualnie dla każdego bitu określany kierunek transmisji; obciążalność I IL = 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ść I IL = 20mA; występują funkcje alternatywne; 8b PC, 3b PE;

30 AVR - porty zewnętrzne ATtiny2313 / ATmega /52 Rejestry sterujące pracą portów: rej. wejściowy PINB16h 36h DDRB17h 37h rej. kierunku PORTB18h 38h rej. wyjściowy PUDSM1SESM0ISC11ISC10ISC01ISC00 MCUCR35h 55h PORTA1Bh 3Bh DDRA1Ah 3Ah rej. wejściowy PINA19h 39h rej. kierunku rej. wyjściowy rej. wejściowy PINC13h 33h DDRC14h 34h rej. kierunku PORTC15h 35h rej. wyjściowy XMBKXMM2XMM1XMM0PUDPSR10 SFIOR30h 50h

31 AVR - porty zewnętrzne ATtiny2313 / ATmega /52 Rejestry sterujące pracą portów: PORTE07h 27h DDRE06h 26h rej. wejściowy PINE05h 25h rej. kierunku rej. wyjściowy PORTD12h 32h rej. wyjściowy PORTD12h 32h rej. kierunku DDRD11h 31h rej. kierunku DDRD11h 31h rej. wejściowy PIND10h 30h rej. wejściowy PIND10h 30h

32 AVR - porty zewnętrzne ATtiny2313 / ATmega /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 / ATmega /52 Struktura bitów portów bez funkcji alternatywnych: na podstawie danych katalogowych Atmela

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

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

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

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

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

39 AVR - porty zewnętrzne ATtiny2313 / ATmega /52 ATtiny2313 zawiera 3 uniwersalne rejestry GPIORx: GPIOR215h 35h GPIOR114h 34h uniwersalny rejestr I/O #0 GPIOR013h 33h uniwersalny rejestr I/O #1 uniwersalny rejestr I/O #2 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 V POT =1,2V lub przy spadku Vcc poniżej V POT = 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 SUT 1 i SUT 0 oraz bitów konfigurujących generator taktu CKSEL 3.. CKSEL 0

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: t BOD 2ns / 2μs V BOD+ - V BOD- = 60mV / 130mV (V BOD+ + V BOD- )/2 = V BOD wartość V BOD definiują bity konfiguracyjne: BODLEVEL 2.. BODLEVEL 0 : mechanizm wyłączony; ,8V; ,7V; ,3V; zarezerwowane BODLEVEL: 0 - 4,0V; 1 - 2,7V na podstawie danych katalogowych Atmela

46 AVR - zerowanie 46/52 Przyczynę RESETu sygnalizuje rejestr: WRDFBORFEXTRFPORF MCUSR34h 54h 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 SM2WRDFBORFEXTRFPORF MCUCSR34h 54h

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 V REF 48/52 Wbudowane źródło V REF 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: μ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 / ATmega /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 V REF ; możliwość odłączenia pinów 0 i 1 PORTB od wejść buforów cyfrowych (od rej. PINB).

50 AVR - komparator analogowy ATtiny2313 / ATmega /52 Vcc ACD ACO ACI ACIE ACIS0 ACIS1 ACIC WEWN. SZYNA DANYCH REJ. STER. ACSR +-+- PB0 AIN0 PB1 AIN1 LOGIKA PRZERWAŃ PRZERWANIE OD KOMPARATORA WYZWALANIE UKŁADU PRZECHWYTUJĄCEGO TIMERA/LICZNIKA #1 ACBG 0 1 WBUD. V REF REJ. STER. DIDR AIN0D AIN1D 0 PINB.0 PINB

51 AVR - komparator analogowy ATtiny2313 / ATmega /52 Rejestr sterujący komparatora: ACD ACBG ACOACIACIEACICACIS1ACIS0 ACSR 08h 28h ACIS1,ACIS0 - bity programujące warunek przerwania od komparatora: przerwanie wywoływane jest zmianą stanu wyjścia komparatora; nie używane; przerwanie wywoływane jest zmianą 1 0 na wyjściu komparatora; przerwanie wywoływane jest zmianą 0 1 na wyjściu komparatora. ACIC - bit włączający strob przechwytywania wysyłany do timera/licznika1; ACIE - bit zezwolenia na przerwania od komparatora; ACI - flaga przerwania od komparatora, ustawiana przy spełnieniu warunku określonego bitami ACIS1 i ACIS0; ACO - flaga wyniku porównania napięć;

52 AVR - komparator analogowy ATtiny2313 / ATmega /52 Rejestr sterujący komparatora: ACD ACBG ACOACIACIEACICACIS1ACIS0 ACSR 08h 28h ACBG - ustawiony przełącza wejście + komparatora na wyjścia wbudowanego źródła napięcia V REF. ACD - bit włączający (gdy =0) i wyłączający (gdy =1) zasilanie komparatora; Przed każdą zmianą stanu bitów: ACD, ACIS1,ACIS0 należy zablokować przerwanie od komparatora ! AIN1DAIN0D DIDR01h 21h Rejestr sterujący wejść komparatora: AIN0D - ustawiony odłącza wejście PINB.0 od wejściowych buforów cyfrowych; AIN1D - ustawiony odłącza wejście PINB.1 od wejściowych buforów cyfrowych.


Pobierz ppt "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."

Podobne prezentacje


Reklamy Google