No meu sistema, estou usando o I2C e percebo que, sob uma carga pesada de interrupção (de outras fontes), a comunicação do I2C é facilmente interrompida. Esse comportamento é esperado para o I2C? Eu esperava que, apesar da interrupção do carregamento, ainda estaria tudo bem, já que o I2C não é exatamente uma interface de tempo crítico, o relógio é fornecido com dados.
Atualizar:
O processador é STM32. As interrupções são devidas ao ADC, não posso desativar as interrupções durante os eventos de leitura, portanto, preciso encontrar uma solução para tornar a comunicação i2c mais estável. O STM32 é mestre e o escravo é outro dispositivo (acelerômetro).
Update2:
Quando conecto um analisador lógico ao relógio com um pequeno cabo voador, o problema desaparece. Curiosamente, não há carga de interrupção, a leitura e gravação funciona bem; quando há carga de interrupção, elas não funcionam. No entanto, se eu anexar a sonda ao relógio, a leitura e gravação também funcionará sob carga de interrupção. Eu acho que há um problema de capacitância em algum lugar.