I2C

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(I2C addresses)
(Powering additional I2C devices)
 
(4 intermediate revisions by one user not shown)
Line 11: Line 11:
 
which provides a spare power regulator. But keep in mind that it is steered by i2c.
 
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
 
So under bad conditions things like internal esd protection diodes
of the added hardware pull down the I2C lines so that
+
of the added hardware pull down the I2C lines so that
 
the system cannot communicate with the power regulator
 
the system cannot communicate with the power regulator
 
and cannot power things on (including the additional I2C device)
 
and cannot power things on (including the additional I2C device)
 
but also backlight, etc. The Freerunner will not boot.
 
but also backlight, etc. The Freerunner will not boot.
 +
An example of wiring additional devices is here:
 +
 +
<gallery>
 +
Image:I2C Wiring ext.jpg|I2C and power wiring, the red lines are the console rx/tx, which are not needed for I2C.
 +
</gallery>
 +
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 =
 
= Neo1973 =

Latest revision as of 09:19, 4 September 2009

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

[edit] 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.

[edit] 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)

[edit] 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

[edit] 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.

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