Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

PIC16F877 „snadno a rychle“ Výchozím místem pro opakování je blokové schéma...

Podobné prezentace


Prezentace na téma: "PIC16F877 „snadno a rychle“ Výchozím místem pro opakování je blokové schéma..."— Transkript prezentace:

1 PIC16F877 „snadno a rychle“ Výchozím místem pro opakování je blokové schéma...

2 Program Memory PC Stack RWM MUX FSR Instruction Register Status MUX ALU Instruction Decode Timing Generator Interrupt System Master Control W register Seriál Ports CCP PWM Data EEPROM A/D Convert Data Bus Addres s Bus Addres s Bus Progra m Bus Direct Addres s Indirect Addres s Timers I/O Ports Consta nt SFR WDT

3 Čítač instrukcí V průběhu činnosti monolitického mikropočítače generuje adresu zpracovávané instrukce. Jsou-li instrukce realizovány sekvenčně je obsah čítače instrukcí po každé provedené instrukci inkrementován. Při skocích a volání podprogramů se jeho obsah mění skokově viz. Adresová sběrnice paměti programu. Zpět

4 Zásobník Zásobník slouží k odkládání návratových adres (jsou to 13b slova) pro návrat z podprogramů a obsluhy přerušení. Zásobník je 8-mi úrovňový a adresy v něm uložené nelze přepisovat. Při snaze o deváté vnořené volání však dojde k přepsání první návratové adresy a program takzvaně zbloudí (tato „chyba“ není ošetřena). vnořeníadresa Zpět

5 Adresování paměti programu … Čítač programu je 13-ti bitový. Jeho dolních 8 bitů je přístupno prostřednictvím registru PCL. Horní bity „PCH“ nejsou přístupny přímo, ale pouze zprostředkovaně využitím registru PCLATH. Registr PCLATH je 5-ti bitový … ( PCLATH = PCH = PC – PCL = 13 – 8 = 5 ).

6 … adresování paměti programu 1) Při skoku vyvolaném zápisem do PCL je využíváno všech 5 bitů PCLATH. 2) Při volání „call“ a skocích „goto“ se z PCLATH využívají pouze dva bity. Celá návratová adresa (13 bitů) je uložena v zásobníku (STACK) => při návratu není potřeba manipulovat s obsahem PCLATH. 1) 2) Zpět

7 Paměť programu … V paměti programu jsou uloženy instrukce, které budou postupně vykonávány. (Druh a pořadí instrukcí stanovil programátor při tvorbě programu.) Adresová sběrnice paměti programu je 13b široká. Umožňuje adresovat prostor o velikosti 2 13 =8192 slov. (Do paměti lze zde uložit až 8192 instrukcí.) Paměť programu o velikosti (2000) H ~ (8192) D je rozdělena do čtyř stránek o velikosti (800) H ~ (2048) D slov o velikosti 14 bitů. Resetovací vektor je nastaven na adresu 0. (To znamená, že po inicializaci je program vykonáván počínaje instrukcí umístěnou na adrese 0.)

8 … paměť programu Při volání podprogramu „call“ (i přerušení) a skocích v programu „goto“ je použito pouze dolních 11 bitů adresy => je tady umožněn přesun pouze v rámci jedné stránky paměti o velikosti 2 11 =2048 (2k slova). Při zápisu do dolní části čítače instrukcí je velikost stránek 2 8 =256 slov. Zpět

9 Programová sběrnice Programová sběrnice má šířku 14b, umožňuje tedy přenášet instrukce z paměti programu do registru instrukcí. Další podrobnosti viz. Adresování paměti programu. Zpět

10 Registr instrukcí V průběhu zpracovávání programu obsahuje registr instrukcí právě zpracovávanou instrukci. Instrukce jsou do registru instrukcí postupně načítány z paměti programu. Pořadí načítání instrukcí je závislé na pořadí instrukcí v paměti programu a je ovlivňováno skokovými instrukcemi, voláním podprogramů a funkcí přerušovacího systému. Zpět

11 Dekodér instrukcí Dekodér instrukcí pracuje s kódem instrukce, který je uložen v registru instrukcí. Kód instrukce je dekodérem dešifrován. Dekodér instrukcí je hlavní řídící prvek v monolitickém mikropočítači počítači. Dekodér instrukcí ovládá činnost dalších prvků v monolitickém mikropočítači. Zpět

