I registri associati a PORTE
I registri associati all' uso di PORT
E
sono i seguenti :
Nome |
bit 7 |
bit 6 |
bit 5 |
bit 4 |
bit 3 |
bit 2 |
bit 1 |
bit 0 |
PORTE |
|
|
|
|
RE3 |
RE2 |
RE1 |
RE0 |
LATE |
|
|
|
|
|
Data latch |
TRISE |
IBF |
OBF |
IBOV |
PSPMODE |
|
TRISE2 |
TRISE1 |
TRISE0 |
ADCON1 |
|
|
|
|
PCFG3 |
PCFG2 |
PCFG1 |
PCFG0 |
CONFIG3H |
MCLRE |
|
|
|
FOSC3 |
FOSC2 |
FOSC1 |
FOSC0 |
Si nota immediatamente che Il registro PORTE
ha solamente 3 bit attivi, essendo PORTE
composta da soli 3 bit.
Il bit relativo a RE3 è funzionante solamente se il pin MCLR è stato
configurato come ingresso digitale con il bit MCLRE
(CONFIG3H<7>)
.
Così pure LATE
ha solo 3 bit attivi. Il bit corrispondente a RE3 non ha funzione
in quanto RE3, se utilizzato, può essere solo un ingresso e non una
uscita
Il registro TRISE
è registro di direzione un poco particolare : solamente i primi 3
bit regolano la direzione degli I/O, mentre i 4 bit più alti hanno funzione
di abilitazione e controllo sul PSP.
TRISE |
bit |
IBF |
OBF |
IBOV |
PSPMODE |
-
|
TRISE2 |
TRISE1 |
TRISE0 |
funzione |
R |
R |
R/W |
R/W |
R |
R/W |
R/W |
R/W |
default |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-
bit 7 IBF
: Input Buffer Full status bit
1
= è stata ricevuta una parola che è in attesa di lettura
0
= nessuna parola ricevuta
-
bit 6 OBF
: Output Buffer Full status bit
1 =
il buffer in uscita è in attesa di lettura
0 =
il buffer in uscita è stato letto
bit 5 IBOV
: Input Buffer OVerflow
1
= non è stato letto un dato che è stato sovrascritto da un nuovo
dato
0 =
nessun overflow
bit 4 PSPMODE :
controllo della porta PSP
1
= PSP abilitato - PORTD dedicato
0
= PSP disabilitato - PORTD disponibile come GPIO
bit 3 - :
non utilizzato
letto come 0
bit 2:0
TRISE2:1
: direzione I/O digitale
1
= input
0
= output
I valori di default al POR sono indicati nella tabella.
In
particolare.IBF
e
OBFF
sono dei flag di status a sola lettura per monitorare le condizioni della PSP;
anche IBOV
è un flag, ma va azzerato da programma.
Situazione al POR
Al POR :
TRISE
= 0000x111, ovvero la direzione generale dei pin è come ingresso. e i flag
sono azzerati
PORTE
e LATE
hanno contenuto indeterminato.
In
ADCON1 il valore dei bit PCFG<2:0>
è 1, quindi AN7:5 sono programmati come input analogici
Per quanto
riguarda i registri di controllo dell' interrupt, al POR tutti gli Interrupt sono disabilitati
Nei registri di configurazione,
per default MCLRE = 1 , ovvero
viene configurato il pin come ingresso per il reset esterno. Se usato con ICSP
è l' ingresso di Vpp.
Per quanto riguarda le funzioni speciali (PSP, AD, ICSP , ICD e
LVP) consultare i capitoli relativi.
Si può riassumere la situazione del POR
in questo modo :
-
I pin RA2:0 sono configurati come ingressi analogici. La funzione può essere modificata
con
ADCON1.
-
La funzione PSP è disabilitata
-
La funzione RE3 è disabilitata
-
Nessun interrupt dipende direttamente da PORTA
Inizializzazione di PORTE
Una sequenza di inizializzazione come GPIO digitale può essere questa
;
Initialize PORTE
clrf
PORTE
; clear PORTE latch
movlw
b'10100000'
movwf
ADCON1
; set RE as digital
movlw
b'0000011' ;
set RE1:0 as input
movwf
TRISE
; and RE2
as out
Come solito, i pin dedicati ad una funzione non possono essere impiegati
per altre.
NOTE :
-
Al POR il default configura i pin del
PORTE
come ingressi e in particolare come analogici relativi al modulo AD.
Quindi, volendoli usare come digitali, occorre agire su ADCON1
-
Il TRISE
contiene non solo i bit di direzione del
PORTE, ma anche i
segnali di gestione della porta PSP
-
Le alternative sul pin !MCLR sono impostabili solo attraverso
i registri di
configurazione, dove bit MCLRE permette la scelta tra
funzione di reset o ingresso RE3.
-
La funzione relativa a ICSP non dipende dal
TRISE
-
RE3
come GPIO può assolvere solo la funzione di ingresso e non quella
di uscita.
Per quanto riguarda PSP e ICSP consultare i capitoli relativi.