Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Mikrokontrolery PIC. Wykład 2 2/51 Rodzina PIC MID Range.

Podobne prezentacje


Prezentacja na temat: "Mikrokontrolery PIC. Wykład 2 2/51 Rodzina PIC MID Range."— Zapis prezentacji:

1 Mikrokontrolery PIC

2 Wykład 2 2/51 Rodzina PIC MID Range

3 PIC - MidRange - Architektura 3/51 PIC16C84 charakteryzuje się następującymi cechami: architektura Harvard RISC; 8-bitowe ALU; 1024x14 EEPROM programu; 15 rejestrów specjalnych; 36B SRAM+64B EEPROM (żywotność 10 6 cykli) danych; 35 rozkazów o kodzie 14-bitowym, wykonywane w 1 cyklu (wyjątek: rozkazy skoku i wywołania); 8-poziomowy stos sprzętowy;

4 PIC - MidRange - Architektura 4/51 Cechy c.d.: proste (bezpośredni, pośredni i względny) tryby adresowania danych i rozkazów; 4 źródła przerwań; 13 linii we/wy o obciążalności 20/25mA; 8-bitowy timer/licznik z 8-bitowym programowalnym preskalerem; interfejs SPI do programowania w trybie ISP; wbudowany układ resetu od zasilania, z timerem resetu; watchdog z wbudowanym własnym oscylatorem RC;

5 PIC - MidRange - Architektura 5/51 Cechy c.d.: tryb oszczędzania energii SLEEP; częstotliwość taktowania 0-10MHz (czas cyklu: 400ns - ); wbudowany oscylator RC z programowalną kalibracją; możliwość wyboru rodzaju generatora taktu (wewn/zewn, RC/kwarc/prostokąt); bity ochronne programu; szeroki zakres napięć pracy: 2,0 - 6,0 V.

6 PIC - MidRange - Architektura 6/51 Struktura blokowa układu PIC16C84

7 PIC - MidRange - Architektura 7/51 PC - 13-bitowy, jego młodszy bajt jest widoczny jako PCL Przestrzeń adresowa pamięci programu Mid Range: FFFh (8k×14b słów). Przy pamięci programu o pojemności P<8kW, PC adresuje ją modulo P. Podzielona na 4 strony po 2kW. Organizacja pamięci programu

8 PIC - MidRange - Architektura 8/51 Organizacja pamięci programu - c.d. PC strona 1 strona 2 strona strona 0 1FFFh adres restartu 0000h 03FFh 0400h 13 adres obsł. przerwań 0004h FFh 0800h 0FFFh 1000h 17FFh 1800h dostępna w Mid-range przestrzeń dostępna w 16C84 przestrzeń

9 PIC - MidRange - Architektura 9/51 Komórki o adresach 2000h..200Fh to tzw. pamięć konfiguracyjna: 2000h, 2001h, 2002h i 2003h są przeznaczone na numer identyfikacyjny układu (bity 3..0). 2007h - rejestr konfiguracyjny CONFIG Organizacja pamięci programu - c.d. 2000h 2001h 2002h 2003h 2007h ID CONFIG

10 PIC - MidRange - Architektura 10/51 Rejestr konfiguracyjny CONFIG: Organizacja pamięci programu - c.d. CP - bit ochronny kodu programu: gdy =1 - ochrona wył., =0 - ochrona włącz. PWRTE - bit włączający power-up timer: gdy =1 - włącz., =0 - wył. WDTE - bit włączający watch-dog: gdy =1 watch-dog włączony, =0 - wyłączony FOSC1, FOSC0 - bity wybierające źródło sygnału taktującego: 00 - LP zewn. oscylator kwarcowy o f=32-400kHz; 01 - XT zewn. oscylator kwarcowy o f=0,4-4MHz; 10 - HS wewn. oscylator RC ok. 4MHz albo zewn. oscylator kwarcowy 4-10MHz; 11 - RC zewn. oscylator RC o f do 4MHz

11 bajt z ALU PIC - MidRange - Architektura 11/38 Modyfikacja i odtwarzanie PC 1. Przez rozkaz zapisujący rejestr PCL 1B wartością Dowolny rozkaz arytmetyczno-logiczny lub przesłania, dla którego wskazano PCL jako rejestr docelowy PCLATCH: PC: PCL

12 11b z kodu rozkazu CALL PIC - MidRange - Architektura 12/38 Modyfikacja i odtwarzanie PC 2. Przez rozkaz wywołania procedury CALL PC: PCL szczyt stosu sprzętowy stos 8 x 13b PCLATCH: szczyt stosu adres powrotu

13 11b z kodu rozkazu GOTO PIC - MidRange - Architektura 13/38 Modyfikacja i odtwarzanie PC 3. Przez rozkaz skoku GOTO PC: PCL PCLATCH:

14 PIC - MidRange - Architektura 14/38 Modyfikacja i odtwarzanie PC 4. Przez rozkazy powrotu z procedury RETURN, RETLW, RETFIE PC: PCLATCH: PCL szczyt stosu sprzętowy stos 8 x 13b

15 PIC - MidRange - stos 15/51 Stos: sprzętowy; 8-poziomowy (8 13-bitowych rejestrów); wskaźnik stosu nie jest dostępny; działa jak rejestr cyrkulacyjny - 9-ty zapis na stos spowoduje zamazanie pierwszego wpisu; szczyt stosu sprzętowy stos 8 x 13b

16 PIC - MidRange - Architektura 16/51 Organizacja pamięci danych kod rozkazu: FSR: IRP RP1,RP0 bank #0bank #1 00h 30h 7Fh 80h 0B0h 0FFh 100h 17Fh 180h 1FFh bank #2bank # obszar niedostępny w 16C STATUS:

17 PIC - MidRange - Architektura 17/51 Organizacja pamięci danych - blok rejestrów np. 16C84

18 PIC - MidRange - blok rejestrów specjalnych 18/51 szare pola - bity nie używane; - - niezaimplementowany przy odczycie 0

19 PIC - MidRange - blok rejestrów specjalnych 19/51 szare pola - bity nie używane; - - niezaimplementowany przy odczycie 0

20 PIC - MidRange - blok rejestrów specjalnych 20/51 IRPRP1RP0/TO/PDZDCC STATUS: C - flaga przeniesienia/pożyczki DC - flaga przeniesienia połówkowego Z - flaga sygnalizująca zerowy wynik operacji /PD - flaga sygnalizująca przejście w stan uśpienia: 0 - po rozkazie SLEEP 1 - po resecie od zasilania lub wykonaniu rozkazu CLRWDT /TO - flaga przepełnienia licznika watch-doga: 0 - po resecie od zasilania, po wykonaniu rozkazów CLRWDT lub SLEEP 1 - gdy przepełnił się licznik watch-doga RP1,RP0 - bity wyboru aktywnego banku rejestrów przy adresowaniu bezpośr.: 00 - bank #0 (00..7Fh), 01 - bank #1 (80h..0FFh), 10 - bank #2 (100h..17Fh),11 - bank #3 (180h..1FFh) IRP - bit wyboru banku rejestrów przy adresowaniu pośrednim: 0 - bank #0 i #1 (00..0FFh); 1 - bank #2 i #3 (100h..1FFh). IRP i RP1 są nieużywane w PIC16C84

21 PIC - MidRange - blok rejestrów specjalnych 21/51

22 PIC - MidRange - tryby adresowania 22/51 Tryby adresowania operandów - bajtów natychmiastowy kod rozkazuoperand andlw130 Tryb adresowania operandów - bitów bezpośredni kod rozkazu blok rejestrów bcf10,3 bit f

23 PIC - MidRange - tryby adresowania 23/51 Tryby adresowania operandów - bajtów - cd. rejestrowy /bezpośredni operand kod rozkazu f Rf: addwf10 RP1RP0 7b 2b wybór banku 9b rejestry/SRAM

24 PIC - MidRange - tryby adresowania 24/51 Tryby adresowania operandów - bajtów - cd. rejestrowy pośredni kod rozkazu f* FSR: f*=00h,80h clrfINDF IRP 7b 2b wybór banku operand 9b rejestry/SRAM

25 PIC - MidRange 25/51 Generator taktu

26 PIC - MidRange 26/51 Przetwarzanie rozkazów Q1 - dekodowanie rozkazu, inkrement PC Q2 - pobranie argumentów Q3 - wykonanie rozkazu Q4 - zapamiętanie wyniku i koniec pobierania nast. rozkazu

27 1. MOVLW 55h 2. MOVWF PORTB 3. CALL PROC1 4. BSF PORTA,BIT x. PROC1:... PIC - MidRange 27/51 Przetwarzanie rozkazów - cd. pobranie 1 wykonanie 1 pobranie 2 wykonanie 2 pobranie 3 wykonanie 3 pobranie 4 odrzucenie 4 pobranie x wykonanie x

