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