4

I have an I2C bus containing only 2 devices: a microcontroller and a Microchip 24LCXXX EEPROM.

In the datasheet of the EEPROM only maximum speed is specified (which is 100 kHz @VDD<2.5 V and 400 kHz @VDD>2.5 V).

The problem is that the microcontroller at the current speed and clock configuration does not support 100 kHz (standard bitrate). The minimum speed attainable is 117 kHz, and using 400 kHz requires hardware modification of pull-up resistors.

Question:
Does I2C only work on standard bitrates: 100 kHz and 400 kHz? Can I use the 117 kHz safely?

Note: I tried it and it works but not sure if it may cause problems later because it is out of spec / standard.

TonyM
  • 21,742
  • 4
  • 39
  • 62
Eng Sam
  • 387
  • 1
  • 9
  • 1
    Does this answer your question? [I2C minimum clock speed and reliability](https://electronics.stackexchange.com/questions/35618/i2c-minimum-clock-speed-and-reliability) – toolic Aug 09 '23 at 11:06
  • 2
    As the datasheet tells you, as long as Vdd > 2.5 V you should be okay. I2C does not have fixed standard "baud rates" as it is a synchronous protocol. – StarCat Aug 09 '23 at 11:06
  • 1
    If this is used to clock the memory itself, then it is deeply problematic. Overclocking EEPROM could lead to data corruption and (depending on technology) even physically damage the part. – Lundin Aug 09 '23 at 11:10
  • @StarCat , that is what I thought , but I wanted to be sure since for example when using code configurators the only supported baud rates are the standard bauds – Eng Sam Aug 09 '23 at 11:25
  • 2
    @Lundin , I am not overclocking the memory , I am only using a non standard baud – Eng Sam Aug 09 '23 at 11:26
  • @toolic , not entirely – Eng Sam Aug 09 '23 at 11:29
  • 3
    There is no 'standard' baud rate for I2C. There are *maximum* I2C clock frequencies, which depend on whether the device supports Standard Mode (100kHz), Fast Mode (400kHz), Fast Mode Plus (1MHz), or High Speed Mode (3.4MHz) - but these are the ceiling limits, not the speed at which the device must operate. Some devices *might* have a minimum speed, but that's non-standard and depends on your specific devices. – brhans Aug 09 '23 at 12:48
  • 2
    @brhans, there are typical bit rates (not baud rates) though that have become de facto standards i.e. a lots of designers gravitate towards them so a large percentage of designs use those speeds. They're not published standards but their use has become standard i.e. typical. – TonyM Aug 10 '23 at 10:19

1 Answers1

2

In short, yes.

You can safely use 117 kHz, as any clock rate can be used as long all devices support it with the required timing parameters.

There is no such thing "standard baud rates" that devices must use, just different modes with a clock frequecy range and timing parameters.

But it means that since the clock rate is over the Standard Mode limit of up to 100 kHz, it means that you are working in the Fast Mode area of specs up to 400 kHz, so technically, you should make sure that the bus rise/fall times etc are within the Fast Mode specification limits.

However, it is unlikely that the EEPROM even cares about clock speed or rise time as long as the rise time is fast enough compared to the clock speed.

Justme
  • 127,425
  • 3
  • 97
  • 261