I2C

From Openmoko

Revision as of 09:19, 4 September 2009 by Andi (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The I2C(pronounced I square Cee) is a simple communication standard intended to move small amounts of data a few inches between chips. Please See I2C Wikipedia page for additional information.

Contents

I2C addresses

Note that I2C addresses are 7 bit. The last bit, which is not part of the address, indicates whether this is a read or write operation. So "0001 000x" is 0x8, not 0x10.

Powering additional I2C devices

You have to be careful about selecting the power source for additional I2C devices. It is a temptation to use TP1702 which provides a spare power regulator. But keep in mind that it is steered by i2c. So under bad conditions things like internal esd protection diodes of the added hardware pull down the I2C lines so that the system cannot communicate with the power regulator and cannot power things on (including the additional I2C device) but also backlight, etc. The Freerunner will not boot. An example of wiring additional devices is here:

The power is stolen from the aux switch. Some uboot versions (not the NOR uboot) have problems with this setup (depends on i2c hardware, I guess also depends on decoupling capacitors)

Neo1973

On the Neo1973, we currently use the following addresses on the I2C bus:

Device I2C address
PCF50606 0001 000x
WM8753L 0011 010x
LM4857 1111 100x

I2C Testpoints

From: Andy Green <andy@openmoko.com>
To: openmoko-devel <openmoko-devel@lists.openmoko.org>
Date: Wed, 02 Jul 2008 09:11:03 +0100

If you pop the top facia, I2C is available from two testpoints near the debug connector. GND is not on a testpoint there but the mounting holes at the bottom and you can grab it from a capacitor under the battery on the right of the picture too.

I2C-testpoints.png

Personal tools

The I2C(pronounced I square Cee) is a simple communication standard intended to move small amounts of data a few inches between chips. Please See I2C Wikipedia page for additional information.

I2C addresses

Note that I2C addresses are 7 bit. The last bit, which is not part of the address, indicates whether this is a read or write operation. So "0001 000x" is 0x8, not 0x10.

Powering additional I2C devices

You have to be careful about selecting the power source for additional I2C devices. It is a temptation to use TP1702 which provides a spare power regulator. But keep in mind that it is steered by i2c. So under bad conditions things like internal esd protection diodes of the added hardware pull down the I2C lines so that the system cannot communicate with the power regulator and cannot power things on (including the additional I2C device) but also backlight, etc. The Freerunner will not boot. An example of wiring additional devices is here:

The power is stolen from the aux switch. Some uboot versions (not the NOR uboot) have problems with this setup (depends on i2c hardware, I guess also depends on decoupling capacitors)

Neo1973

On the Neo1973, we currently use the following addresses on the I2C bus:

Device I2C address
PCF50606 0001 000x
WM8753L 0011 010x
LM4857 1111 100x

I2C Testpoints

From: Andy Green <andy@openmoko.com>
To: openmoko-devel <openmoko-devel@lists.openmoko.org>
Date: Wed, 02 Jul 2008 09:11:03 +0100

If you pop the top facia, I2C is available from two testpoints near the debug connector. GND is not on a testpoint there but the mounting holes at the bottom and you can grab it from a capacitor under the battery on the right of the picture too.

I2C-testpoints.png