12 Konstanta Konstanta je 8b hodnota obsažena v instrukci. Konstanta je prostřednictvím datového multiplexeru přesunuta do ALU, případně do W registru. Konstanty bývají využívány k nastavování výchozích hodnot pro činnost různých prvků monolitického mikropočítače, nebo k selektivnímu výběru bitů v bajtech. Zpět

13 Adresová sběrnice paměti dat Adresová sběrnice paměti programu má šířku 9b, umožňuje tedy adresovat paměťový prostor 2 9 =512 bajtů v prostoru RWM a SFR. Další podrobnosti viz. Adresování paměti dat. Zpět

14 Adresový multiplexer Multiplexer je elektronický obvod plnící funkci přepínače s několika vstupy a jediným výstupem. Multiplexer v závislosti na řídícím signálu propouští na svůj výstup jeden ze signálů. V určitém časovém okamžiku může být na výstupu multiplexeru pouze jediný ze signálů. Vstupním „signálem“ je v tomto případě přímá 7b adresa (součást instrukce), nebo 8b nepřímá adresa z FSR. Podrobnosti viz. Adresování paměti dat. Zpět

15 Adresování paměti dat (přímá adresa)... Použijeme-li k adresování paměti RWM nebo SFR přímou adresu, je dolních 7b této adresy obsaženo v instrukci. Celková adresa v prostoru RWM a SFR je 9b. K doplnění adresy na požadovaných 9b jsou použity bity RP1 a RP0 z registru STATUS. Prostřednictvím RP1 a RP0 se volí požadovaná stránka paměti. Stránka musí být zvolena před zahájením komunikace (zápis, čtení). Rekapitulace: stránka má velikost~2 7 =128, počet stránek určených RP1 a RP0~2 2 =4, celkový adresovatelný prostor~128*4=2 9 =512.

16 … adresování paměti dat Celková 9-ti bitová adresa vznikne doplněním bitů RP1 a RP0. Kombinace RP1 a RP0 určují banku se kterou se bude komunikovat. Přímá adresa Zpět

17 Adresování paměti dat (nepřímá adresa)... Použijeme-li k adresování paměti RWM nebo SFR nepřímou adresu, je dolních 8b této adresy obsaženo v registru FSR. Celková adresa v prostoru RWM a SFR je 9b. K doplnění adresy na požadovaných 9b je použit bit IRP z registru STATUS. Vlastní komunikace probíhá tak, že prostřednictvím IRP a FSR nastavíme adresu a zápisem do (čtením z) INDF uskutečníme přenos dat. Rekapitulace: dvojstránka má velikost~2 8 =256, počet dvojstránek určených IRP~2 1 =2, celkový adresovatelný prostor~256*2=2 9 =512.

18 … adresování paměti dat Celková 9-ti bitová adresa vznikne: doplněním bitu IRP. Kombinace bitů IRP a b7 určují banku se kterou se bude komunikovat. Bitem IRP lze volit dolní nebo horní dvojici bank. Nepřímá adresa Zpět

19 Adresový registr pro nepřímé adresování FSR slouží k nepřímému adresování prostoru RWM a SFR. Komunikace s RWM a SFR se realizuje prostřednictvím registru INDF. INDF je fiktivní registr (jakési „okno“ jehož pozice v prostoru RWM a SFR se mění v závislosti na adrese uložené v FSR). Zpět

20 Část prostoru je však vyhrazena pro speciální funkční registry a část slouží k „zrcadlení“ (buňky paměti a SFR jsou přístupné i z jiných stránek) => uživatelská MEM má tedy velikost 368B. Energeticky závislá paměť pro data... Slouží k uložení dat, která µ-počítač zpracovává. Prostor RWM a SFR je rozdělen do čtyř stránek o velikosti 128B (celkový adresovatelný prostor má tedy velikost 4x128=512B).

21 Souhrnné informace o SFR, které jsou k dispozici se nachází v DS30292A.pdf na straně speciální funkční registry … Zrcadlen í SFR Zrcadlen í SFR

22 … speciální funkční registry Z nákresu je zřejmé, že SFR a RWM tvoří jeden celek. Zpět Zrcadlen í RWM Zrcadlen í RWM

23 Do EEPROM pro data jsou vkládány důležité informace, které nesmí být ztraceny ani při přerušení napájení. EEPROM má velikost 256B. Algoritmy zápisu do EEPROM stanovené výrobcem znemožňují náhodné přepsání obsahu. Energeticky nezávislá paměť pro data Zpět

24 Datová sběrnice Datová sběrnice má šířku 8b (šířka datová sběrnice určuje třídu počítače). Datová sběrnice umožňuje přenos dat v rámci prostoru RWM, SFR, ALU, W reg a interními hardware-ovými moduly monolitického mikropočítače. Další podrobnosti viz. Adresování paměti dat. Zpět

25 Datový multiplexer Multiplexer je elektronický obvod plnící funkci přepínače s několika vstupy a jediným výstupem. Multiplexer v závislosti na řídícím signálu propouští na svůj výstup jeden ze signálů. V určitém časovém okamžiku může být na výstupu multiplexeru pouze jediný ze signálů. Vstupním „signálem“ je v tomto případě 8b konstanta (součást instrukce), nebo 8b hodnota z datové sběrnice. Podrobnosti viz. Bajtově orientované instrukce a instrukce pro práci s konstantami. Zpět

26 Aritmeticko logická jednotka ALU vykonává v závislosti na zpracovávané instrukci aritmetické a logické operace s daty v RWM, SFR a Work registru. Výsledek operace je uložen ve Work registru, nebo v paměťové buňce se kterou se pracuje. Vlivem činnosti ALU mohou být modifikovány bity „Z“, „DC“ a „C“ v registru Status. Činnost ALU je řízena dekodérem instrukcí. Zpět

27 Status registr Status je hlavním registrem monolitického mikropočítače. Obsahuje různé příznaky, které souvisí s funkcí ALU a dalšími prvky monolitického mikropočítače. Další informace viz. SFR. Zpět

28 Work registr Jedná se o hlavní registr monolitického mikropočítače. Ke své činnosti jej využívá aritmeticko logická jednotka. Prostřednictvím Work registru se realizují matematické operace a přesuny dat v prostoru RWM a SFR. Zpět

29 Speciální funkční registry... Systémové registry jsou používány pro nastavení konfigurace činnosti monolitického µ-počítače. Registry jsou umístěny v RAM a část z nich se vztahuje k základním funkcím procesorového jádra, ostatní souvisí s funkcí dalších HW modulů. V popisu registrů se mohou vyskytovat následující doplňkové údaje: R ~ určeno ke čtení W ~ určeno k zápisu 0, 1 ~ výchozí hodnota X ~ neznámá hodnota Je-li bit v registru označen negací, je funkce aktivní při úrovni L.

30 STATUS registr: IRP ~ volba dvojstránky pro nepřímé adresování RP0 a 1 ~ volba stránky pro přímé adresování TO ~ příznak přeplnění WDT PD ~ příznak napájení (instrukce „sleep“) Z ~ příznak nulového výsledku operace DC ~ příznak přenosu do horní tetrády C ~ příznak přenosu z bajtu … vybrané systémové registry …

31 OPTION_REG registr: RBPU ~ přiřazení interních „pull up“ rezistorů k RB INTEDG ~ výběr hrany pro vnější přerušení (od RB0) 0≈sestupná hrana, 1≈vzestupná hrana T0CS ~ nastavení TMR0 do režimů: 0≈časovač, 1≈čítač se vstupem RA4 T0SE ~ výběr hrany pro inkrementaci TMR0: 0≈vzestupná, 1≈sestupná PSA ~ přiřazení předděliče: 0≈TMR0, 1≈WDT PS2÷0 ~ nastavení dělícího poměru předděliče

32 Z tabulky vyplývá, že dělící poměr předděliče je závislý i na tom, které zařízení jeho služeb využívá. … vybrané systémové registry Vznikne-li potřeba předdělič zcela vyřadit, přiřadíme předdělič WDT a nastavíme dělící poměr 1:1.

33 Registry přerušovacího systému … INTCON registr: GIE ~ globální povolení přerušení PEIE ~ povolení přerušení od interních periferních obvodů T0IE ~ povolení přerušení od TMR0 INTE ~ povolení přerušení od vnějšího zdroje (RB0) RBIE ~ povolení přerušení při změně v horní tetrádě RB T0IF ~ příznak přerušení od TMR0 INTF ~ příznak přerušení od vnějšího zdroje (RB0) RBIF ~ příznak přerušení při změně na RB7÷4

