Tengo una placa con un microcontrolador Atmel SAM D21E al que necesito conectar 4 dispositivos I2C (con direcciones en conflicto). Sin embargo, solo tiene un canal I2C, así que estoy usando un multiplexor TCA9548A para conectar los dispositivos I2C. He probado el software y el hardware muchas veces cuando estaban en tableros separados separados, prefabricados, y todos funcionaron a la perfección.
Haciendo exactamente las mismas conexiones en una PCB y no puedo hacer que el multiplexor se comunique con el microcontrolador. No hay respuesta en absoluto. Hice una gran cantidad de problemas para solucionar el problema.
Incluso quité el chip del multiplexor de mi tablero y lo puse de nuevo en un tablero externo (el que funcionaba antes). Luego conecté esa ruptura a mi VCC y GND y al multiplexor SDA y SDL pads en la PCB ... y ... tada vuelve a funcionar ... En caso de que el chip fuera malo, probé algunos, todos se comportaron de la misma manera. Probé el PCB con y sin un plano de tierra debajo del multiplexor y cerca de las trazas I2C, sin diferencias en los síntomas. El PCB que he creado funciona de otra manera y puedo conectarme desde PC, emitir comandos y hacer todo lo que esperaría de mi prototipo anterior, es solo la funcionalidad I2C que no funcionará.
Me veo obligado a llegar a la conclusión de que los rastros de mi PCB están de alguna manera tan mal encaminados que están interfiriendo entre sí. Antes de que intente rediseñar y tengo otro conjunto de tableros inútiles enviados a mí, esperaba preguntar a los expertos aquí si podría señalar cuál es un error estúpido en mi diseño de PCB. Por razones de IP y de confidencialidad, no puedo mostrarle todo el esquema, pero tengo una captura de pantalla de los rastros desde el Atmega hasta el multiplexor:
¡Gracias de antemano por la ayuda!