cancel
Showing results for 
Search instead for 
Did you mean: 

I2C Clock stretching

craig239955_st
Associate II
Posted on April 10, 2007 at 08:17

I2C Clock stretching

3 REPLIES 3
craig239955_st
Associate II
Posted on May 17, 2011 at 09:40

Hi,

How do I have to deal with a slow device on the I2C bus. The device (P69V664, a 8052 alike µController) can operate on 100KHz, but when receiving data, the µC needs some time to store this data.

The I2C specs tell me that the bus can be paused by holding the CLK signal low (better known as clock strtching ..). This does not seems to work.

The STR912 datasheets tell me that the clock is held low as soon the I2C is transmitted. So what can I do else to pause the I2C traffic.

Luc vercruysse

anis
Associate II
Posted on May 17, 2011 at 09:40

Hi Luc,

Have you tried to put some delay just after receiving ACK event from slave?

Best regards,

STARM

craig239955_st
Associate II
Posted on May 17, 2011 at 09:40

Thank you for response.

I did try this and it works. Of course this slows down the troughput of the I2C. The 2 processors do communicate all the time and there are quiet a lot of bytes that are sended. As I handle the I2C communication in interrupt, this will slow down my program. So this is not an option for me.

I changed to SSP to communicate between the 2 processors, this works OK an is faster !

Luc Vercruysse