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.
Wzór w notacji nawiasowej: a*(d*i*(k*o-l*n)-e*h*(k*o-l*n))+f*i*j*n
Wprowadzenie do informatyki Wykład 6
Wykonał : Marcin Sparniuk
CPU.
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Wykład 4 Przetwornik Analogowo-Cyfrowy
Podstawowe składniki funkcjonalne procesora i ich rola.
Alokacja pamięci struct Test {char c; int n; double x; } st1; st1 cnxcnx
ARCHITEKTURA KOMPUTERÓW definicja komputera PROCESOR PAMIĘĆ OPERACYJNA URZĄDZENIA ZEWNĘTRZNE.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Procesory RISC.
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Mikroprocesory i mikrokontrolery
Procesory jednoukładowe
Programowalny układ we-wy szeregowego 8251
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Układy kombinacyjne cz.2
MCS51 - wykład 2.
Dekodery adresów.
MCS51 - wykład 5.
Mikroprocesor Z80 przerwania.
MCS51 - wykład 6.
Architektura komputerów
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
Mikrokontrolery PIC.
Architektura komputerów
Wyrażenia algebraiczne
Mikrokontrolery PIC.
Sekwencyjne bloki funkcjonalne
Zasada działania komputera
Podstawy adresowania hostów w sieciach komputerowych
Podstawy działania wybranych usług sieciowych
Mikroprocesory.
Analiza wpływu regulatora na jakość regulacji (1)
Przerwanie ang. interrupt.
Prezentacja Multimedialna
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
Spawanie metodami TIG lub Plazma
Wykład nr 4: Mikrokontrolery - wprowadzenie Piotr Bilski
Obliczalność czyli co da się policzyć i jak Model obliczeń sieci liczące dr Kamila Barylska.
Procesor – charakterystyka elementów systemu. Parametry procesora.
Złożone układy kombinacyjne
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Przerzutniki bistabilne
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
PODSTAWY ADRESOWANIA IP W SIECIACH KOMPUTEROWYCH LEKCJA 2: Adresowanie bezklasowe Dariusz Chaładyniak.
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
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.
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
Mikrokontrolery System przerwań
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Mikrokontrolery PIC

Architektura PIC Przestrzenie adresowe Tryby adresowania Wykład 1 2/39 Architektura PIC Przestrzenie adresowe Tryby adresowania

PIC - Base Line - Architektura 3/39 PIC12C508/509 charakteryzują się następującymi cechami: architektura Harvard RISC; 8-bitowe ALU; PIC12C508: 512x12b EPROM OTP + 25B SRAM PIC12C509: 1024x12b EPROM OTP + 41B SRAM; 33 rozkazy o kodzie 12-bitowym, wykonywane w 1 cyklu (wyjątek: rozkazy skoku i wywołania); 7 rejestrów specjalnych; 2-poziomowy stos sprzętowy; proste (bezpośredni, pośredni i względny) tryby adresowania danych i rozkazów; 8-bitowy timer/licznik z 8-bitowym programowalnym preskalerem;

PIC - Base Line - Architektura 4/39 Cechy c.d.: interfejs SPI do programowania w trybie ISP; wbudowany układ resetu od zasilania, z timerem resetu; watchdog z wbudowanym własnym oscylatorem RC; tryb oszczędzania energii SLEEP, wyjście z trybu między innymi poprzez zmianę na linii we/wy; wbudowane rezystory podciągające na liniach we/wy; częstotliwość taktowania 0-4MHz (czas cyklu: 1s -  ); wbudowany oscylator RC (ok. 4MHz) z programowalną kalibracją; możliwość wyboru rodzaju generatora taktu (wewn/zewn, RC/kwarc/prostokąt); bity ochronne programu; szeroki zakres napięć pracy: 2,5 (3,0) - 5,5 V.

PIC - Base Line - Architektura 5/39 Struktura blokowa układu PIC12C508/509

PIC - Base Line - Architektura 6/39 Organizacja pamięci programu PC - 12-bitowy, jego młodszy bajt jest widoczny jako PCL Przestrzeń adresowa pamięci programu w Base-Line: 000..0FFFh (4k×12b słów); dzielona na strony po 512 słów; numer aktywnej strony pamięci określają bity PA1 i PA0 w słowie stanu STATUS (C508/509 nie mają bitu PA1); przy pamięci programu o pojemności P<4kW, PC adresuje ją modulo P. W ostatniej komórce pamięci EPROM zapisany jest rozkaz MOVLW xx (xx jest fabryczną wartością kalibrującą wewn. gen. RC).

PIC - Base Line - Architektura 7/39 Organizacja pamięci programu - c.d. 508 509 PC adres restartu dostępna w Base-line przestrzeń MOVLW xx 11 0 01FFh 0200h strona 0 0FFFh 0000h 12 pamięć konfiguracji PC adres restartu dostępna w Base-line przestrzeń MOVLW xx 11 0 strona 0 strona1 0FFFh 0000h 03FFh 0400h 12 pamięć konfiguracji

