Il problema del PORTB
analogico nei PIC18.
|
Quando si utilizza per le prime volte un PIC18, ci si scontra
normalmente con un problema tipico: quanto collegato su PORTB
non va ! E si impiega lungo tempo per cercare di capire cosa diavolo
ci sia di difettoso.
Sopratutto se si sta portando un semplice programma, ad esempio da un
PIC16F876 a un PIC18F2321, che, a prima vista, sono del tutto pin compatibili.
Se non si è
letta attentamente la documentazione del componente, è sfuggito il semplice (e
perverso) fatto che, a
differenza dei PIC16, i PIC18 possono utilizzare parte de PORTB
come ingressi
analogici.
Ed è questa configurazione è il default al reset.
Per cui, se non interveniamo, il chip all' avviamento presenta i pin
RB3:0 come
ingressi analogici.
Questo ha per risultato l' impossibilità di utilizzarli
correttamente come GPIO.
La soluzione, però, è molto semplice: conoscendo il problema,
sarà immediato liberarsene.
Una prima via, quella consigliabile, è di agire durante la
configurazione iniziale del chip.
Il bit 1 - PBADEN- del registro
CONFIG3H agisce in questo modo :
Se non servono ulteriori ingressi analogici,
basta resettare il bit.
Ovviamente ce ne guardiamo bene dal toccarlo direttamente e lasciamo fare a MPLAB.
sarà la riga da aggiungere a quelle del CONFIG
iniziale per
predisporre i pin come digitali.
Poi, durante il funzionamento, sarà possibile programmarli come
meglio si desidera,
attraverso ADCON1.
La riga in CONFIG serve solo a modificare il default
di questo registro al reset.
Il suo opposto è:.
Ed è appunto quella di agire su ADCON1 la seconda via possibile:
da programma impostiamo in questo registro un valore tale da escludere dalla
lista degli ingresi AD i PORTB.
Quindi, prima di usare questi port come digitali scriveremo :.
movlw 0x0F
movwf ADCON1 ; nessun
ingresso AD attivo |
oppure un altro valore adeguato nei bit PCFG3:0 per abilitare
solo gli AD desiderati.
Con una di queste due azioni, l' uso del PORTB
e anche la compatibilità
pin-to-pin tra 16 è 18 è assicurata
Copyright © afg
. Tutti i diritti riservati.
Aggiornato il 01/09/12
.
|