34 … registry přerušovacího systému … PIE1 registr: PSPIE ~ povolení přerušení od podřízeného par-ho portu ADIE ~ povolení přerušení od A/D převodníku RCIE ~ povolení přerušení při příjmu sériovým kanálem TXIE ~ povolení přerušení při vysílání sériovým kanálem SSPIE ~ povolení přerušení od sériového syn-ho portu CCP1IE ~ povolení přerušení od záchytného systému TMR2IE ~ povolení přerušení od TMR2 TMR1IE ~ povolení přerušení od TMR1

35 PIR1 registr: PSPIF ~ příznak přerušení čtení nebo zápisu ADIF ~ příznak přerušení při ukončení převodu RCIF ~ příznak přerušení při naplnění buffer-u TXIF ~ příznak přerušení při vyprázdnění buffer-u SSPIF ~ příznak přerušení při komunikaci SPI, I 2 C, SSP CCP1IF ~ příznak přerušení aktivaci zách., komp. registru TMR2IF ~ příznak přerušení při přeplnění TMR2 TMR1IF ~ příznak přerušení při přeplnění TMR1

36 PIE2 registr: - ~ nevyužitý bit (1) ~ rezervovaný bit EEIE ~ povolení zápisu do EEPROM BCLIE ~ povolení přerušení při kolizi na sér-ém kanálu CCP2IE ~ povolení přerušení od záchytného systému

37 … registry přerušovacího systému PIR2 registr: - ~ nevyužitý bit (1) ~ rezervovaný bit EEIF ~ zápis do EEPROM ukončen BCLIF ~ kolize na SSP (režim I 2 C máster mód) CCP2IF ~ příznak aktivace záchytného systému nebo komparačního registru

38 Poznámka k registrům přerušovacího systému Přerušovací systém disponuje pouze jediným vektorem přerušení. Příznakové bity přerušení musí být mazány software-ově až po zjištění původce přerušení. Ostatní registry, které souvisí s funkcí dalších HW modulů v µ-počítači jsou uvedeny v souvislosti s těmito moduly. Zpět

39 Vstupně výstupní porty (základní vlastnosti) Funkce jednotlivých portů mohou být měněny podle požadavků programátora. Řada portů má různé alternativní funkce. Některé porty jsou řešeny formou TTL, jiné jako Schmitt-ův klopný obvod.

40 Schéma zapojení portu RA (vyjma RA,4) •Zápisem do registru TRIS lze určit I/O režim portu... •Funkce: –Je-li „D“ TRIS latch=„1“ => na vstupu IOR „1“ (na výstupu nikdy „0“) a na vstupu AND „0“ (na výstupu nikdy „1“). –Oba tranzistory uzavřeny. –Je-li „D“ TRIS latch=„0“=> výstup IOR i AND je závislý na „D“ DATA latch. •TRIS: 1-vstupní, 0-výstupní. •Každý vývod může být nastaven samostatně. •Nastavení „input“ je nutné i v analogovém režimu. AND IOR

41 Schéma zapojení portu RA (vyjma RA,4) •Je-li aktivní analogový vstup => digitální data na vnitřní sběrnici nepostupují… •Není-li aktivní signál čtení z portu, informace z vnější sběrnice postupují přes obvod „D“ až k ventilu. •V okamžiku aktivace RD PORT se uzavře obvod „D“ a otevře ventil, vnější informace postoupí na interní sběrnici. •Signál RD TRIS umožní čtení informace o režimu portu. •Porty jsou vybaveny ochrannými diodami. inhib ventil Obvod D AnIinpinhib

42 Port RA,4 •Port RA,4 je řešen formou „otevřený kolektor“, úroveň „1“ je prezentována jako stav vysoké impedance. •Schmitt-ův KO vytváří hysterezi pro vstupní signály. •Při pomalých změnách signálu nedochází k detekci většího počtu pulsů. •Poznámka: –Tranzistor „P“ je otevírán úrovní „0“. –Tranzistor „N“ je otevírán úrovní „1“. Otevřený kolektor

