Quiero usar dos chips MCP23017-E / SP para extender los puertos de un Frambuesa PI 3.
Estoy usando i2c-tools
en el Raspbian para confirmar que todo funciona. He conectado ambos chips por separado y los he fijado en dos direcciones diferentes (0x20 y 0x24). Con cada uno conectado por separado, puedo usarlos muy bien, pero cuando uso / enciendo ambos al mismo tiempo veo un comportamiento muy extraño. Parece que solo uno de ellos está activo a la vez. Ejecutar i2cdetect
muestra diferentes resultados en cada ejecución:
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- 24 -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
También i2cset
/ i2cget
fallaría una vez y tendría éxito otras veces.
Los colegios mencionaron que las resistencias pull-up podrían ser necesarias, pero supongo que el RPi3 tiene resistencias de 1k8 built integradas y no necesitaría otras.
El cableado se realiza de esta manera, solo con las conexiones de Raspberry en SDA1
y SCL1
y Vdd en 3.3V.
¿Cómo podría depurar esto más?