I'm getting sporadic I2C bus errors with no terminating ACK
I'm using STM32H743 I2C1 and FW as of december 2021.
I'm testing in continous loop PMBus communication (straight I2C master interface).
Appr. all 8h I'm getting a sporadic bus error.
A good transaction looks like:
this is a register read (addr-len=1) for a two-byte response.
my bus error transaction (some bus, devices, etc):
My software detects the bus error and stops in sw breakpoint (after returning from ISR).
I see different strange characteristics in this picture:
1) the clock stretch of the PSU is shorter than the good TA.
2) the returned register content of the PSU is 0xffff; this is suspicious on the protocol level, as this is a strange slinear16 value.
3) there is no second master ack after the last byte and no end marker. Both ack=1 and end-marker would be a function of the master STM, or am I mistake?
My only reponse to this incident is to drop the data and reinitialize the stm32-hal-i2c (deinit/init). But I suspect this event to also inpact the stability of my code, as I do get sporadic hard-faults when I run this software without debugger support.
Any explanations/ideas/proposals for improovements?
Thanks a lot,
Bernward