Using I2C on the BeagleBoard

I'm trying to connect something to the BeagleBoard over the I2C
interface but I'm not exactly sure how to do it. I've worked with
microcontrollers, linux and serial communication before, but haven't
worked with I2C or custom kernels. Any information or reference
material will be very helpful, and I'll return the favor by writing a
full how-to document on the subject.

Here are a few of my questions so far:

1) It looks like I need to enable "I2C2_OMAP_BEAGLE". Where do I do
this? Is this already done on the Angstrom demo image? Is this in the
kernel before compiling?

2) Voltage levels. Can I use a transistor to simple increase the logic
levels from 1.8v to 5v? For example, connect the 1.8v I2C header to
the transistor base and send 5v running through the Collector/
Emitter. Otherwise, would the logic level converter from SparkFun
( work?

3) How do I access the I2C interface from code and/or the command
line? I can write C, I'll probably be writing this project in Python
or Ruby.

Is there anything else I'm missing or should be aware of? Please help
fill in the blanks. Think about what somebody would need to know to
get I2C working from start to finish. Otherwise I might revert to
interfacing the I2C device with my Arduino and then connecting that to
the Beagle Board. I'd like to avoid this, since the Beagle Board has
I2C built-in.


Hope this thread can be of help:

Otherwise, let me know so to see how we can help you.

We have an I2C board connected and working. =) Maybe, something could
be reused of what we have done.


Alex B.

Cool, that answers my kernel question, which I'll try to compile

After I compile the kernel and get the system running, how do I access
the I2C interface from code or command line? Will I need any pull-up
resistors or can I connect everything directly? If pullups are needed,
how and where should I connect them?


Hope this thread can be of help:

Thanks, that should help with compiling the kernel. Once I do that,
how do I access the I2C interface from code or command line? Will I
need any pullup resistors or can I connect my device directly to the

You will need to add pullups to 1.8V. The I/O on the board is 1.8V only.