I2C Clock Speed

400kHz means the clock speed for a complete high low clock sequence.  So 2.5uS per cycle, 1.25uS per high or low clock edge.

Pull Up Resistors

Minimum current that all devices must be able to sink = 3mA

This sets the lower resistance limit on the pull-up resistor.

1K7 for a 5V system

1K1 for a 3.3V system

Using 2K2 resistors for 5V and 3V3 I2C busses is a common choice.

Maximum Capacitance

The pull up resistance together with the bus capacitance determines the rise-time of the bus wires. I2C sets a limit of 1 microsecond for the rise time defined between two voltage levels. It can be met in 5V systems if the RC product of the bus pull up resistor and total bus capacitance is less than approx 1.6 microseconds.

Bus Comms

7bit address, receive bytes

i2c_7bit_rx

7bit address, transmit bytes

i2c_7bit_tx

Repeat Start Condition

i2c_repeat_start

 

 

USEFUL?
We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.
Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.