i2c Fast-Mode Overclock

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i2c Fast-Mode Overclock

1,567 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by neilt6 on Tue May 14 22:33:17 MST 2013
This isn't an LPC specific question, but what are the risks of running an i2c bus faster than some of the peripherals are rated to handle? I've got an LPC11U35 connected to two PCA9952's (Max 1Mhz), a MAX17048G+ (Max 400khz), and an LM75B (Max 400khz). I tried cranking the bus speed up to 1MHz, but nothing changed. All the the devices seem to work just fine. I'm not sure how to check if any clock stretching is happening...
Labels (1)
0 Kudos
4 Replies

1,286 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by farid69 on Mon Jul 01 23:09:55 MST 2013

HI


I have a overclock on lpc2378 up to 116MHZ but lpc23xx datasheet talk about CCLKmax=72MHZ.


<span style="font-family: Roboto, sans-serif;"><span style="font-size: 14px;">what are the risks? the lpc2378 is a little warm in this clock but work just fine for a long time .</span></span>


 


0 Kudos

1,286 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by NXP_Paul on Fri May 17 12:32:24 MST 2013

The problem with mixing the clock speeds on the bus is that the you don't really know what's going to happen to the 400kHz capable devices when they see the 1 MHz signals on the bus.  You are probably violating setup times and other I2C bus specifications for the 400kHz devices, so you don't really know how they're going to react to these out-of-spec conditions.
Even though the probability for encountering a problem may be low, I would not recommend it for a production system.

0 Kudos

1,286 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by neilt6 on Wed May 15 18:10:34 MST 2013
Cool, thanks! I tested the parts for a while and they seemed to work ok, but this is for a production system so I probably won't risk it. Currently 400khz is too slow for my required refresh rate, so I'll either have to reduce the refresh rate or consider running the bus at two different speeds. Is it possible to run at two different speeds without any additional components? For instance, slowing down the bus to 400khz to communicate with the LM75B or MAX17048G+, but leaving it at 1MHz otherwise?
0 Kudos

1,286 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by NXP_Paul on Wed May 15 12:35:00 MST 2013

Clock stretching will not occur with device like the PCA9952 or the LM75B since they do not have the ability to do so.  For example, if you look at the block diagram of the LM75B, it shows the SDA signal as bidirectional, while the SCL signal is an input only.  I cannot comment on the MAX device.
Generally, you won't experience any problems, but there are a couple of things to consider:
1. The I2C devices that are fast mode compliant are only tested at 400kHz, so operation at 1 MHz is not guaranteed.  My experience has been that a well designed device will just not acknowledge its address when the clock speed is too high, but again, there are no guarantees.
2. The I2C fast mode plus spec allows using smaller pull-up resistors so that the rise time requirements of the FM+ spec can be met.  The devices that are not FM+ compliant will not be able to sink the additional current.  If the resistor values are not lowered, you may be violating the 120ns max rise time spec (this will depend upon your bus capacitance).
My suggestion is that you do not violate the I2C bus specifications, since the behavior of the I2C devices is not guaranteed.  You can do a few things:
1. Run the bus at 400 kHz
2. Run the I2C clock to the PCA9952 at 1MHz, and the other devices at 400kHz.  Use a device like the PCA9646 to isolate the FM+ from the FM I2C devices.

-paul

0 Kudos