<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BernardBi</id>
	<title>ArmadeusWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BernardBi"/>
	<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Special:Contributions/BernardBi"/>
	<updated>2026-04-28T10:54:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10342</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10342"/>
		<updated>2011-12-22T20:55:52Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27_DEV I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27 I2C busses&lt;br /&gt;
:&amp;quot;I2C&amp;quot; and &amp;quot;I2C2&amp;quot; are the busses names from the iMX27 datasheet&lt;br /&gt;
:&amp;quot;I2C-0&amp;quot; and &amp;quot;I2C-1&amp;quot; are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27_DEV I2C busses&lt;br /&gt;
:&amp;quot;I2C&amp;quot; and &amp;quot;I2C2&amp;quot; are the busses names from the iMX27 datasheet&lt;br /&gt;
:&amp;quot;I2C-0&amp;quot; and &amp;quot;I2C-1&amp;quot; are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area (256 bytes) 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10341</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10341"/>
		<updated>2011-12-22T20:55:32Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27 I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27 I2C busses&lt;br /&gt;
:&amp;quot;I2C&amp;quot; and &amp;quot;I2C2&amp;quot; are the busses names from the iMX27 datasheet&lt;br /&gt;
:&amp;quot;I2C-0&amp;quot; and &amp;quot;I2C-1&amp;quot; are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27_DEV I2C busses&lt;br /&gt;
&amp;quot;I2C&amp;quot; and &amp;quot;I2C2&amp;quot; are the busses names from the iMX27 datasheet&lt;br /&gt;
&amp;quot;I2C-0&amp;quot; and &amp;quot;I2C-1&amp;quot; are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area (256 bytes) 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10340</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10340"/>
		<updated>2011-12-22T20:52:47Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27_DEV I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27 I2C busses&lt;br /&gt;
&amp;quot;I2C&amp;quot; and &amp;quot;I2C2&amp;quot; are the busses names from the iMX27 datasheet&lt;br /&gt;
&amp;quot;I2C-0&amp;quot; and &amp;quot;I2C-1&amp;quot; are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27_DEV I2C busses&lt;br /&gt;
&amp;quot;I2C&amp;quot; and &amp;quot;I2C2&amp;quot; are the busses names from the iMX27 datasheet&lt;br /&gt;
&amp;quot;I2C-0&amp;quot; and &amp;quot;I2C-1&amp;quot; are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area (256 bytes) 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10339</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10339"/>
		<updated>2011-12-22T20:52:21Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27 I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27 I2C busses&lt;br /&gt;
&amp;quot;I2C&amp;quot; and &amp;quot;I2C2&amp;quot; are the busses names from the iMX27 datasheet&lt;br /&gt;
&amp;quot;I2C-0&amp;quot; and &amp;quot;I2C-1&amp;quot; are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27_DEV I2C busses&lt;br /&gt;
I2C and I2C2 are the busses names from the iMX27 datasheet&lt;br /&gt;
I2C-0 and I2C-1 are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area (256 bytes) 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10338</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10338"/>
		<updated>2011-12-22T20:40:51Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27_DEV I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27 I2C busses&lt;br /&gt;
I2C and I2C2 are the busses names from the iMX27 datasheet&lt;br /&gt;
I2C-0 and I2C-1 are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27_DEV I2C busses&lt;br /&gt;
I2C and I2C2 are the busses names from the iMX27 datasheet&lt;br /&gt;
I2C-0 and I2C-1 are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area (256 bytes) 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10337</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10337"/>
		<updated>2011-12-22T20:40:38Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27_DEV I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27 I2C busses&lt;br /&gt;
I2C and I2C2 are the busses names from the iMX27 datasheet&lt;br /&gt;
I2C-0 and I2C-1 are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27 I2C busses&lt;br /&gt;
I2C and I2C2 are the busses names from the iMX27 datasheet&lt;br /&gt;
I2C-0 and I2C-1 are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area (256 bytes) 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10336</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10336"/>
		<updated>2011-12-22T20:40:26Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27 I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
&lt;br /&gt;
List of all hardware devices on APF27 I2C busses&lt;br /&gt;
I2C and I2C2 are the busses names from the iMX27 datasheet&lt;br /&gt;
I2C-0 and I2C-1 are the corresponding linux device names&lt;br /&gt;
&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area (256 bytes) 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10335</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10335"/>
		<updated>2011-12-22T20:32:49Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27_DEV I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area (256 bytes) 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10334</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10334"/>
		<updated>2011-12-22T20:31:39Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: Added I2C devices list for APF27_DEV&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==APF27_DEV I2C chips==&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  DS1374 Dallas Semiconductors&lt;br /&gt;
                  32 bits time of day counter (1s increment)&lt;br /&gt;
                  I2C ADDRESS 0x68                  &lt;br /&gt;
&lt;br /&gt;
                  MAX5821L MAXIM&lt;br /&gt;
                  Dual 10bits DAC&lt;br /&gt;
                  I2C ADDRESS 0x38                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  AD9889 Analog Devices&lt;br /&gt;
                  HDMI I/F&lt;br /&gt;
                  I2C ADDRESSES&lt;br /&gt;
                  * Main ctrl register 0x39&lt;br /&gt;
                  * Spare packet memory (31 bytes) 0x38 (default)&lt;br /&gt;
                  * EDID memory area 0x3F (default)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10333</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10333"/>
		<updated>2011-12-22T19:48:50Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* APF27 I2C chips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