28 PIC - MidRange 28/51 Obwód resetu

29 PIC - MidRange 29/51 Obwód resetu - działanie układu BOR (Brown Out Reset)

30 PIC - MidRange 30/51 Stan rejestrów specjalnych po resecie, zależnie od przyczyny: - - niezaimplementowany, przy odczycie 0; x - wartość nieokreślona; u - wartość niezmieniona; q - wartość zależna od przyczyny resetu;

31 PIC - MidRange 31/51 Stan rejestrów specjalnych po resecie, zależnie od przyczyny: - - niezaimplementowany, przy odczycie 0; u - wartość niezmieniona; x - wartość nieokreślona; q - wartość zależna od przyczyny resetu;

32 PIC - MidRange 32/51 Praca z obniżonym poborem prądu tryb włącza się rozkazem SLEEP; główny oscylator wyłącza się następuje wstrzymanie wykonywanie programu linie portu pozostają b.z. zerowany jest licznik WDT i jego postskaler zużycie prądu spada do ok. 1μA bity: /PD=0, /TO=1 Wyjście z trybu power down może być wywołane: zewnętrzny reset na /MCLR- restart programu od 0000 reset od WDT time-out- wznowienie programu od nast. rozkazu niezamaskowanym przerwaniem - j.w. i wejście w obsługę przerwania

33 PIC - MidRange - przerwania 33/51 System przerwań PIC16C84: 4 źródła przerwań:zewnętrzne RB0/INT od przepełnienia TMR0 od zmiany stanu wejść PORTB 7..4 od końca zapisu do EEPROM wspólny wektor obsługi - od adresu 004h; maskowalny - indywidualne flagi maskowania + flaga globalna GIE; zablokowany po RESET; powrót z procedury obsługi rozkazem RETFIE, ustawiającym także GIE=1; przerwania mogą budzić mikrokontroler z trybu SLEEP; przerwania mają swe flagi sygnalizacyjne.

34 PIC - MidRange - przerwania 34/51 Rejestr kontrolny przerwań PIC16C84: GIE - globalna flaga zezwolenia na przerwania; EEIE - zezwolenie na przerwanie od EEPROM; T0IE - zezwolenie na przerwanie od TMR0; INTE - zezwolenie na przerwanie zewnętrzne; RBIE - zezwolenie na przerwanie od zmiany PORTB; T0IF - flaga przerwania od TMR0; INTF - flaga przerwania zewnętrznego; RBIF - flaga przerwania od PORTB; EEIF - flaga przerwania od EEPROM, umieszczona na 4 bicie EECON1.

35 PIC - MidRange - przerwania 35/51 Struktura procedury obsługi przerwania: 1. Przechowanie rejestrów W, STATUS, PCLATCH (i innych) w zarezerwowanych rejestrach banku #0. 2. Rozpoznanie przyczyny przerwania (z powodu wspólnego wektora dla 4 możliwych źródeł). 3. Obsłużenie wybranego przerwania. 4. Skasowanie jego indywidualnej flagi zgłoszenia przerwania (np. rozkazem BCF). 5. Odtworzenie stanu rejestrów (innych), PCLATCH, STATUS, W z zarezerwowanych rejestrów w banku #0. 6. Powrót z procedury obsługi przerwania rozkazem RETFIE (odblokowującym ponownie system przerwań).

36 PIC - MidRange - przerwania 36/51 Struktura procedury obsługi przerwania: Przykład przechowania stanu rejestrów na początku procedury obsługi przerwania: MOVWFtemp_W MOVFSTATUS,W MOVWFtemp_STATUS MOVFPCLATCH,W MOVWFtemp_PCLATCH Przykład odtworzenia stanu rejestrów MOVFtemp_PCLATCH,W MOVWFPCLATCH MOVFtemp_STATUS,W MOVWFSTATUS MOVFtemp_W,W

37 PIC - MidRange - peryferia 37/51 Port A port ma 5 linii: RA0..RA3 - zwykłe we/wy; RA4 - we/wy albo wejście impulsów dla TMR0; rejestr TRISA decyduje o kierunku (ustawione bity TRIS oznaczają wejście 3-stanowe); linie RA0..RA3 mają diody zabezpieczające dołączone do masy i zasilania

38 PIC - MidRange - peryferia 38/51 Port A linia RA4 ma diodę zabezpieczającą dołączoną tylko do masy

