1 / 75

PIC16F877 „snadno a rychle“

MicroChip. PIC16F877 „snadno a rychle“. Výchozím místem pro opakování je blokové schéma. L. Š. PC. I/O Ports. Address Bus. Program Memory. RWM. SFR. Stack. Timers. WDT. IndirectAddress. Address Bus. Program Bus. MUX. Data Bus. Instruction Register. FSR. A/D Convert.

daryl
Download Presentation

PIC16F877 „snadno a rychle“

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. PC I/O Ports Address Bus Program Memory RWM SFR Stack Timers WDT IndirectAddress Address Bus Program Bus MUX Data Bus Instruction Register FSR A/D Convert Direct Address Constant Status Data EEPROM Instruction Decode MUX Master Control CCP PWM Timing Generator ALU Interrupt System Seriál Ports W register

  3. MicroChip Čí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. L. Š. Zpět

  4. MicroChip 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). L. Š. Zpět

  5. MicroChip 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 ). L. Š.

  6. MicroChip … 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) L. Š. Zpět

  7. MicroChip 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 213=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.) L. Š.

  8. MicroChip … 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 211=2048 (2k slova). Při zápisu do dolní části čítače instrukcí je velikost stránek 28=256 slov. L. Š. Zpět

  9. MicroChip 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. L. Š. Zpět

  10. MicroChip 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. L. Š. Zpět

  11. MicroChip 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. L. Š. Zpět

  12. MicroChip 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. L. Š. Zpět

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

  14. MicroChip 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. L. Š. Zpět

  15. MicroChip 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~27=128, počet stránek určených RP1 a RP0~22=4, celkový adresovatelný prostor~128*4=29=512. L. Š.

  16. MicroChip … adresování paměti dat Přímá adresa 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. L. Š. Zpět

  17. MicroChip 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~28=256, počet dvojstránek určených IRP~21=2, celkový adresovatelný prostor~256*2=29=512. L. Š.

  18. MicroChip … adresování paměti dat Nepřímá adresa 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. L. Š. Zpět

  19. MicroChip 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). L. Š. Zpět

  20. MicroChip 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). Čá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. L. Š.

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

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

  23. MicroChip Energeticky nezávislá paměť pro data 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. L. Š. Zpět

  24. MicroChip 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. L. Š. Zpět

  25. MicroChip 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. L. Š. Zpět

  26. MicroChip 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í. L. Š. Zpět

  27. MicroChip 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. L. Š. Zpět

  28. MicroChip 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. L. Š. Zpět

  29. MicroChip 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. L. Š.

  30. MicroChip … vybrané systémové registry … 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 L. Š.

  31. MicroChip … vybrané systémové registry … 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 L. Š.

  32. MicroChip … vybrané systémové registry 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á. 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. L. Š.

  33. MicroChip 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 L. Š.

  34. MicroChip … 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 L. Š.

  35. MicroChip … registry přerušovacího systému … 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, I2C, 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 L. Š.

  36. MicroChip … registry přerušovacího systému … 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 L. Š.

  37. MicroChip … 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 I2C máster mód) CCP2IF~ příznak aktivace záchytného systému nebo komparačního registru L. Š.

  38. MicroChip 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. L. Š. Zpět

  39. MicroChip 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. L. Š.

  40. MicroChip 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. IOR AND L. Š.

  41. MicroChip 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 L. Š.

  42. MicroChip Port RA,4 Otevřený kolektor • 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“. L. Š.

  43. MicroChip Dolní tetráda portu B impl • 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). L. Š.

  44. MicroChip 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 L. Š. Zpět

  45. MicroChip Čí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). L. Š.

  46. Blokové schéma TMR0 . . . MicroChip • 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. L. Š.

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

  48. . . . blokové schéma TMR0 MicroChip • Bitem PSA lze TMR0 přiřadit předdělič. • Bity PS2, PS1 a PS0 lze nastavit jeho dělící poměr: L. Š. Zpět

  49. MicroChip 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. L. Š.

  50. Blokové schéma WDT MicroChip • 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). L. Š. Zpět

More Related