Tengo un microcontrolador (LPC1768FBD100) y estoy usando I2C para configurar un conmutador de Internet de 3 puertos (KSZ8863RLLI). He hecho unas 100 tablas hasta ahora y todas han funcionado bien, excepto una. Por alguna razón, la configuración del switch (realizada a través de la interfaz I2C) está fallando. Al sondear las señales de control con un osciloscopio, de repente cobró vida. En una inspección más cercana, parece que agregar la capacitancia de la sonda (15pF) a la línea del reloj es suficiente para que todo funcione.
Si entiendo el bus I2C correctamente, oficialmente no necesita un valor mínimo de capacitancia de línea para que funcione, pero ¿hay algún tipo de valor mínimo de capacitancia para un funcionamiento confiable?
======= Especificaciones / Notas =======
Velocidad de reloj I2C = 370kHz.
I2C pull up resistors = 4k7.
LosPull up están ubicados cerca del microcontrolador.
I2C Clock Length = 91mm.
Longitud de datos I2C = 78 mm.
No hay fuentes de ruido cercanas que puedan estar interfiriendo con el reloj y ambas trazas se ejecutan junto a un plano de tierra continuo.
======= Pruebas =======
Intenté reducir la velocidad del reloj a 100kHz, no funcionó.
Probé 1k, 4k7, 10k, 47k resistencia a la tracción. Ninguno funcionó
Intenté agregar 8pF de capacidad de conexión a tierra al pullup del reloj 4k7, no funcionó.
Intenté agregar 16pF de capacidad de conexión a tierra al pullup del reloj 4k7, el sistema funciona y arranca de manera confiable.
Cuando reviso el reloj y las líneas de señal de datos, no hay signos de timbre. Sin embargo, creo que potencialmente podría haber algún sonido que el 15 pF de la capacidad de la sonda está ocultando.
========= INFORMACIÓN ACTUALIZADA =========
Estamos utilizando la implementación de hardware de I2C integrada en el LPC1768FBD100
No creo que sea un problema mecánico. He reflejado todas las uniones y cuando pruebo la línea, lo hago en un punto de prueba, no en una conexión de soldadura.
Con respecto al ruido y la conversación cruzada, mi intuición me dice que no es el problema, ya que las trazas no son tan largas (~ 80 mm), se ejecutan adyacentes a un plano de tierra continuo y estoy usando pull ups de 4k7. Aunque podría estar equivocado.
Formas de onda. Notaciones añadidas a cada captura de pantalla.
TrazasI2C.Elenrutamientonoesmío.Heredéestodeotroingeniero.