En mi sistema, estoy usando I2C y me doy cuenta de que bajo una pesada carga de interrupción (de otras fuentes), la comunicación I2C se interrumpe fácilmente. ¿Es este el comportamiento esperado para I2C? Habría esperado a pesar de la interrupción de la carga, aún estaría bien ya que I2C no es exactamente una interfaz de tiempo crítico, el reloj está provisto de datos.
Actualización:
El procesador es STM32. Las interrupciones se deben a ADC, no puedo deshabilitar las interrupciones durante los eventos de lectura, por lo tanto, debo encontrar una solución donde pueda hacer que la comunicación i2c sea más estable. El STM32 es maestro y el esclavo es otro dispositivo (acelerómetro).
Update2:
Cuando conecto un analizador lógico al reloj con un cable volador pequeño, el problema desaparece. Curiosamente, no hay carga de interrupción, la escritura de lectura funciona bien, cuando hay carga de interrupción, no lo hacen. Sin embargo, si adjunto la sonda al reloj, la lectura y escritura también funcionan bajo la carga de interrupción. Creo que hay un problema de capacitancia en alguna parte.