PCF8574 Características.

PCF8574.

EXPANSOR REMOTO DE PUERTO 8-BIT I/O POR I2C-BUS.

Traducción libre del datasheet PCF8574.pdf

En esta ocasión he preparado un artículo que solamente quiere poner al alcance del aficionado a la electrónica que no disponga de conocimientos del ‘inglés’. Espero dar una idea de las posibilidades que ofrece este pequeño dispositivo puesto al alcance tanto del ingeniero como del aficionado que por distintas razones no puede entender los beneficios que aporta este circuito integrado.

i2c-

1. CARACTERÍSTICAS

(Ver Hojas de Datos)

2. DESCRIPCIÓN GENERAL.

El PCF8574 es un circuito CMOS de silicio. Este tiene el propósito general de expansor remoto de E/S para la mayor parte de familias de microcontrolador a través del bus bidireccional de dos líneas (I2C). Este es el diagrama de bloques:

fig 1El dispositivo es un expansor remoto de 8bits I/O para bus I2C, consiste en un puerto cuasi bidireccional de 8 bit y una interfaz I2C-bus. El PCF8574 tiene una baja corriente consumo e incluye salidas cerrojo con capacidad de alta corriente para conducir directamente LEDs. Este, también posee una línea de interrupción (INT), que puede ser conectada a la lógica interrupt del microcontrolador. Mediante el envío de una señal interrupt sobre esta línea, la E/S remota puede informar al microcontrolador si hay datos entrantes en sus puertos sin necesidad de comunicarse a través del I2C-bus. Esto quiere decir que el PCF8574 puede seguir siendo un simple dispositivo esclavo. El PCF8574 y PCF8574A son versiones que difieren sólo en su dirección Slave, como se muestra más abajo, en la Fig.10.

fig5p fig5-2pFig.  2

6. CARACTERÍSTICAS DEL I2C-BUS.

El I2C bus son 2 vías, 2 líneas de comunicación entre diferentes módulos o circuitos integrados. Las dos líneas, una línea de datos serie (SDA) y una línea de reloj (SCL). Ambas líneas deben ser conectadas a un suministro positivo a través de una polarización a alto (PRA), aun cuando se conecte a la salida de las etapas de un dispositivo. La transferencia de datos sólo se podrá iniciar cuando el bus no esté ocupado.

6.1 BIT DE TRANSFERENCIA.

Se transfiere un bit de datos en cada pulso de reloj. Los datos en la línea SDA deben permanecer estables durante el período de pulso ALTO del reloj, con cambios en la línea de datos en este tiempo ha de ser interpretado como señales de control (ver Fig. 5).

fig.5_Bit_transfer

6.2 CONDICIONES DE START Y STOP.

Ambas líneas de datos y reloj siguen siendo ALTO cuando el bus no está ocupado. Una transición de ALTO -a- BAJO de la línea de datos, mientras el reloj es ALTO se define como la condición de inicio (S). Una transición de BAJO -a- ALTO de la línea de datos mientras el reloj es ALTO se define como la condición de parada (P) (ver Fig. 6).

fig.6_define_star_stop

6.3 CONFIGURACIÓN DEL SISTEMA.

Un dispositivo que genera un mensaje es un «emisor», un dispositivo que lo recibe es un «receptor». El dispositivo que controla el mensaje es el ‘maestro’ y los dispositivos que son controlados por el maestro son los «esclavos» (ver Fig.7).

fig.7_systema_config

6.4 ACKNOWLEDGE (RECONOCIMIENTO).

El número de bytes de datos transferidos entre las condiciones de inicio y parada del transmisor al receptor no esta limitado. Cada byte de ocho bits está seguido de un bit de reconocido. El bit de reconocido es un nivel ALTO puesto en el bus por el transmisor, mientras el maestro genera un reconocido suplementario relacionado con el pulso de reloj.

Un receptor esclavo cuando es direccionado debe generar un reconocido después de la recepción de cada byte. Un maestro también debe generar un reconocido después de la recepción de cada byte que ha sido registrado por los transmisores esclavos. El dispositivo reconoce que la línea SDA tiene una caída a bajo (pull-down) durante el pulso de reconocimiento de reloj, de modo que la línea SDA sea estable BAJO durante el período relacionado con el pulso ALTO de reconocimiento de reloj, los tiempos de configuración y mantenimiento deben ser tenidos en cuenta.

Un maestro debe señal de un receptor final de los datos al transmisor, al no reconocer una generación en el último byte que ha sido generado por los esclavos. En este caso, el transmisor debe abandonar la línea de datos a fin de que el ALTA maestro para generar una condición de parada.

Un maestro receptor debe señalar un fin de datos al transmisor para no engendrar un reconocido en el último byte que ha sido registrado por el esclavo. En este acontecimiento el transmisor debe dejar la línea de datos ALTO para permitir al maestro engendrar una condición de parada.

fig.8_acknowledg

DESCRIPCIÓN FUNCIONAL.

fog.9_diagrama_i-o

Direccionamiento.

fig.10_slave_addres

Cada una de las ocho E/S de los PCF8574’s pueden ser usadas por separado, como una entrada o salida. Los datos de entrada se transfieren del puerto al microcontrolador por el modo LECTURA (véase la Fig.12 en el DS). Los datos de salida son transmitidos al puerto por el modo ESCRITURA (véase la Fig.11).

Para el direccionamiento ver figuras 10, 11 12 y en el DS.

fig.11_write

fig.12_read

7.2 INTERRUPT.

El PCF8574 proporciona una salida de drenaje abierto (INT), que puede alimentar a una entrada correspondiente del microcontrolador. Esto dota a los chips de un tipo de maestro de la función que puede iniciar una acción en el resto del sistema. Se genera un interrupt por cualquier aumento o disminución del borde de la entradas del puerto en el modo de entrada.

fig.13_multiples

Después del tiempo Tiv en que el INT de la señal es válida. Restablecer y reactivar el circuito de interrupción se logra cuando los datos sobre el puerto se cambia a la configuración original o los datos se leen o se escriben en el puerto que ha generado la interrupción.

fig.14_interrupt_generado

El restablecimiento ocurre así:

Cada cambio de la E/S después del restablecimiento serán detectados y después del próximo flanco ascendente de reloj, se transmitirá como INT. La lectura o escritura a otro dispositivo, no afecta al circuito interrupt.

7.3 CUASI-BIDIRECCIONAL I/OS.

Una E/S cuasi-bidireccional se puede utilizar como una entrada o salida sin el uso de una señal de control para la dirección de datos (ver la figura 15).

fig.15_transient

VALORES LÍMITES.

De conformidad con la valoración máxima absoluta.

valores_limite

Más información relevante, respecto de condiciones de trabajo y tensiones, deben seguir el enlace del Data Sheet.

UN EJEMPLO.

Veamos un ejemplo sencillo, con una aplicación que nos sirva de referencia para recalcar conceptos. Utilizaremos dos unidades del PCF8574, una unidad servirá para leer datos desde unos pulsadores (o teclado) y la otra unidad, controlará los datos que leerá microcontrolador Arduino desde la interfaz I2C para encender unos LEDs o segmentos de un display.

dos8574Fig. 17

Qué hace el código: lee si alguno de los pulsadores es presionado. Arduino procesa la información que le envía desde la interfaz 1 PCF8574 de la izquierda y mediante el interfaz 2 PCF8574 de la derecha, enciende los segmentos del número que corresponde del display. Por cierto, aunque en el circuito esquematizado aparece conectado el Dp (punto decimal), en el código, no lo he incluido.

Si tiene alguna duda indíquemelo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.