Ampliar entradas y salidas con un expansor de bus

Vamos a aprender a utilizar el módulo «Expansor de Bus» para ampliar las capacidades de cualquier microcontrolador. Siguiendo el tutorial seremos capaces de: configurar el dispositivo, leer y escribir en el mismo mediante el protocolo I2C.

Niple incorpora en sus módulos un circuito integrado expansor de bus. La finalidad es lograr ampliar la cantidad de entradas y salidas de un microcontrolador utilizando uno o varios de estos chips.

El circuito integrado PCF8574 es un expansor de entradas y salidas para la mayoría de las familias de microcontroladores que se comunica mediante dos líneas utilizando el bus I2C.

Internamente consiste de un puerto cuasi-bidireccional de 8 bits y una interface I2C. Su consumo de corriente es bajo, posee salidas con posibilidad de manejar corriente y mantener el dato presente (latch). También posee una línea de interrupción (INT) que puede ser conectada a la lógica de interrupción del microcontrolador.

El direccionamiento se realiza mediante pines de dirección en hardware y permite utilizar hasta 8 dispositivos (hasta 16 con la versión PCF8574A). El pinout es el siguiente:

pcf8574 (2)

Pin 1 (A0):  dirección 0
Pin 2 ­(A1):  dirección 1
Pin 3 (A2): dirección 2
Pin 4 ­(P0): entrada/salida 0
Pin 5 ­(P1): entrada/salida 1
Pin 6 (P2): entrada/salida 2
Pin 7 (P3): entrada/salida 3
Pin 8 (VSS): masa
Pin 9 (P4): entrada/salida 4
Pin 10 (P5): entrada/salida 5
Pin 11 (P6): entrada/salida 6
Pin 12 (P7): entrada/salida 7
Pin 13 (INT): interrupción
Pin 14 (SCL): reloj I2C
Pin 15 (SDA): datos I2C
Pin 16 (VDD): alimentación

Configuración del módulo

Para poder utilizar el expansor de bus es necesario declararlo. Para esto seguimos la ruta: DECLARACIÓN DE DISPOSITIVOS >>> NUEVO DISPOSITIVO >>> EXPANSOR DE BUS.

modulo

Los parámetros a configurar son:

MODELO: nos permite elegir el modelo de chip, PC8574 o PC8574A.

PIN SCL: configuramos a que pin del microcontrolador conectaremos el pin de reloj (SCL).

PIN SDA: configuramos a que pin del microcontrolador conectaremos el pin de datos (SDA).

NRO DISP: en caso de disponer de varios chips en nuestro proyecto, es necesario asignar distintos números de dispositivos para poder identificarlos.

Programación

Una vez configurado nuestro dispositivo, podemos trabajar con él en nuestro proyecto. Insertamos el bloque «Expansor de bus» en nuestro programa, elegimos el número de dispositivos desde la lista desplegable «ID DISP», acto seguido escogemos una de las dos acciones disponibles: «Escribir» y «Leer».

ESCRIBIR: si deseamos escribir en los pines del expansor elegimos esta opción. Es posible enviar datos almacenados en un registro, o directamente escribir un valor (decimal, hexadecimal, binario o ASCII).

escribir

Bloque «Escribir»:

bloque leer

LEER: si deseamos leer el estado de los pines del expansor elegimos esta opción. El dato obtenido lo almacenaremos en un registro de 8 bits.

leer

Bloque «Leer»:

bloque escribir

Archivos del Proyecto

Puede descargar los archivos que complementan al tutorial (código fuente, esquemas y datasheets) haciendo clic AQUI.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrPin on PinterestDigg thisShare on RedditEmail this to someonePrint this page

Un comentario sobre “Ampliar entradas y salidas con un expansor de bus”

Los comentarios están cerrados.