Reset instellingen
Hoofdstuk 4 beschrijft de reset functies van de 18F25K20.
a) POR reset houdt in dat de chip gereset wordt tijdens het opstarten (poweron) (4.3).
b) en c) MCLR is een reset die plaatsvind als je de MCLR ingang (pin1) naar ground trekt (4.2).
d) Watchdog timer reset is een reset die plaatsvind als de watchdog timer een bepaalde tijd bereikt heeft (hoofdstuk 23.2)
e) Brown-out reset vind plaats wanneer de voedingsspanning beneden een bepaald niveau komt.(4.4)
f) RESET instruction komt uit het programma.
g) en h) Stack over en underflow resets
In het blok schema hiernaast, zijn behalve de hierboven genoemde zaken ook nog wat timers te vinden (OST en PWRT). Deze timers zorgen ervoor dat bij het opstarten de (kristal) oscillator de tijd krijgt te stabiliseren (hoofdstuk 4.5).
CONFIG_START
'oscillator instellingen
'FOSC = HS ;external oscillator
FOSC = INTIO67 ;Internal oscillator block, port function on RA6 and RA7
FCMEN = Off ;Fail-Safe Clock Monitor disabled
IESO = Off ;internal external switchover mode
PWRT = On ;power-up timer
'reset instellingen
MCLRE = ON ; MCLRE pin enabled
BOREN = On ;brown-out reset enabled
'BOREN = OFF ;Brown-out Reset disabled in hardware and software
'BOREN = NOSLP ;Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled)
'BOREN = SBORDIS ;Brown-out Reset enabled in hardware only (SBOREN is disabled)
'BORV = 30
BORV = 27 ;brown-out reset value (2,7V)
'BORV = 22
'BORV = 18
WDTEN = Off ;watchdog timer
WDTPS = 128 ;1:128 WDT prescalar
STVREN = On ;stack overflow reset
'overige instellingen
PBADEN = Off ;analog port B<4:0>
LVP = Off ;low voltage programming
XINST = Off ;Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
Debug = Off ;no debug
CCP2MX = PORTBE ;CCP2 input/output is multiplexed with RB3
CONFIG_END
Een aanzienlijk deel van de configuratie instellingen (fuses) hebben betrekking op het reset gebeuren.
Als eerste MCLRE. Deze setting bepaald of pin 1 (18F25K20) een reset functie of een poort functie (E3) heeft.
De tweede is BOREN. Hier wordt aangegeven of er een reset volgt op een voedingsspanning niveau beneden een bepaalde waarde (BORV). 4 opties zijn mogelijk, als eerste BOREN = ON ; brown-out reset bij start actief en kan (alleen in deze optie) d.m.v. het SBOREN bit (bit 6) van het RCON register in het programma uit en aan gezet worden. Volgende BOREN = OFF ; geen reset bij lage spanning . Als derde BOREN = NOSLP ; reset functie actief behalve in SLEEP mode. Als vierde BOREN = SBORDIS ; reset functie actief (ook in SLEEP mode).
De derde is BORV, hiermee wordt het spannings niveau waarop de reset plaatsvind ingesteld. Vier verschillende spanningen zijn mogelijk.
De vierde is WDTEN (Watchdog Timer), wanneer WDTEN = OFF dan is bij opstarten de timer uitgeschakeld maar kan in het programma met het SWDTEN bit (bit 0) van het WDTCON register aan en uit gezet worden. Bij WDTEN = ON is de timer altijd actief er reset de controller als de timer is uitgeteld.
De vijfde is WDTPS, deze bepaalt de delingsfactor van de clockfrequentie waarop de timer telt, de waardes die bij WDTPS ingevuld kunnen worden zijn 1,2,4,8,16…….,32768 (machten van 2) 1 geeft ongeveer 4 ms, 32768 geeft 2.18 minuut.
Als laatste STVREN, hier gaan we niet dieper op in en zetten we normaal gesproken op ON.
Hoofdstuk 4.6 behandelt welke invloed de verschillende soorten reset hebben op de registers van de controller.
De benamingen van de configuratie bits kunnen per type verschillend zijn, “PWRT” bij de 18F25K20 is “PWRTE” bij de 18F25K22
Ook de waardes die opgegeven worden, kunnen een ander formaat hebben, b.v. voor de 18F2550 is BORV 0,1,2 of 3, voor de 18F25K22 is BORV 190, 220, 250 of 300 (1,9V, 2,2V, 2,5v of 3V)