I am using MCU (L476RG) with PMM240 (power management board) and RRC 2054-2(battery), I am figuring out why SMBus is always busy after sending command to slave, so I captured the waveform when I send command, but I am totally confused, the SMBus address is 0x16(already shifted 1 bit), I found whatever byte I sent(such as 0x01, 0x1c...), I always captured the same waveform as follows(blue line is SDA and yellow line is SCL), and SMBus stays in busy state, how to understand it? many thanks
It looks like the address 0x16 sent by master is correct because 9th bit that is slightly higher than other low bits is the ACK from slave. But then something holds SCK low. It might be the slave that holds it low until it is ready for next byte. Or it might be the master that is unable to send next byte because of software error. The waveforms are quite noisy and glitchy so make sure it is not a signal integrity issue.