Il CONFIG in dettaglio.
Vediamo in dettaglio alcune funzioni.
; PORTB A/D Enable bit:
;CONFIG
PBADEN = DIG
; PORTB<4:0> pins are configured as digital I/O
;CONFIG PBADEN = ANA ; PORTB<4:0> pins are configured
as analog input
Questo assegna ad alcuni pin di PORTB la funzione di ingresso analogico
oppure digitale.
Non presente nella maggior parte dei PIC16F, si trova ad essere un punto
comune di errore da parte del programmatore che non ha letto a fondo il foglio
dati. Infatti, il default assegna ai PORTB la funzione analogica, il che ne
rende impossibile l' utilizzo come port digitali.
Se non si vuole sfruttare la funzione analogica, occorre disabiltarla (sarà
sempre possibile ri abilitarla durante il programma).
Se non si utilizza il PORTB oppure lo si utilizza come analogico, questa
opzione di configurazione potrà essere ignorata.
; CCP2 MUX bit:
;CONFIG
CCP2MX = RB3
; CCP2 input/output is multiplexed with RB3
;CONFIG CCP2MX = RC1 ; CCP2 input/output is multiplexed with
RC1
Questo consente di assegnare la funzione CCP2 ad un pin piuttosto che ad
un' altro. Anche esiste un default, che dovrà essere variato se serve la
funzione alternativa.
Se non si utilizza il modulo CCP2, questa opzione di configurazione potrà
essere ignorata.
Da notare che alcuni processori hanno un ampio set di pin assegnabili ad un
modulo o ad un altro e, in questo caso, la lettura del foglio dati è
indispensabile.
; Extended Instruction Set Enable bit:
;CONFIG
XINST = OFF
; Instruction set extension disabled (Legacy mode)
;CONFIG XINST = ON ; Instruction set extension
enabled
Il default esclude il set di istruzioni esteso. A meno di utilizzare una
programmazione particolare o un compilatore C che sfrutti queste istruzioni,
normalmente questa opzione di configurazione potrà essere ignorata.
; Background Debugger Enable bit:
;CONFIG DEBUG = ON ; Background debugger enabled,
RB6 and RB7 to ICSP
;CONFIG
DEBUG = OFF
; Background debugger disabled, RB6 and RB7 as GPIO
Per utilizzare il motore di debug in-circuit, occorre abilitarlo.
Il default esclude il debugger.
; Single-Supply ICSP Enable bit:
;CONFIG LVP = OFF
; Single-Supply ICSP disabled
;CONFIG LVP = ON ; Single-Supply
ICSP enabled
Il default di consegna dei PIC da parte della fabbrica prevede che la
modalità di programmazione a bassa tensione sia abilitata. Dovendo utilizzare
il chip in debug ICD e/o in programmazione ICSP, il m odo LVP dovrà essere
disabilitato.
; Oscillator Selection bits:
;CONFIG OSC = HS
; HS oscillator
;CONFIG OSC = HSPLL ; as above + PLL (Clock Frequency
= 4 x FOSC1)
;CONFIG OSC = LP ; LP Oscillator
;CONFIG OSC = XT ; XT Oscillator
;CONFIG OSC = HS ; HS Oscillator
;CONFIG OSC = RC ; External RC
oscillator, RA7 input, CLKO function on RA6
;CONFIG OSC = RCIO ; External RC oscillator, RA7
input, GPIO on RA6
;CONFIG OSC = EC ; EC oscillator,
RA7 input, CLKO function on RA6
;CONFIG OSC = ECIO ; EC oscillator, RA7 input,
GPIO on RA6
;CONFIG OSC = INTIO2 ; Internal oscillator, GPIO on RA6 and
RA7
;CONFIG OSC = INTIO2PLL ; as above + PLL
;CONFIG OSC = INTIO1 ; Internal oscillator, CLKO function on
RA6, GPIO on RA7
;CONFIG OSC = INTIO1PLL ; as above + PLL
;
Di capitale importanza è la scelta di uno dei modi di funzionamento dell'
oscillatore; una errata selezione rispetto all' hardware utilizzato renderà
impossibile o critico il funzionamento del processore.
; Low-Power Timer1 Oscillator Enable bit:
;CONFIG
LPT1OSC = OFF ; Timer1 configured for higher power operation
;CONFIG LPT1OSC = ON ; Timer1 configured for low-power
operation
Di capitale importanza è la scelta di uno dei modi di
funzionamento dell' oscillatore; una errata selezione rispetto all' hardware
utilizzato renderà impossibile o critico il funzionamento del processore.
; Fail-Safe Clock Monitor Enable bit:
;CONFIG FCMEN
= OFF
; Fail-Safe Clock Monitor disabled
;CONFIG FCMEN = ON ; Fail-Safe Clock Monitor
enabled
La funzione di Fail Safe per il clock principale è documentata nei fogli
dati. Il default la esclude. Se si abilita occorrerà poi che il software ne
possa tenere conto.
; Internal/External Oscillator Switchover bit:
;CONFIG IESO
= OFF
; Oscillator Switchover mode disabled
;CONFIG IESO = ON ; Oscillator Switchover
mode enabled
Se non si intende utilizzare la possibilità di commutare due diverse
sorgenti per il clock, questa linea può essere omessa, in quanto il default
da questa opzione.
; Power-up Timer Enable bit:
CONFIG PWRT = ON
; PWRT enabled
;CONFIG PWRT = OFF ; PWRT disabled
Solitamente il Power On Timer è utilizzato, ma, in particolari condizioni
o durante il debug, deve essere disabilitato.
; Brown-out Reset Enable bits:
CONFIG BOR = ON
; Brown-out Reset enabled in hardware only (SBOREN is disabled)
;CONFIG BOR = OFF ; Brown-out Reset
disabled
;CONFIG BOR = SOFT ; Brown-out Reset enabled and
controlled by software
;CONFIG BOR = NOSLP ; Brown-out Reset enabled in
hardware only and disabled in Sleep
Il BOR, nei PIC18, può essere definito in varie modalità; il foglio dati
ne descrive le varie opzioni.
In particolare, esiste la possibilità di selezionare la tensione di scatto
del trigger e almeno due modalità di controllo da programma.
; Brown-out Reset Voltage bits:
;CONFIG BORV = 0 ; Soglia reset 4.5V
CONFIG BORV = 1
; Soglia reset 4.2V
;CONFIG BORV = 2 ; Soglia reset 2.7V
;CONFIG BORV = 3 ; Soglia reset 2.0V
; MCLR Pin Enable bit:
;CONFIG MCLRE = OFF ; RE3 input pin enabled; MCLR
disabled
CONFIG MCLRE = ON
; MCLR pin enabled; RE3 input pin disabled
Il pin MCLR può essere programmato come ingresso esterno di reset (e
questo è il default) oppure come pin di ingresso digitale.
La linea può essere omessa se si utilizza la funzione di reset esterno.
;
; Watchdog Timer Enable bit:
CONFIG WDT = OFF
; WDT disabled (control on SWDTEN bit)
;CONFIG WDT = ON ; WDT enabled
;
; Watchdog Timer Postscale Select bits:
;CONFIG WDTPS = 1 ; 1:1
;CONFIG WDTPS = 2 ; 1:2
;CONFIG WDTPS = 4 ; 1:4
;CONFIG WDTPS = 8 ; 1:8
;CONFIG WDTPS = 16 ; 1:16
;CONFIG WDTPS = 32 ; 1:32
;CONFIG WDTPS = 64 ; 1:64
;CONFIG WDTPS = 128 ; 1:128
;CONFIG WDTPS = 256 ; 1:256
;CONFIG WDTPS = 512 ; 1:512
;CONFIG WDTPS = 1024 ; 1:1024
;CONFIG WDTPS = 2048 ; 1:2048
;CONFIG WDTPS = 4096 ; 1:4096
;CONFIG WDTPS = 8192 ; 1:8192
;CONFIG WDTPS = 16384 ; 1:16384
;CONFIG WDTPS = 32768 ; 1:32768
Il waychdog è per default abilitato. In tal caso occorre selezionarne un
prerscaler.
Se non si intende utilizzare questa funzione, va disabilitata; in tal caso la
scelta del prescaler va omessa.
; Stack Full/Underflow Reset Enable bit:
;CONFIG STVREN = OFF ; Stack full/underflow will not cause
Reset
CONFIG STVREN = ON
; Stack full/underflow will cause Reset
Se non si intende utilizzare la possibilità di generare un interrupt per
errore nello stack, la funzione va disabilitata.
Se è abiltata occorrerà che il software gestisca questa opzione.
I PIC18 consentono una dettagliata selezione delle aree di memoria che
possono essere protette dall lettura esterna o dalla scrittura.
Normalmente queste funzioni sono disabilitate e vanno abilitate in funzione
delle proprie necessità di sicurezza.
Durante il debug è opportuno non abilitare queste funzioni.
Determinazione della dimensione del blocco di boot
; Boot Block Size Select bits:
;CONFIG BBSIZ = BB256 ; 256 Word
;CONFIG BBSIZ = BB512 ; 512 Word
;CONFIG BBSIZ = BB1K ;1024 Word
Protezione del blocco di boot
; Code Protection bit Block 0 and 1:
;CONFIG CPx = ON ; Block x
code-protected
;CONFIG CPx = OFF ; Block x not
code-protected
CONFIG CP0 = OFF ; code protection block 0 (ON/OFF)
CONFIG CP1 = OFF ; code protection block 1 (ON/OFF)
;
; Boot Block Code Protection bit:
CONFIG CPB = OFF
; code protection bootblock (ON/OFF)
Protezione del contenuto della EEPROM
; Data EEPROM Code Protection bit:
CONFIG CPD = OFF
; code protection eeprom (ON/OFF)
Protezione dalla scrittura durante il funzionamento del programma per
alcuni blocchi della Flash
; Write Protection bit Block 0 and 1:
;CONFIG WRTx = ON ; Block x
write-protected
;CONFIG WRTx = OFF ; Block x not write-protected
CONFIG WRT0 = OFF
; Write protect block 0 (ON/OFF)
CONFIG WRT1 = OFF ; Write protect block 1 (ON/OFF)
CONFIG WRTB = OFF ; Write protect bootblock (ON/OFF)
Protezione dei registri di CONFIG da una possibile modifica durante il
funzionamento
; Configuration Register Write Protection bit:
CONFIG WRTC = OFF ; Write protecte configurations (ON/OFF)
Protezione della EEPROM da una sovrascrittura durante il funzionamento
; Data EEPROM Write Protection bit:
CONFIG WRTD = OFF ; Write protect eeprom (ON/OFF)
Protezione delle tabelle dalla lettura esterna
; Table Read Protection bit Block 0 and 1:
;CONFIG EBTRx = ON ; Block x protected from
table reads in other blocks
;CONFIG EBTRx = OFF ; Block x not protected from table
reads in other blocks
CONFIG EBTR0 = OFF
; Read protect table block 0 (ON/OFF)
CONFIG EBTR1 = OFF
; Read protect table block 1 (ON/OFF)
Protezione del blocco di boot dalla lettura esterna
; Boot Block Table Read Protection bit:
;CONFIG EBTRB = ON ; Boot block protected from
table reads in other blocks
CONFIG EBTRB = OFF
; Boot block not protected from table reads in other blocks
Si ricorda che le linee configurabili in questa sezione possono
essere diverse da PIC a PIC in funzione delle periferiche integrate e
delle caratteristiche della famiglia.
La lettura dei fogli dati del processore usato è l' unica via per
essere a conoscenza delle varie opzioni.
|
|