43 Dolní tetráda portu B •Schéma zapojení je obdobné jako u portu A. •Signál RBPU připojí „pull-up“ rezistor RBPU=„0“ a je zvolen vstupní režim… •Schmitt-ův KO je využíván pouze pro signál přerušení (RB,0). impl RBPUTRISimpl

44 Horní tetráda portu B •Vyhodnocení změny na portu pro generování požadavku přerušení. •Vzorkování vstupního signálu probíhá ve fázích Q1 a Q3. •RBIF může být nastaven, je-li port ve vstupním režimu. •Obvod XOR generuje úroveň „1“ v případě rozdílných vzorků… XOR „Q1“„Q3“xor Zpět

45 Čítač / časovač 0 TMR0 lze charakterizovat následujícími vlastnostmi: 8-mi bitový čítač časovač, do čítacího registru lze zapisovat a lze z něj i číst. Obsah čítacího registru může být inkrementován vnitřním hodinovým signálem, nebo vnějším signálem. Lze volit reakci systému (na vzestupnou nebo sestupnou hranu vstupního signálu). Čítač může využívat 8-mi bitový předdělič (modul předděliče lze volit). Příznak přerušení je nastaven při přeplnění obsahu čítacího registru (FF  00).

46 Blokové schéma TMR0... •Nastavení funkce systému lze provést prostřednictvím registru OPTION. •Obsah předděliče není přístupný. •Při zápisu do TMR0 je obsah předděliče nulován (je-li předdělič čítačem / časovačem využíván). •Signál vstupující do čítacího registru je synchronizován s hodinovým signálem procesorového jádra.

47 ... blokové schéma TMR0... •Bitem T0CS lze volit režimy činnosti (čítač / časovač). •Bitem T0SE lze nastavit citlivost na vzestupnou / sestupnou hranu vstupního signálu: xor T0SERA4xor

48 ... blokové schéma TMR0 •Bitem PSA lze TMR0 přiřadit předdělič. •Bity PS2, PS1 a PS0 lze nastavit jeho dělící poměr: PS2PS1PS0poměr 0001:2 0011:4 0101:8 0111:16 :::: 1111:256 Zpět

49 Watch Dog Timer Watch Dog Timer je inkrementován ze samostatného RC oscilátoru. Činnost WDT lze povolit nastavením bitu WDTE, který je součástí „konfiguračního slova“ (nastavuje se při zápisu programu do mikropočítače). WDT může zajistit reset systému došlo-li k přeplnění čítacího registru v pracovním režimu mikropočítače. V režimu SLEEP může WDT monolitický mikropočítač z úsporného režimu převést do režimu pracovního.

50 Blokové schéma WDT •Bitem PSA lze přiřadit předdělič WDT. •Dělící poměr předděliče je však jiný ! ! ! •Instrukce CLRWDT a SLEEP vynuluje čítací registr WDT i předdělič (je-li WDT tento předdělič využíván). Zpět

51 Analogově Digitální převodník (charakteristika) PIC16F877 je vybaven A/D převodníkem s postupnou aproximací. Měřené napětí je zavedeno do samplovacího kondenzátoru (převod může být zahájen až po ustálení). Analogový vstup je multiplexován => (až 8 analogových veličin). Výstup z A/D převodníku je 10-ti bitový a je uložen v registrech ADRESH a ADRESL. Při vyšších nárocích na přesnost lze jádro systému uvést do režimu SLEEP. A/D převodník využívá v tomto režimu synchronizační signál odvozený z interního RC oscilátoru.

52 Ovládání A/D převodníku … ADCON0 ~ nastavení funkce a ovládání: •A•ADCS1(0) ~ volba hodinového signálu k převodu ( viz. DS30292A strana 121 ) •C•CHS2(1, 0) ~ výběr analogového kanálu (ze zvolených kanálů, viz. ADCON1) •G•GO/DONE ~ příznak provádění převodu (nuluje se samočinně) •A•ADON ~ zahájení převodu

53 ADCON1 ~ nastavení funkce a ovládání: •A•ADFM ~ zobrazení výsledku v registrech ADRESH a ADRESL •1•1  XX XXXXXXXX •0•0  XXXXXXXX XX •P•PCFG3(2, 1, 0) ~ volba režimu portu RA a RE (analogový nebo digitální, viz. tabulka) … ovládání A/D převodníku

54 Tabulka k nastavení A-D režimu