39 PIC - MidRange - peryferia 39/51 Port B port ma 8 linii: RB0 - we/wy albo wejście przerwania zewn. /INT0 RB1..RB3 - zwykłe we/wy; RB4..RB7 - zwykłe we/wy z możliwością przerwania od zmiany stany rejestr TRISB decyduje o kierunku (ustawione bity TRISB włączają opornik podciągający)

40 PIC - MidRange - peryferia 40/51 Port B linie RB6 i RB7 są wykorzystywane przy szeregowym programowaniu układu

41 PIC - MidRange - peryferia 41/51 Timer 8-bitowy licznik z preskalerem/postskalerem wspólnym z watchdogiem; zlicza cykle masz. (f OSC /4) albo zewn. impulsy wejściowe (na T0CKI); jego przepełnienie powoduje ustawienie flagi T0IF; widoczny jako rejestr TMR0; sterowanie pracą - poprzez bity rej. OPTION.

42 PIC - MidRange - peryferia 42/51 Watchdog bazuje na własnym oscylatorze RC; przepełnia się po 18ms (ale zależy to od temp. i nap.zasil.:7-33ms); by uzyskać dłuższe czasy należy użyć postskalera; przy normalnej pracy WDT Time-out powoduje RESET, a przy pracy w uśpieniu - obudzenie μC; watchdog zeruje się rozkazem CLRWDT albo SLEEP; watchdog można zablokować tylko w fazie programowania układu.

43 PIC - MidRange - peryferia 43/51 Watchdog

44 PIC - MidRange - peryferia 44/51 Wykorzystanie preskalera/postskalera przez timer i watchdog wsp. podziału preskalera: 1/2 1/4 1/8 1/16 1/32 1/64 1/128 1/516 - dla TMR0 postskalera 1/1 1/2 1/4 1/8 1/16 1/32 1/64 1/128 - dla WDT

45 PIC - MidRange - peryferia 45/51 Pamięć EEPROM dostępna poprzez rejestry EEDATA i EEADR; dodatkowo rejestry sterujące EECON1 i EECON2 (wirtualny); zapis polega na przeprogramowaniu pojedynczego bajtu; czas zapisu do 10ms/B, kontrolowany przez lokalny timer i zależny od temperatury i napięcia pracy; koniec zapisu powoduje ustawienie flagi EEIF, która może być zgłoszeniem przerwania;

46 PIC - MidRange - peryferia 46/51 Odczyt EEPROM 1. Wpisanie adresu do EEADR. 2. Ustawienie bitu RD w EECON1. 3. Odczyt zawartości rejestru EEDATA. Przykład programu: BCFSTATUS,RP0 ; Bank 0 MOVLWCONFIG_ADDR ; MOVWFEEADR ; adres EEPROM do odczytu BSFSTATUS,RP0 ; Bank 1 BSFEECON1,RD ; odczyt komorki EEPROM BCFSTATUS,RP0 ; Bank 0 MOVFEEDATA,W ; W = EEDATA

47 PIC - MidRange - peryferia 47/51 Zapis do EEPROM 1. Wpisanie adresu do EEADR. 2. Wpisanie danej do EEDATA. 3. Zablokowanie przerwań INTCON.GIE=0. 4. Odblokowanie wpisu do EEPROM EECON.WREN=1. 5. Zapis do EECON2 kolejno: 55h i 0AAh. 6. Włączenie zapisu do EEPROM EECON1.WR=1. 7. Odblokowanie przerwań INTCON.GIE=1. Przykład programu: BSFSTATUS,RP0 ; wybór banku #1 BCFINTCON,GIE ; wyłączenie przerwań BSFEECON1,WREN ; odblokowanie zapisu MOVLW55h MOVWFEECON2 ; wpisanie 55h MOVLWAAh MOVWFEECON2; wpisanie AAh BSFEECON1,WR ; start zapisu BSFINTCON, GIE ; odblokowanie INTs.

48 PIC - MidRange - lista rozkazów 48/51 kkkkkkkk - dana 1-bajtowa fffffff - adres w banku rejestrów/pamięci wskazujący na F d - bit wskazujący lokalizację wyniku: d=0 - wynik do W, d=1 wynik do F s - adres skoku, wywołania proceduryx - wartość dowolna (0/1) rozszerzenie względem BaseLine

49 PIC - MidRange - lista rozkazów 49/51

50 PIC - MidRange - lista rozkazów 50/51

51 PIC - MidRange - lista rozkazów 51/51


Pobierz ppt "Mikrokontrolery PIC. Wykład 2 2/51 Rodzina PIC MID Range."

Podobne prezentacje


Reklamy Google