Mikrokontrolery PIC.

Slides:



Advertisements
Podobne prezentacje
Watchdog Paweł Trojanowski
Advertisements

Taktowanie mikroprocesorów Jednostka sterująca mikroprocesora jest układem sekwencyjnym synchronicznym, czyli wymagającym sygnału taktującego (zegarowego).
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Architektura jednostki centralnej RD MBR MAR IRPC +1 WR jednostka sterująca ALU A F Adres Dane Rejestry: MAR – (Memory Address Register) rejestr adresowy.
REALIZACJA REGULATORA PID W UKŁADZIE FPGA
Idea, podstawowe parametry, cechy, charakterystyka
Technika mikroprocesorowa
CPU.
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Wykład 9 Dedykowane procesory DSP oraz mikrokontrolery z jednostką DSP
Wykład 4 Przetwornik Analogowo-Cyfrowy
Mikrokontrolery - - podstawowe architektury
Wykład 5: Program Sequencer i struktura pamięci
Historia i rodzaje procesorów firmy Intel
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Wykład 1 z programowania mikrokontrolerów
Procesory RISC.
Mikroprocesory i mikrokontrolery
PROJEKT GRUPOWY SYSTEM ANTYKOLIZYJNY DLA ROBOTÓW PRZEMYSŁOWYCH Grupa: P. Bocian K. Czułkowski A. Hryniewicz opiekun: mgr inż. Piotr Fiertek.
PROJEKT GRUPOWY SYSTEM ANTYKOLIZYJNY DLA ROBOTÓW PRZEMYSŁOWYCH Grupa: P. Bocian K. Czułkowski A. Hryniewicz opiekun: mgr inż. Piotr Fiertek.
Procesory jednoukładowe
Układy wejścia-wyjścia
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Pamięci półprzewodnikowe
Technika Mikroprocesorowa - informacje podstawowe
Mikrokontrolery PIC.
MCS51 - wykład 2.
MCS51 - wykład 5.
MCS51 - wykład 6.
Architektura komputerów
Architektura komputerów
Rodzina AVR wykład 7.
Architektura komputerów
Rodzina AVR wykład 4.
Mikrokontrolery PIC.
Magistrale szeregowe.
Zasada działania komputera
Literatura A.Skorupski - Podstawy budowy i działania komputerów (WKŁ 1996) P.Hadam - Projektowanie systemów mikroprocesorowych (BTC 2004) W.Stallings -
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Rodzina AVR wykład 6.
Przerwanie ang. interrupt.
PROCESORY (C) Wiesław Sornat.
12. Input Capture – Wejście przechwytywania
Wykład nr 4: Mikrokontrolery - wprowadzenie Piotr Bilski
Procesor – charakterystyka elementów systemu. Parametry procesora.
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
ATXMEGA128A4U 128 kB pamięci Flash Zasilanie 1.6V-3.6V Maksymalne taktowanie 32 MHz 34 Programowalne WE-WY System zdarzeń (Event System) 4 kanały DMA.
Układy i systemy mikroprocesorowe
Komputeryzacja pomiarów
STM32F429I Discovery WARSZTATY DLA STUDENCKIEGO KOŁA NAUKOWEGO CHIP.
PAMIĘCI PÓŁPRZEWODNIKOWE
Przerwania timera i przerwania zewnętrzne
Tryby adresowania i formaty rozkazów mikroprocesora
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Mikrokontrolery z rdzeniem ARM Cortex-M0+ Energooszczędność
Mikrokontrolery System przerwań
Mikrokontrolery MSP430 DMA
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Mikrokontrolery PIC

Wykład 2 2/51 Rodzina PIC MID Range

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ść 106 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;

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;

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.

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

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

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

PIC - MidRange - Architektura 9/51 Organizacja pamięci programu - c.d. 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 2000h 2001h 2002h 2003h 2007h ID CONFIG

Organizacja pamięci programu - c.d. PIC - MidRange - Architektura 10/51 Organizacja pamięci programu - c.d. Rejestr konfiguracyjny CONFIG: 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

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

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

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

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

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

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

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

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

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

PIC - MidRange - blok rejestrów specjalnych 20/51 IRP RP1 RP0 /TO /PD Z DC C 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

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

PIC - MidRange - tryby adresowania 22/51 Tryb adresowania operandów - bitów bezpośredni kod rozkazu blok rejestrów bcf 10,3 bit f Tryby adresowania operandów - bajtów natychmiastowy kod rozkazu operand andlw 130

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

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

PIC - MidRange 25/51 Generator taktu

Przetwarzanie rozkazów 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

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

PIC - MidRange 28/51 Obwód resetu

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

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;

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;

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

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ść PORTB7..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.

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.

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ń).

PIC - MidRange - przerwania 36/51 Struktura procedury obsługi przerwania: Przykład przechowania stanu rejestrów na początku procedury obsługi przerwania: MOVWF temp_W MOVF STATUS,W MOVWF temp_STATUS MOVF PCLATCH,W MOVWF temp_PCLATCH Przykład odtworzenia stanu rejestrów MOVF temp_PCLATCH,W MOVWF PCLATCH MOVF temp_STATUS,W MOVWF STATUS MOVF temp_W,W

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

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

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)

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

PIC - MidRange - peryferia 41/51 Timer 8-bitowy licznik z preskalerem/postskalerem wspólnym z watchdogiem; zlicza cykle masz. (fOSC/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.

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.

PIC - MidRange - peryferia 43/51 Watchdog

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

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;

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: BCF STATUS,RP0 ; Bank 0 MOVLW CONFIG_ADDR ; MOVWF EEADR ; adres EEPROM do odczytu BSF STATUS,RP0 ; Bank 1 BSF EECON1,RD ; odczyt komorki EEPROM MOVF EEDATA,W ; W = EEDATA

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: BSF STATUS,RP0 ; wybór banku #1 BCF INTCON,GIE ; wyłączenie przerwań BSF EECON1,WREN ; odblokowanie zapisu MOVLW 55h MOVWF EECON2 ; wpisanie 55h MOVLW AAh MOVWF EECON2 ; wpisanie AAh BSF EECON1,WR ; start zapisu BSF INTCON, GIE ; odblokowanie INTs.

PIC - MidRange - lista rozkazów 48/51 rozszerzenie względem BaseLine 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 procedury x - wartość dowolna (0/1)

PIC - MidRange - lista rozkazów 49/51

PIC - MidRange - lista rozkazów 50/51

PIC - MidRange - lista rozkazów 51/51