PIEZAS: LOS EXPANJEROS DE 8 BIT IO (PCF8574)

December 8, 2022 0 By mnylkp

En algunos casos, un trabajo tiene mucho más sensores, botones o LED que su microcontrolador tiene pines. El PCF8574 es un método simple para agregar 8 clavijas de entrada o salida de baja velocidad a un microcontrolador. Una dirección configurable permite que existan varios PCF8574s en el mismo autobús exacto, por lo que dos pines de microcontrolador pueden administrar muchos pins IO. Le mostraremos exactamente cómo utilizar este chip a continuación.

TI PCF8574 I2C 8bit IO Expander (Mouser # 595-PCF8574N, $ 1.86)

Descubrimos huellas de PCB para este chip en I2C.LBR, así como Micro-Phillips.LBR en la página de descarga de la Biblioteca Cadsoft Eagle. El PCF8574 se administra con el protocolo de 2 CABLE I2C, por lo que utilizamos nuestra interfaz serial universal del pirata de bus para demostrar este chip. Se aplicarán las mismas operaciones fundamentales exactas a cualquier tipo de microcontrolador.

El esquema muestra nuestro sencillo circuito de prueba para el PCF8574, aquí está la hoja de datos (PDF). Desarrollamos el chip con 5 Volts, así como utilizado un capacitor de desacoplamiento de 0.1UF (C1) entre la potencia, así como los pasadores de tierra. R1, así como R2, mantenga presionado el reloj I2C, así como el bus de datos a 5 Volts. Utilizaremos un LED para probar las características de salida del chip; P0 está vinculado a LED1 con resistencia limitante actual R3 (330+ Ohms). P6, así como P7 están conectados a entender las especificaciones para que podamos probar rápidamente las capacidades de entrada del chip.

La dirección I2C de la PCF8574 es 0100XXXY, con tres bits (x) identificados por la especificación de los Pines A2-0 de dirección, así como un bit final (Y) que establece el modo de salida (1) o componer (0). Numerosos PFC8574S pueden compartir un bus I2C utilizando diferentes configuraciones de PIN de dirección. Debido a que conectamos los pasadores de dirección al suelo, la dirección de composición es 01000000 (0x40).

Producción

El LED en P0 se administra componiendo A 1 (ON) o 0 (OFF) a BIT 0 del byte que cumple con la dirección de composición.

I2c> {0x40 0b00000001} <-command 210 I2C comience la condición 220 i2c Escribir: 0x40 GOT ACK: SÍ <-WSEWS 220 I2C Escribir: 0x01 GOT ACK: SÍ <- OOPPUT Valor Condición de parada 240 I2C I2c>

{Problemas Una condición de inicio de I2C, cumplida por la dirección de composición, 0x40. El valor de salida, 0B00000001, establece P0 High, así como los bits de permanencia bajos. } Envía la condición de parada de autobús I2C, que termina la transacción. Cuando el bit correspondiente se ajusta al alto, el LED se enciende.

Para apagar el LED, repita la secuencia con el bit de salida correspondiente establecido en 0.

I2C> {0x40 0B00000000} <- Comando 210 I2C comience la condición 220 i2c Escribir: 0x40 GOT ACK: SÍ <-WSEWS 220 I2C Escribir: 0x00 GOT ACK: SI <-OOTRATION VALOR Condición de parada 240 I2C I2c>

Con P0 ahora establecido en tierra, el LED se apaga.

Aporte

Los pines establecidos en la salida altos también pueden utilizarse como entradas (Hoja de datos Page 1). En el ejemplo, P6 se ​​mantiene alto (+5 voltios), así como P7 se mantiene bajo (suelo), sin embargo, estos también pueden ser botones, sensores u otra lógica digital. Los otros pasadores se dejan flotando, así como no representan datos válidos.

I2C> {0x40 0B11000000} <- Comando 210 I2C comience la condición 220 i2c Escribir: 0x40 GOT ACK: SÍ <-WSEWS 220 I2C Escribir: 0xc0 GOT ACK: SÍ <- OOPPUT Valor Condición de parada 240 I2C I2c>

Primero, establecimos los pasadores de entrada preferidos para que salgan de alto composición 1 a los bits correspondientes en el valor de salida. Bits 6, así como 7 set P6, así como P7 para emitir altura.

Ahora, podemos verificar el PIN. Hicimos esta operación con la salida del pirata del autobús establecido en modo binario para garantizar que los valores PIN son obvios de manera rápida.

I2C> {0x41 R} <- Comando 210 I2C comience la condición 220 I2C Escribir: 0B01000001 GOT ACK: Sí <-Address 230 I2C Leer: 0B01000000 <-PIN ESTADO Condición de parada 240 I2C I2c>

{Problemas Una condición de inicio de I2C, 0x41 es la dirección revisada, así como R lee un byte del dispositivo. } Envía la condición de parada de autobús I2C, que termina la transacción.

La respuesta, 01000000, representa la especificación de los pasadores de entrada. El bit más considerable es 0 ya que P7 está conectado al suelo. El siguiente bit es 1 ya que la P6 se ​​mantiene altos los otros bits (0) son datos de basura.

Esto está lejos del único IO Expander IC. ¿Has utilizado un chip más?

No no recuerde ponerse al día con ningún tipo de mensajes de piezas que pueda haber perdido.