2016/04/14

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.

Aplicaci贸n t铆pica.
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.

Configuraci贸n de pines.
Figura-02.


La direcci贸n es de ocho bits, como se muestra en la figura-03.

Direcci贸n PCA9554.
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.

Diagrama del ejercicio 1.
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.

Resistencias Pull-up.
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.

PIC-C I2C.
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.



Descarga [MF] [MG].


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.

Diagrama ejercicio 2.
Figura-07.


Usamos los botones directamente, haciendo uso de las resistencias Pull-up como vemos es la figura-08.

Diagrama de bloques del PCA9554.
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.

Descarga [MF] [MG].


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.


DataSheet.

  • PCA9554 [MG] [MF].
  • PIC18F452 [MG] [MF].
  • Comunicaci贸n I2C (PDF) [MG] [MF].


Tambi茅n te pueden interesar:


5 22XD: 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, ...
< >