I2C

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m
(Powering additional I2C devices)
 
(14 intermediate revisions by 10 users not shown)
Line 1: Line 1:
I2C is a simple communication standard intended to move small amounts of data a few inches between chips.
+
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 [http://en.wikipedia.org/wiki/i2c I2C Wikipedia page for additional information].
See [http://en.wikipedia.org/wiki/i2c wikipedia].
+
 
 +
== 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:
 +
 
 +
<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 =
 +
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.
 +
 
 +
[[Image:I2C-testpoints.png|320px]]
 +
 
 +
 
 +
[[Category:Neo1973 Hardware]]
 +
[[Category:Standard]]
 +
 
 +
<span id="bottom"></span>
 +
{{Languages|I2C}}

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

I2C is a simple communication standard intended to move small amounts of data a few inches between chips. See wikipedia.