PIC - Base Line - Architektura 8/39 Organizacja pamięci programu - c.d. Komórki o adresach F00h..FFFh to tzw. pamięć konfiguracyjna: F00h, F01h, F02h i F03h zawierają numer identyfikacyjny układu (bity 3..0). FFFh - rejestr konfiguracyjny CONFIG F00h F01h F02h F03h FFFh ID CONFIG

PIC - Base Line - Architektura 9/39 Organizacja pamięci programu - c.d. Rejestr konfiguracyjny CONFIG: MCLRE - bit zewnętrznego resetu: =0 - pin /MCLR podpięty wewnętrznie do zasilania - zablokowany reset zewn. =1 - zezwolenie na zewn. reset CP - bit ochronny kodu programu: gdy =1 - ochrona wył., =0 - ochrona włącz. 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 - zewn. oscylator kwarcowy o f=32-400kHz; 01 - zewn. oscylator kwarcowy o f=0,4-8MHz; 10 - wewn. oscylator RC ok. 4MHz albo zewn. oscylator kwarcowy 8-20MHz; 11 - zewn. oscylator RC o f do 4MHz

PIC - Base Line - Architektura 10/39 Organizacja pamięci danych - blok rejestrów

PIC - Base Line - blok rejestrów specjalnych 11/39 szare pola - bity nie używane; - - niezaimplementowany przy odczycie 0

PIC - Base Line - blok rejestrów specjalnych 12/39

PIC - Base Line - blok rejestrów specjalnych 13/39 GPWUF - PA0 /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 PA0 - bit wyboru aktywnego banku pamięci programu GPWUF - flaga ustawiana przy zmianie stanu wejść portu GPIO: 0 - gdy po resecie od zasilania, watch-doga lub resetu zewnętrznego; 1 - gdy po resecie od zmiany stanu linii GPIO (wytrącenie ze stanu sleep)

PIC - Base Line - blok rejestrów specjalnych 14/39 /GPWU - gdy =0 zezwala na "obudzenie" µC ze stanu sleep zmianą stanu na liniach portu GPIO /GPPU - gdy=0 włącza polaryzację linii portu GPIO opornikami do zasilania T0CS - bit wyboru źródła sygnału dla licznika TMR0: 1 - zliczanie impulsów zewn. podanych na pin T0CKI 0 - zliczanie cykli maszynowych T0SE - bit wyboru zbocza na pinie T0CKI: 1 - zliczanie zboczy opadających; 0 - zliczanie zboczy narastających PSA - bit przypisania preskalera: 1 - do licznika watch-doga 0 - do licznika TMR0

PIC - Base Line - blok rejestrów specjalnych 15/39 PS2,PS1,PS0 - bity wyboru podzielnika: dla TMR0: dla WDT: 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128

PIC - Base Line - tryby adresowania 16/39 Tryby adresowania operandów - bajtów natychmiastowy kod rozkazu operand andlw 130 rejestrowy  bezpośredni operand kod rozkazu f Rf: addwf 10

PIC - Base Line - tryby adresowania 17/39 rejestrowy pośredni movlw 10 ;W:=adres do SRAM movwf FSR ;W->FSR clrf INDF ;SRAM[FSR]:=0 operand kod rozkazu Rf/SRAM[FSR] adres FSR: Tryb adresowania operandów - bitów bezpośredni kod rozkazu blok rejestrów bcf 10,3 bit f

Modyfikacja i odtwarzanie PC PIC - Base Line 18/39 Modyfikacja i odtwarzanie PC 1. Przez rozkaz zapisujący rejestr PCL 1B wartością 11 8 7 0 bajt z ALU ‘0’ PC: STATUS: PCL Dowolny rozkaz arytmetyczno-logiczny lub przesłania, dla którego wskazano PCL jako rejestr docelowy

Modyfikacja i odtwarzanie PC PIC - Base Line 19/39 Modyfikacja i odtwarzanie PC 2. Przez rozkaz wywołania procedury CALL szczyt stosu sprzętowy stos 2 x 12b 11 8 7 0 bajt z kodu rozkazu CALL ‘0’ PC: STATUS: PCL

Modyfikacja i odtwarzanie PC PIC - Base Line 20/39 Modyfikacja i odtwarzanie PC 3. Przez rozkaz skoku GOTO PCL 11 8 7 0 PC: 9b z kodu rozkazu GOTO STATUS:

Modyfikacja i odtwarzanie PC PIC - Base Line 21/39 Modyfikacja i odtwarzanie PC 4. Przez rozkaz powrotu z procedury RETLW szczyt stosu sprzętowy stos 2 x 12b PCL 11 8 7 0 PC: STATUS:

