cancel
Showing results for 
Search instead for 
Did you mean: 

I2C rise and falltime setting

Sebastian33
Associate II

We have a board with a stm32u5. were VDDIO are connected to 1.8 V and  the I2C bus have pullup to 3.0 V. Some I2C devices uses 3.0 V logic levels and som 1.8 V. 

Between which voltage levels shall i measure the rise and falltime that i enter in cubemx. 

30%->70% of 1.8 V or 3.0 V .

Sebastian33_0-1764232564330.png

We have possibility to turn off and on some devices on the bus that changes the rise and falltime on the bus. Shall then the longer or shorter rise/falltimes be used?

One reason we are asking is that our design engineers wonder why the signal of the clock never is piece wise equal in on and off timing as it is the case with other I2C masters

Sebastian33_0-1764600090994.png

 

17 REPLIES 17

Yes, it is standard regarding the slope, but I'm referring to the on/off timing (purple arrows). They are usually more towards the same timing (1/2) on a I2C clock. The UM10204 is with the 0.6uS minimum Thigh taking into account the timing above 70% level and that is with this signal on the limit of being compliant (green arrows). If the on/off timing (purple) was more equal then the high pulse would be more in compliance.

FNiel1_0-1767804845754.png

 

FNiel.1
Associate III

See answer to Andrew.

> They are usually more towards the same timing (1/2) on a I2C clock.

The specification I showed above shows the requirement is about 1/3 vs 2/3, not 50/50. You are chasing a problem that doesn't exist (1V8 vs 3V3 voltage level difference notwithstanding).

If you feel a post has answered your question, please click "Accept as Solution".
FNiel.1
Associate III

I'm totally inline with that the standard does not state any requiremnent for the on off ratio. We are making low power devices here and would like to have the lowest possible pull-up current and still be over 0.6uS Thigh. If the ratio could be closer to 1/2 on/off ratio then we would not need to raise the current.

Anyway, let's see if we can get this with the I2C timing register as proposed by Mholl.2

To be 100% compatible with the standard (UM10204 from NXP, ex Philips), Your rise time on SDA and SCL should be < 300ns (from 30% to 70% Vdd), if You are using Fast-mode:

MHoll2_0-1767858207120.png

MHoll2_1-1767858281029.png

 

 

 

FNiel.1
Associate III

You are right and we are also on the limit there and more 1/2 on off relation wont help there.


@FNiel.1 wrote:

We are making low power devices here and would like to have the lowest possible pull-up current


But you still need sufficient pull-up current to give a usable rise time.

Remember that the pullups only pass current while the line is low...

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

Thanks by manuallyh adjusting SCLL bits im able to get closer to 400 kHz.