Regarding I2C Bus Clear

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
YuMa_1534086
Level 7
Level 7
Distributor - Macnica (Japan)
500 replies posted 250 sign-ins 10 likes received

Hello

 

When PSoC operates as I2C master, SDA is stuck LOW by reset etc.

I know that this issue is solved if PSoC sends clocks.

 

But I2C specification has the following description.

==========================================

If not, then use the HW reset or cycle power to clear the bus.

==========================================

 

Does this mean that sending clocks may not improve it?

If user definitely want to improve this problem, does they need to use the HW reset or cycle power?

 

Best Regards.

Yutaka Matsubara

0 Likes
1 Solution
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

As you have already posted "usually" sending forced clock fixes the problem,

https://community.cypress.com/t5/PSoC-4-MCU/Regarding-PSoC4-I2C-reset-for-I2C-slave-hang-up-SDA-is-l...

 

but in case the I2C component or IP of the slave is stack in unknown state and not monitoring the bus any more,

in other words, when I2C component of the slave is not functioning as I2C any more,

probably a hardware reset will be the last resort.

 

A few years ago,  in a POC project of sensor hub, I programmed something like below

when an I2C_Slave is not responding

send forced clock

if still it is not responding

restart whole system

 

moto

View solution in original post

0 Likes
2 Replies
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

As you have already posted "usually" sending forced clock fixes the problem,

https://community.cypress.com/t5/PSoC-4-MCU/Regarding-PSoC4-I2C-reset-for-I2C-slave-hang-up-SDA-is-l...

 

but in case the I2C component or IP of the slave is stack in unknown state and not monitoring the bus any more,

in other words, when I2C component of the slave is not functioning as I2C any more,

probably a hardware reset will be the last resort.

 

A few years ago,  in a POC project of sensor hub, I programmed something like below

when an I2C_Slave is not responding

send forced clock

if still it is not responding

restart whole system

 

moto

0 Likes
YuMa_1534086
Level 7
Level 7
Distributor - Macnica (Japan)
500 replies posted 250 sign-ins 10 likes received

Moto-san.

 

I posted this question because I saw a symptom that I2C communication did not improve even if I sent clocks.

SDA returned to HIGH but I2C communication has failed.

 

So I wanted to confirm whether only sending clocks could definitely solve this issue.

 

I would use the HW reset or cycle power to ensure that this issue is avoided.

 

Thank you for your response.

 

Best Regards.

Yutaka Matsubara