55 Výběr a přepínání kanálů V případě použití externího referenčního napětí lze aktivně využít pouze 6 kanálů. Nastavení v registru ADCON0

56 Nastavení k provedení převodu K provedení A/D převodu je potřeba provést následující úkony: Konfigurace A/D modulu (konfigurace pinů, výběr vstupního kanálu volba pracovního kmitočtu). Nastavení přerušovacího systému (ADIF=0, ADIE=1, PEIE=1, GIE=1), je-li přerušení použito. Čekání na ustálení napětí na vzorkovacím kondenzátoru. Spuštění převodu (GO/DONE=1). Čekání na dokončení převodu (… GO/DONE=0, nebo … ADIF=1). Čtení digitalizované hodnoty z ADRESH a ADRESL.

57 Náhradní schéma analogového vstupu … •P•Po zvolení analogového kanálu (k převodu napětí) je nutno vyčkat, než se převáděné napětí ustálí na vzorkovacím kondenzátoru. •T•Teprve pak může být spuštěn vlastní převod. •P•Při nedodržení této podmínky bude výsledek převodu nepřesný. •P•Provedeme-li čtení digitalizované hodnoty před ukončením převodu, bude výsledek chybný.

58 … náhradní schéma analogového vstupu •R•R S ~ vnitřní odpor zdroje měřeného napětí •C•C PIN ~ parazitní kapacita pinu (asi 5pF) •R•R LC ~ svodový odpor (protéká jim typický proud asi 0,5µA) •R•R IC ~ odpor vnitřní propojovací analogové trasy •R•R SS ~ odpor vzorkovacího spínače v sepnutém stavu •C•C HOLD ~ vzorkovací kondenzátor (asi 120pF)

59 Časové kalkulace … •Požadujeme-li, aby chyba nebyla větší než ½ LSb, pak čas potřebný k vzorkování získáme z následujícího vztahu:

60 … časové kalkulace … •… převodník je desetibitový => 2 10 =1024 hodnot, které mohou být zobrazeny. •Je-li požadavek na chybu ½ LSb, pak tento požadavek vyčíslíme: •U REF ~ maximální hodnota •1024 ~ jeden krok, 2048 ~ ½ kroku •Tak, že … •Kde: ad 1) ~ napětí k převodu ad 2) ~ doplněk ke skutečné hodnotě ad 3) ~ referenční napětí •(U HOLD =U REF chyba=0)

61 … časové kalkulace •Úprava vztahu: •Odsud výsledný vztah: •K výpočtu doby: Zpět

62 Časování CPU … V každém taktu systém vykonává dvě operace současně: 1~provádí dříve načtenou instrukci 2~čte další instrukci Jedná se o dvoustupňovou pipeline. 2 1

63 …časování CPU Každý takt trvá 4 periody CLK označené Q1÷Q4. (u „8051“ – 12 period) => při shodném f CLK proběhne u PIC 3x více taktů. S ohledem na způsob realizace instrukcí se jedná o výrazný nárůst výpočetního výkonu. CLK Zpět

64 Přerušovací systém (charakteristika – ovládání) Přerušovací systém zpracovává přerušení ze 14-ti zdrojů. K činnosti přerušovacího systému jsou využívány registry: INTCON, PIE1, PIE2, PIR1, PIR2 Přerušovací systém využívá společný přerušovací vektor (adr=04). Původce požadavku přerušení musí být proto určen software-ově. Příznakové bity žádostí o přerušení musí být rovněž nulovány software-ově při obsluze přerušení. Příznakové bity jsou nastavovány i v případě, že je příslušné přerušení zakázáno (toto lze využít).

65 Zdroje přerušení – příznakové bity Základní: •T•T0IF ~ přeplnění TMR0 •I•INTF ~ externí požadavek na bráně RB,0 •R•RBIF ~ změna stavu v horní tetrádě portu B Rozšířené: •P•PSPIF ~ zápis nebo čtení (podřízený paralelní port) •A•ADIF ~ dokončení A/D převodu •R•RCIF ~ příjem informace kanálem USART •T•TXIF ~ vyslání informace - - | | - - •S•SSPIF ~ synchronní sériový port (SPI, I 2 C) •C•CCP1IF ~ záchytný systém, digitální komparátor •T•TMR2IF ~ požadavek od TMR2 •T•TMR1IF ~ požadavek od TMR1 •E•EEIF ~ zápis do EEPROM •B•BCLIF ~ kolize na synchronním sériovém portu •C•CCP2IF ~ záchytný systém, digitální komparátor

