MCP23017 en serie

0

Tengo una mano llena de MCP23017 (multiplexores de 16 bits / Expansor de E / S) pero solo puedo obtener 8 IC en el bus debido al límite de dirección pero necesito 200 pines (aproximadamente 13 IC) para un 8 * Cubo de 8 * 8 RGB y estaba pensando y preguntándome qué problemas podría tener si. A. Cambiando activamente las direcciones del IC. O B. usa un transistor para desconectar el reloj de un conjunto de ic y controlar el otro conjunto

No me gusta la idea de un registro de desplazamiento debido al tamaño y al dolor de cabeza de programación

MCP23017 hoja de datos

    
pregunta Rex Fender Baird

1 respuesta

1

Aunque algunos dispositivos funcionarán bien con la dirección que se cambia mientras está encendido, la mayoría de las hojas de datos no reflejarán eso. Tendrá que probarlo. Para hacer eso, necesitará unos pocos pines de repuesto, o un expansor de 16 bits adicional, para impulsar los pines de dirección. Una configuración podría ser tener los 13 expansores de LED A2 y A1 pines atados a la lógica alta. Un 14º expansor, para accionar el pin A0, con A2, A1 y A0 ligados a lógica baja (0x20). Cada vez que necesite actualizar un nuevo expansor, actualice primero el expansor de direcciones, luego el expansor de led real. Esto agrega una transacción i2c de 2 a 3 bytes a cada actualización.

Sin embargo, tienes dos opciones principales para alternativas. En el Arduino, puede usar la biblioteca I2C del software para tener un segundo bus i2c. Esto puede estar en cualquiera de los dos pines. Ponga 8 en uno, 5 en el otro.

O para la compatibilidad general de i2c, un multiplexor i2c / concentrador / bus extensor / repetidor / conmutador (tienen muchos nombres). Dependiendo de la velocidad que esté utilizando (400kHz vs 1.7MHz [FM +]), deberá encontrar la adecuada. La mayoría son para uso de 400kHz. Estos le permiten conectar dos buses i2c y alternar entre ellos.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas