Esta es la Scopeshot del flanco descendente:
¿Cómo deshacerse de las reflexiones en el borde descendente de esta línea SDA?
Los bordes no monotónicos en la línea I 2 C SDA rara vez son un problema. Durante la parte principal de cualquier transferencia, los datos son sincronizados por la línea SCL, y esto ocurre solo cuando la línea SDA es estable.
La única vez que un borde descendente en SDA es significativo es cuando se usa para indicar la condición de "inicio" I 2 C: borde descendente en SDA mientras SCL es alto.
Hay una situación en la que esto podría presentar un problema. Algunos dispositivos requieren una condición de "inicio repetido", un "inicio" que no está precedido por una "parada", para implementar correctamente ciertas operaciones de lectura.
Un fallo durante este inicio repetido podría ser interpretado por el dispositivo como un "stop" seguido de un "inicio", que lo dejaría en el estado incorrecto.
La falla que se muestra es realmente pequeña, y como dice Wouter, muchos dispositivos I 2 C incorporan disparadores Schmitt (histéresis) para mitigar fallas como esta.
Cualquier tipo de filtrado de paso bajo también ayudará. Una resistencia de serie de bajo valor (del orden de unas pocas decenas de ohwios) ubicada cerca del dispositivo maestro, junto con la capacitancia distribuida del bus, formará dicho filtro. Experimente para encontrar el mejor valor para su aplicación.
Agregue una resistencia en serie de 22 ohmios o 33 ohmios. Simule la línea en Hyperlynx si es necesario.
Edit: veo que a alguien no le gusta mi respuesta aquí.
Creo que mi respuesta es correcta. Las reflexiones en la señal como la presentada anteriormente pueden eliminarse significativamente cuando se agrega una resistencia de terminación en serie que disminuye el tiempo de subida / caída del borde, lo que hace que la reflexión sea más pequeña. En caso de rebasamientos, también se puede agregar un diodo Schottky en una línea conectada al suministro, pero esto debería estar presente dentro de un chip que usa I2C.
Uno también debe estar atento a los límites de voltaje (IH, IL) para el I2C (y en general las entradas CMOS. La resistencia en serie demasiado alta puede causar problemas cuando no está emparejado con el valor correcto de un pull-up.
Lea otras preguntas en las etiquetas i2c signal-integrity reflection edge