PIC - Base Line - stos 22/39 Stos w mikrokontrolerach Base-line: sprzętowy, 2-poziomowy, zbudowany z 12-bitowych rejestrów; wskaźnik wierzchołka stosu jest niedostępny; wykorzystywany tylko do przechowywania adresów powrotu z wywoływanych procedur; zapis więcej niż 2 adresów powrotu powoduje zamazanie poprzednich informacji na stosie - przepełnienie się stosu; brak sygnalizacji przepełnienia się stosu szczyt stosu sprzętowy stos 2 x 12b

PIC - Base Line - generator taktu 23/39

PIC - Base Line - cykl rozkazowy 24/39 Przetwarzanie rozkazów Q1 - dekodowanie rozkazu, inkrement PC Q2 - pobranie argumentów Q3 - wykonanie rozkazu Q4 - zapamiętanie wyniku i koniec pobierania nast. rozkazu

Obwód resetu PIC - Base Line 25/39 układ DRT generuje dodatkowe opóźnienie (ok.18ms) pozwalające na ustabilizowanie się napięcia zasilającego i pracy generatora.

Obwód resetu PIC - Base Line 26/39 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;

Praca z obniżonym poborem prądu tryb włącza się rozkazem SLEEP; PIC - Base Line 27/39 Praca z obniżonym poborem prądu tryb włącza się rozkazem SLEEP; główny oscylator wyłącza się, linie portu pozostają b.z. Wyjście z trybu power down może być wywołane przez: zewnętrzny reset na /MCLR; reset od WDT timeout; zmiana stanu linii GP0, GP1 GP3 (gdy to jest odblokowane); i powoduje wykonanie programu od początku. Bity GPWUF, /TO i /PD umożliwiają rozpoznanie przyczyny resetu/obudzenia uC:

PIC - Base Line - peryferia 28/39 Port GPIO port ma 6 linii: GP3 - tylko wejście; GP0..GP2,GP4,GP5 - we/wy; rejestr TRIS decyduje o kierunku (ustawione bity TRIS oznaczają wejście 3-stanowe), wyzerowane bity TRIS oznaczają wyjście informacji z rejestru GPIO; TRIS nie jest bezpośrednio dostępny (widoczny jako rej. specj.), można go zapisać tylko specjalnym rozkazem, który przepisuje do niego zawartość rejestru W.

PIC - Base Line - peryferia 29/39 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 (niedostępnym wprost).

PIC - Base Line - peryferia 30/39 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 - Base Line - peryferia 31/39 Watchdog

PIC - Base Line - peryferia 32/39 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/256 - dla TMR0 postskalera 1/1 1/2 1/4 1/8 1/16 1/32 1/64 1/128 - dla WDT

PIC - Base Line - lista rozkazów 33/39 kkkkkkkk - dana 1-bajtowa fffff - 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 - Base Line - lista rozkazów 34/39

PIC - Base Line - lista rozkazów 35/39

PIC - Base Line - lista rozkazów 36/39

PIC - Base Line - przykłady programowania 37/39 1. Realizacja skoku wyliczanego zał: zamiana cyfry szesnastkowej z rejestru 10h na kod wyświetlacza 7-segmentowego w W movf 16,w andlw h’0F’ ;wydzielenie bitów 3..0 call dek ;wywolanie procedury dekodujacej goto next dek addwf pcl,f ;skok wyliczany retlw b’00111111’ ;cyfra 0 retlw b’00000110’ ;cyfra 1 retlw b’01011011’ ;cyfra 2 retlw b’01001111’ ;cyfra 3 retlw b’01100110’ ;cyfra 4 retlw b’00000110’ ;cyfra 5 retlw b’01111101’ ;cyfra 6 retlw b’00000111’ ;cyfra 7 ... ... retlw b’01111001’ ;cyfra E retlw b’01110001’ ;cyfra F next

PIC - Base Line - przykłady programowania 38/39 2. Dodawanie liczb 2-bajtowych ;zal: argumenty w SRAM: arg1l, arg1h, arg2l, arg2h ; wynik: arg1:=arg1+arg2 add2B movf arg2l,w ;arg2l->W addwf arg1l,f ;arg1l:=arg1l+W movf arg2h,w ;arg2h->W btfsc status,c ;czy bylo przeniesienie incfsz arg2h,w ;uwzglednienie przeniesienia addwf arg1h,f ;arg2h:=arg2h+W retlw 0

PIC - Base Line - przykłady programowania 39/39 3. Mnożenie liczb 1-bajtowych ;zal: argumenty w SRAM: arg1l, arg2l ; wynik: arg1h|arg1l:=arg1*arg2 mul1B clrf arg1h ;zerowanie st.bajtu iloczynu movlw 8 ;wartosc licznika petli movwf cnt ;zainicjowanie licznika petli movwf arg1l,w ;arg1l->W loop: rrf arg2l,f ;obrot w prawo arg2 btfsc status,c ;czy dodawac? addwf arg1h,f ;dodanie arg1 rrf arg1h rrf arg1l decfsz cnt,f ;czy koniec petli goto loop ;skok jesli nie retlw 0