Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
tutorial<br />
progetti tutorial<br />
In progetti in cui viene<br />
impiegato un microcontrollore<br />
con un numero limitato di I/O,<br />
può essere necessario<br />
utilizzare un port expander<br />
per incrementare il numero di<br />
ingressi/uscite disponibili.<br />
Ecco come fare<br />
Figura 1- Indirizzamento di un registro.<br />
MikroPascal<br />
Interrupt<br />
e Timer<br />
Android<br />
Google<br />
“App Inventor”<br />
Raspberry Pi<br />
Acquisizione dei<br />
segnali digitali<br />
rubriche<br />
tramite i registri IODIRA/B si effettua la<br />
configurazione dei bit I/O. Inoltre il master<br />
ha la possibilità di leggere tutti i registri del<br />
“Port Expander”.Tra i vari registri che lo<br />
contraddistinguono, fondamentali risultano<br />
i seguenti registri :<br />
Per configurare i pin delle porte:<br />
• IODIRA<br />
• IODIRB<br />
Per la configurazione generale del funzionamento:<br />
• IOCONA<br />
• IOCONB<br />
Per la lettura delle porte:<br />
• GPIOA<br />
• GPIOB<br />
Per la scrittura delle porte:<br />
• OLATA<br />
• OLATB<br />
Inoltre, per quanto riguarda il trasferimento<br />
dei dati ho optato, per l’esempio che seguirà,<br />
in secondo articolo, per la modalità<br />
sequenziale (scrivendo IOCON.SEQOP=0).<br />
di ALBERTO TRASIMENI<br />
MICROCONTROLLORI<br />
PORT EXPANDER:<br />
GESTIRLO CON UN PIC<br />
MCP23S17, è un “Port<br />
Expander” bidirezionale dotato di<br />
L’integrato<br />
due porte A e B utilizzante un<br />
protocollo di comunicazione SPI.<br />
Ad ogni porta sono associati 8 bit: PortA e<br />
PortB; in modo tale da poter configurare il<br />
funzionamento in modalità 8-bit oppure<br />
16-bit; dei quali, inoltre, è possibile configurare<br />
singolarmente i bit come ingressi<br />
oppure uscite.<br />
Il protocollo SPI consente al sistema master,<br />
microntrollore, la configurazione dei<br />
registri del Port Expander, semplicemente<br />
scrivendo in essi; per esempio scrivendo<br />
nel registro IOCON.BANK si può configurare<br />
il dispositivo in modo tale da poter<br />
operare in modalità 8-bit oppure 16-bit;<br />
Per la realizzazione del software di gestione<br />
del dispositivo farò uso del compilatore<br />
MikroC versione 6.0 della Mikroelettronika.<br />
L’operazione di scrittura , avviene inviando<br />
dal master all’ integrato, lo “slave address”<br />
( costituito da 4 bit fissi e 3 bit da<br />
stabilire ( A0- A1-A2 ) che definiscono l’ indirizzo<br />
hardware del dispositivo ) ed il bit<br />
che indica la tipologia del comando R/W<br />
(0 indica la scrittura ), come mostrato in figura<br />
2 ( che costituiscono il byte di controllo<br />
in quanto MCP23S17 è un SPI<br />
slave ); questo comando costituisce l’ opcode<br />
al quale devono essere aggiunti l’ indirizzo<br />
del registro, come mostrato in figura<br />
1, sul quale si vuole operare ed almeno<br />
un byte di dati. Analogamente si procede<br />
per il comando di lettura, in cui bisogna<br />
soltanto cambiare il bit che indica la tipologia<br />
del comando: R/W ( 1 indica la lettura<br />
).<br />
Nel nostro caso, utilizziamo una modalità<br />
sequenziale, per cui parliamo di operazioni<br />
sequenziali di lettura e scrittura, nelle<br />
quali il master trasmette il successivo byte<br />
puntato dal puntatore di indirizzo fin