66 Schéma k objasnění funkce přerušovacího systému Povolení přerušení od interních periferií Probuzení z režimu „sleep “ Globální povolení přerušení

67 Popis funkce přerušovacího systému Přerušovací logiku tvoří vzájemně propojení hradla AND a IOR. V levé části schématu je 11 hradel AND (každé z nich umožní lokální povolení požadavku od interního periferního obvodu). Bitem PEIE lze povolit zpracování přerušení od interních periferních obvodů. Obvody AND ve střední části schématu umožní obsluhu základních požadavků přerušení. Bitem GIE lze povolit zpracování přerušení. Je zřejmé, že k probuzení z režimu SLEEP dojde i v případě, že globální zákaz je aktivní (postačující je lokální povolení přerušení). Návrat z obslužného podprogramu přerušení je realizován instrukcí RETFIE. Zpět

68 Power-up timer ≈ interně generuje CLK po dobu 72 ms (náběh napájecího napětí). Start-up timer ≈ pracuje po dobu nestability oscilátoru CLK (1024 period). Power-on reset ≈ generuje reset při náběhu napájecího napětí. WDT ≈ realizuje reset, nebo probuzení jádra (z režimu „sleep“). Brown-out reset ≈ reset při poklesu napájecího napětí (3,8÷4,2V). In-Ciruit Debugger ≈ ladění programu využitím software MPLAB. Low-Voltage Programming ≈ programování přímo v aplikaci. Funkce Master Control

69 Pojem reset u PIC16F877 souvisí s řadou situací, ve kterých může být tento proces proveden: 1)Reset při přivedení napájecího napětí 2)Reset vnějším signálem při normální činnosti 3)Reset vnějším signálem v režimu SLEEP 4)Reset provedený WDT při normální činnosti 5)Reset provedený WDT v režimu SLEEP 6)Reset při poklesu napájecího napěti Reset PIC16F877

70 Obvod RC zajistí potřebnou dobu trvání HW resetu. Hodnota R < 40 kΩ (doporučeno výrobcem). Hodnota C je stanovena ze vztahu: (podle požadované doby trvání resetu). Dioda D slouží k urychlení vybití kondenzátoru (pří odpojení napájecího napětí). Rezistor R1 chrání vstup MCLR (hodnota doporučená výrobcem 0,1 ÷ 1 kΩ). Vnější obvod k provedení resetu

71 Blokové schéma k popisu funkce resetu

72 Interní obvody zajistí provedení resetu na základě činnosti interního RC oscilátoru a generátoru CLK. (1)Signál RC oscilátoru je čítán 10-ti bitovým čítačem (2 10 =1024 period). (2) Činnost obvodu lze povolit příznakem „Enable PWRT“ (… je součástí konfiguračního slova). (3) Po té lze čekat na přeplnění dalšího 10-ti bitového čítače, který čítá pulsy generátoru CLK. (4) Činnost obvodu lze povolit příznakem „Enable OST“ (… je součástí konfiguračního slova). (5) Reset systému při poklesu napájecího napětí lze rovněž povolit prostřednictvím konfiguračního slova (bit BODEN). (6) Reset systému vyvolaný WDT. (7) Obvod k realizaci resetu iniciovaného externím obvodem. Interní obvody k provedení resetu

73 Ve všech případech je resetem nulován PC. Výjimku tvoří pouze probuzení WDT a přerušení v režimu SLEEP, kdy dochází k inkrementaci PC. Reset - shrnutí Zpět

74 Sériová rozhraní Jedná se o hardware-ové moduly, které umožňují monolitickému mikropočítači komunikovat s externími periferními obvody. PIC16F877 je vybaven třemi nejčastěji používanými sériovými kanály: •U•USART ( Universal Synchronous Asynchronous Receiver Transmiter) •I•I 2 C ( Inter Integrated Circuit) •S•SPI ( Serial Peripheral Interface) Zpět

75 CCP a PWM Jedná se o hardware-ové moduly Zpět


Stáhnout ppt "PIC16F877 „snadno a rychle“ Výchozím místem pro opakování je blokové schéma..."

Podobné prezentace


Reklamy Google