JESCAB 
Produkter Tjänster Info Leveransvillkor Kontakt
 Snabb länkar:


Kapitel 2

 

Nu börjar vi gå lite mer på djupet i processorn. I detta kapitel beskrivs närmare hur minnet (flash och RAM) är organiserat och vi tittat även på några SFR ("Special Funktion Registers") som är centrala för processorn (d.v.s inte direkt knutna till någon speciell enhet som ADC o.s.v). Vi tittar även på hur RAM är uppdelat i just SFR och GPR ("General Purpose Registers").


Sidan 21, Programminne (Flash)

För den processor som är vald så är det alltså Figure 2-3 som gäller. Det viktiga att notera är att vi har 4 sidor ("pages") med flash-minne, page 0 till page 3. Vi ser också att reset-vektorn (där processorn hamnar då vi slår på strömmen eller gör en reset) ligger på adress h'0000' samt att avbrottsvektorn ("interrupt vector") ligger på h'0004'. Vi återkommer till avbrott senare...

p021_s

Stor bild

Sidorna 22-25, Dataminne (RAM).

Sidorna beskriver hur RAM är uppdelat dels på 4 olika "banker", dels i SFR ("Special Funktion Registers") och ("General Purpose Registers"). SFR är de register som "styr" processorn och alla de olika enheterna som USART, ADC, timers o.s.v. GPR är minne som man själv använder för variabler m.m i sitt program.

 

Sidan 25 visar hur RAM är uppdelat i just PIC16F886. Värt att notera är bl.a :

  • Att SFR och GPR delar samma adressareor.
  • Hur RAM är uppdelat i 4 banker.
  • Att de 16 sista adresserna i varjr bank är gemensam (brukar kallas "shared" eller "unbanked" RAM).

p025_s

Stor bild

Sidorna 26-28, Summering av SFR.

På sidorna 26-28 följer sedan lite mer info om varje SFR, dock inte lika detaljrikt som senare i databladet. En kolumn som kan vara intressant här är "Value on POR, BOR", d.v.s vilka värden de olika SFR regoistren innehåller efter en reset av processorn. Detta beskrivs dock mer i detalj i en annan tabell (på sidan 213) i databladet.

p026_s

Stor bild

Sidan 29, STATUS registret.

STATUS är ett av de viktigaste registren i en PIC processor. Eftersom beskrivningen av alla register följer samma format, så tar vi lite extra tid till att studera STATUS. Normalt har man tre delar, överst en del som i text beskriver vad registret har för funktioner, sedan en bild som visar hur de olika biterna i registret är ordnade och sist en förteckning med beskrivning i detalj vad de olika bitarna i resgistret har för funktion.

 

I bilden i mitten över registret är det bl.a instressant att se vilka bitar som man både kan läsa och skriva ("R/W-") eller bara läsa "R-". Man ser även vad varje bit har för värde, "1" eller "0", vid spänningstillslag ("power on") av processorn.

 

I listan som följer beskrivs sedan varje bit. Där ser man t.ex av biten "Z" är lika med "1" om föregående operation resulterade i att någonting blev "noll", i annat fall är "Z" biten "0".

O.s.v

 

"C" biten används ofta vid "Rotate" instruktioner när man vill testa varje bit i en variabel bit-för-bit. Alla 8 bitar roteras genom Carry-biten och den testas sedan.

 

Notera också att "C-flaggan" är ett vanligt namn på C-biten i STATUS.

p029_s

Stor bild

Sidan 30, OPTION registret.

OPTION är ett annat viktigt register som ofta används. Där finns bl.a inställningarna för Timer0, vilket kan verka lite konstigt. Timer1 och Timer2 har ju egna speciella register. Men detta är ett arv från de tidiga PIC processorerna där man enbart hade en Timer, och som dessutom var så enkel så det var inte många inställningar. Därför hamnade inställningarna för Timer0 i just OPTION.

 

Vi fördjupar oss inte mer i OPTION just här, vi återkommer senare till de olika bitarna i samband med respektive kapitel

p030_s

Stor bild

Sidan 30-36.

Dessa sidor innehåller register för inställningar av avbrottshantering ("interrupt") samt de speciella funktionerna för övervakning av matningsspänningen. Dessa funktioner ligger utanför ramarna för denna övergripande genomgång av ett datablads upplägg, och gås inte igenom här.

 

Denna sida senast uppdaterad 26-Jan-2013