cancel
Showing results for 
Search instead for 
Did you mean: 

How to detect IDLE in SMBUS Multi-master?

iguffick2
Associate III

I'm using SMBus on an STM32F303. The application has the STM32 as host, SMBUS charger and SMBUS battery, the charger and STM32 can act as master.

I need to infrequently read from the battery and want to check for IDLE before initiating a transfer.

I've read the reference manual and it is a little vague.

There is a hardware bus idle detection. But this seems to set an interrupt flag. It's not clear where this is cleared.

For instance the flag will be set some ms after the line goes idle, but if I wait 30s then want to begin a transfer is the line still idle? Does it get cleared by SCL/SDA line activity?

What is the correct way to detect idle before beginning any transfers in a multi-master scenario?

0 REPLIES 0