I²C-Bus for Linux
Hi and welcome to the I²C-Bus for Linux Homepage!
News (or olds, as you like)
I have implemented the original i2c driver that you can find now in the
Linux core, but have not been actively developing it over the last years due
to other obligations and limited time (sadly). Nevertheless, the project is very
active, as you can see in the LKML, and the lm-sensors group has taken over
development, so please ask there for chip support and other driver information.
Here is a link to the group
and the i2c subsystem documentation page that explains the driver structure.
Intro: What's it do?
The I²C-Bus is a simple 2-wire bus that allows micro-controllers and
computers to connect to specialized IC's like videotext-decoders, DTMF generators,
and many others. There is also a wide range of other I²C-bus chips
that offer a more wide-range application like ad/da converters, switches,
digital potentiometers et. al. Most of the frame grabber and TV tuner cards
on the market use the bus, as another example.
The Software
- Finally! The driver has made it into the current development kernel:
If you download a kernel >= 2.3.34, you get it nicely integrated in the
main source tree :)
The CVS tree is of course in sync with the kernel sources, and should
only be used if you need a driver for older kernels (2.2,2.0), or if you'd
like to experiment - you'll find the latest changes there before they
are stable enough to enter the kernel.
- The CVS-Sourcetree is up - thanks to the LM-Sensors developers! You can
get the latest sources of the i2c bus driver from their cvs-Server.
For details look at their download page!
If you want to have write access to the repository, please contact Philip
Edelbrock
phil@netroedge.com.
What needs to be done? - TODO:
- New: Rolf Offermanns
has a Terratec Radio card and needs a driver for it! If anyone volonteers
to write it, he donates a radio card - contact either me or him for it.
The Hardware
In former versions of this project page, I divided adapters into two groups:
Those using the bit-banging algorithm and others, which use the PCF 8584 I²C-Bus
controller. This division is still true, but needs additions, as other hardware
types have been implemented by various people, like support for SMBus-controllers,
or for the SAAA7146.
Therefore, here's a new division into several groups that show different
application areas of adapters:
- Commercial I2C Controllers
You don't want to solder on your motherboard? Then these are for you....
- Totalphase produces an I²C/SPI Host Adapter that connects to the USB bus and comes with Windows and Linux software libraries. For more information have a look at their website.
- Multimedia adapters
Have a look at your graphics card - I bet you find a tuner, eeprom or some other i2c-device.
- BTTV
-based boards and other cards supported by the video4linux
developers, they are currently porting the existing code to support my
i2c modules.
- System Management
- LM-Sensors Have a look at the lm-sensors package, there are
already a lot of hardware types (i.e. motherboards) supported - go to
their homepage
for details.
- Experimental adapters
For all the experimenters, there are several ways to get new busses to your box:
- Philips parallel port adapter The device used by Philips, consisting
of one TTL chip and some resistors to convert the signals for the parallel
port.
- LM75-demoboard sent out by National Semiconductors. Here's a patch by David Armstron for this little device. The patch is against 2.4.1, but should be easily merged with other versions as well.
- PCF 8584 on EPP port A clever design developed by Johan
Van Driessche: A PCF 8584 interface adapter sitting on an EPP port,
note his additional line drivers that result in better pulse shapes.
If you'd like to build this beast, here's
the schematic. You may also read some comments on the circuit: a
word from the designer.
- Pybe's PCF8584 ISA-Bus adapter:http://www.IAE.nl/users/pybe/weather/isa8584.htm
- Hans
Berglund wrote the driver for the Elektor board
- Velleman K8000 Velleman
K8000 parallel port interface
- ELV parallel port adapter
This list is by no means complete - tell me if you want to see something
mentioned.
Documentation
Here you'll find some useful documents regarding the driver and the i2c-bus
in general.
Links of interest
In this section, you'll all sorts of links to different places around the
world, that deal with the same topic. Just what makes Hypertext worthwile
:)
Although the driver is GPL'ed, donation of hardware is recommended, as I
have only limited resources to test the code.
Projects
-
Matthias Prinke developed a PCB-Version
of the parallel port adapter, you can get the postscript files of the layout
here.
He also wrote a program to display text on a LCD-display over a PCF 8574
(lcdtext-1.1.tgz)
-
- Useful newsgroups for more general electronic questions:
For other hardware-related stuff, have a look into my
bookmarks
last modified: 28 12 99
Look at related sites