Expansor de puerto de prop贸sito general PCA9554 馃
Cuenta con ocho pines que se pueden configurarse como entradas o salidas, un pin de interrupci贸n para los eventos en los pines de entradas, adem谩s de poder trabajar en un rango de voltaje de (2,3 a 5,5) V. En esta entrada veremos como podemos usarlo en PIC-C CCS apoy谩ndonos con ISIS Proteus para la simulaci贸n.
Para la direcci贸n del protocolo de comunicaci贸n I2C tenemos disponibles tres pines A2, A1 y A0 (figura-02) el cual tendremos ocho combinaciones y te贸ricamente podemos usar ocho dispositivos de las mismas caracter铆sticas en el mismo bus.
La direcci贸n es de ocho bits, como se muestra en la figura-03.
Para el ejemplo de la figura-01 y los ejercicio N°1 (figura-04) y ejercicio N°1 (figura-07) tenemos las siguientes direcciones como vemos en la tabla-01.
Para la conexi贸n entre el PCA9554 que act煤a como dispositivo esclavo y el PIC18F452 como maestro, tenemos la recomendada por el fabricante como vemos en la figura-05.
Para la configuraci贸n del bus I2C en PIC-C usamos la opci贸n Fast y Force Hardware ya que el PIC18F452 los soporta (figura-06), la velocidad de micro es 4 MHz t铆pica para simulaciones sencillas.
Para configurar los pines del PCA9554 usamos el comando 0x03.
El c贸digo en PIC-C seria el siguiente, donde addrreess es la direcci贸n del dispositivo.
Para escribir en el puerto usaremos el comando 0x01 y la siguiente rutina, donde “salida” es una variable de 8 Bits.
Usamos los botones directamente, haciendo uso de las resistencias Pull-up como vemos es la figura-08.
El c贸digo en PIC-C para configurar los pines del PCA9554 como entrada seria el siguiente.
El c贸digo en PIC-C para leer los pines de entrada del PCA9554 seria el siguiente, mediante el comando 0x00.
Solo tomando en consideraci贸n que el Bits de W/R seria 1 como se aprecia en la figura-03.
DataSheet [MEGA]
Figura-01. |
Para la direcci贸n del protocolo de comunicaci贸n I2C tenemos disponibles tres pines A2, A1 y A0 (figura-02) el cual tendremos ocho combinaciones y te贸ricamente podemos usar ocho dispositivos de las mismas caracter铆sticas en el mismo bus.
Figura-02 |
La direcci贸n es de ocho bits, como se muestra en la figura-03.
Figura-03 |
Para el ejemplo de la figura-01 y los ejercicio N°1 (figura-04) y ejercicio N°1 (figura-07) tenemos las siguientes direcciones como vemos en la tabla-01.
Direcci贸n del
PCA9554
|
||||||
Dispositivo
|
Set
|
A2
|
A1
|
A0
|
R/W
|
Hexadecimal
|
Imagen 1
|
0100
|
0
|
0
|
0
|
0
|
0x40
|
Ejercicio 1
|
0100
|
0
|
1
|
1
|
0
|
0x46
|
Ejercicio 2
|
0100
|
0
|
0
|
1
|
0
|
0x42
|
Tabla-01
Ejercicio N°1
Configuraremos los pines del PCA9554 como salidas y crearemos una rutina de encendido para los Led que vemos en el diagrama de la figura-04.Figura-04. |
Para la conexi贸n entre el PCA9554 que act煤a como dispositivo esclavo y el PIC18F452 como maestro, tenemos la recomendada por el fabricante como vemos en la figura-05.
Figura-05. |
Para la configuraci贸n del bus I2C en PIC-C usamos la opci贸n Fast y Force Hardware ya que el PIC18F452 los soporta (figura-06), la velocidad de micro es 4 MHz t铆pica para simulaciones sencillas.
Figura-06. |
Para configurar los pines del PCA9554 usamos el comando 0x03.
- Los bits en bajo se toman como salidas (0 = output)
- Los bits en alto se toman como entrada (1 = input)
El c贸digo en PIC-C seria el siguiente, donde addrreess es la direcci贸n del dispositivo.
Para escribir en el puerto usaremos el comando 0x01 y la siguiente rutina, donde “salida” es una variable de 8 Bits.
Ejercicio N°2
Configuraremos los pines del PCA9554 como entradas y leeremos su valor y lo reflejaremos en el puerto D del micro como vemos en el diagrama de la figura-07.Figura-07. |
Usamos los botones directamente, haciendo uso de las resistencias Pull-up como vemos es la figura-08.
Figura-08. |
El c贸digo en PIC-C para configurar los pines del PCA9554 como entrada seria el siguiente.
El c贸digo en PIC-C para leer los pines de entrada del PCA9554 seria el siguiente, mediante el comando 0x00.
Solo tomando en consideraci贸n que el Bits de W/R seria 1 como se aprecia en la figura-03.
Conclusiones
Como siempre son ejercicio orientado a la simulaci贸n y poner en pr谩ctica los conceptos b谩sicos, varias conexiones de obvian, as铆 que al final coloco los DataSheet de los dispositivos usados si se quieren implementar.
No se toca los Fuses pero se pueden consultar en main.h, ya saben cualquier correcci贸n o duda usar los comentarios o los canales de comunicaci贸n del blog.
Ejercicios ADC [MEGA]
DataSheet [MEGA]
- PCA9554 y PIC18F452.
- Comunicaci贸n I2C (Gu铆a).
Comentarios
Publicar un comentario
馃 con que esto tenemos...