* I2C  (I2C-0): &lt;br /&gt;
                  none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): &lt;br /&gt;
                  24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10332</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10332"/>
		<updated>2011-12-22T19:48:12Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: Added APF27 I2C bus devices information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==APF27 I2C chips==&lt;br /&gt;
* I2C  (I2C-0): - none&lt;br /&gt;
&lt;br /&gt;
* I2C2 (I2C-1): - 24AA02 Microchip Technology&lt;br /&gt;
                  256X8 EEPROM&lt;br /&gt;
                  I2C ADDRESS 0x50 to 0x57 (bits 0-2 are don&#039;t care)&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10329</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=I2C&amp;diff=10329"/>
		<updated>2011-12-19T19:36:40Z</updated>

		<summary type="html">&lt;p&gt;BernardBi: /* Links */  updated http://www.codesink.org/eeprog.html link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize the informations to use the I2C bus on our boards.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The I2C bus is a simple &amp;amp; widely used two wires synchronous bus. It has been developped by [http://www.nxp.com Philips (now NXP)].&amp;lt;br&amp;gt;&lt;br /&gt;
The standard frequency is 100kHz but 400kHz devices can be found (for example on the i.MX).&lt;br /&gt;
Single and multi masters are supported. Only the single master configuration will be discussed here.&lt;br /&gt;
&lt;br /&gt;
The bus is based on two signals: SDA and SCL.&lt;br /&gt;
* SDA: bidirectional line for data&lt;br /&gt;
* SCL: unidirectional line for the clock (provided by the master)&lt;br /&gt;
&lt;br /&gt;
Details can be found in the specification [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf here.]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration==&lt;br /&gt;
By default the I2C bus is activated in the Armadeus distrib.&lt;br /&gt;
If you need to deactivate it, take a look at the linux menuconfig (make linux26-menuconfig)&lt;br /&gt;
&lt;br /&gt;
==Linux user space C code==&lt;br /&gt;
&lt;br /&gt;
Kernel source has a good documentation on using i2c bus through /dev with C program, it can be found [http://www.mjmwired.net/kernel/Documentation/i2c/dev-interface in kernel source directory Documentation/i2c/dev-interface].&lt;br /&gt;
&lt;br /&gt;
You can find a sample code under &#039;&#039;target/packages/ch7024ctrl/&#039;&#039; of the Armadeus distribution ( [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/packages/ch7024ctrl/ or here through SF&#039;s SVN browsing] )&lt;br /&gt;
&lt;br /&gt;
==Tested I2C chips==&lt;br /&gt;
* RTC: DS1327&lt;br /&gt;
* DAC: [[Max5821]]&lt;br /&gt;
* Video: [[TV_Output | CH7024]] [[DVI_/_HDMI|AD9889 &amp;amp; TFP410]]&lt;br /&gt;
* Misc: [[APF51 PMIC|WM8311]]&lt;br /&gt;
* EEPROM:&lt;br /&gt;
&lt;br /&gt;
==I2C bus logic 5v level adaptation (if necessary)==&lt;br /&gt;
if you want to use I2C devices which can not work with the I2C voltage of the APF board, a level translator has to be used, for example a PCA9306 from NXP:&lt;br /&gt;
* Connect pin 1 to the local GND&lt;br /&gt;
* Connect pin 2 to the local I2C iMX supply voltage&lt;br /&gt;
* Connect pin 3 to the SCL output of the APF&lt;br /&gt;
* Connect pin 4 to the SDA input/ouput of the APF&lt;br /&gt;
* Connect pin 7 and 8 together and the add a 200K resistor in parallel to a 100nF capacitor to GND&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and the SCL line (pin 6)&lt;br /&gt;
* Connect a pullup of 1.7K between your I2C device supply and and the SDA line (pin 5)&lt;br /&gt;
&lt;br /&gt;
For more details, take a look at the [http://www.nxp.com/acrobat_download/datasheets/PCA9306_2.pdf PCA9306 datasheet].&lt;br /&gt;
This chip is the one that can be mounted by users on the APF9328DevFull board.&lt;br /&gt;
&lt;br /&gt;
As a low-cost alternative, a level shifter can be built with a pair of N-channel mosfets (such as a BS170). See the [http://www.nxp.com/acrobat_download/applicationnotes/AN97055.pdf Application Note 97055].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://mbouget.club.fr/i2c-faq.html Vincent Himpe I2C FAQ mirror]&lt;br /&gt;
* [http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf I2C specification]&lt;br /&gt;
* [http://www.lm-sensors.org/wiki/man/i2cset I2C Linux test tools of Lm-Sensors]&lt;br /&gt;
* [http://www.codesink.org/eeprog.html eeprog, a tool to program I2C EEPROMs]&lt;br /&gt;
* http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C]]&lt;/div&gt;</summary>
		<author><name>BernardBi</name></author>
	</entry>
</feed>