I2C2_SDA and I2C2_SCL pins 23,24 on the expansion port


I am attempting I2C on expansion port (beagleboard C3).

I have similar setup mentioned in:

"On the beagleboard I connected to the i2c-2 pins on the expansion
connector (pin 1 for 1.8v, pin 23 for sdc, pin 24 for scl, pin 27 for
ground). For the I2C slave device, I connected to the i2c on the UART
header (pin 10 for ground, pin 14 for 5v, pin 12 for sda, pin 16 for
scl). "

The issue here is: After connecting I2C slave I don't see any change
in the logic analyzer.

Any cues?


What size are your pullup resistors on the SCL and SDA signals?


Thank you for replaying. My apologies for the late reply.

SDA & SCL lines of expansion headers are connected to PIN 1 of
expansion header through 4.7 K resistors.

With above arrangement when we power on the beagleboard, 1.8V was
observed on I2C2 lines of expansion headers. However, without external
pullup resistors (as above) we were still getting the same 1.8V on
I2C2 lines.

Additional info:

Would like to add one more important detail.

I am using Android on Beagleboard, followed all steps mentioned in:

I have seen posts where developers comment some feature is working for
them after some tweaking, etc. and since there are many beagleboard
ports, sometimes it becomes difficult to understand for which port the
feature is working.

Thank you,

If you are getting a 1.8V level without the pullups, then you do not have the correct MUX settings on the I2C lines. They are most likley set to a GPIO mode. You need to set up the pin muxing to enable the I2C modes on those pins. I suggest you do a search on the discussion group for help on this issue. It has been discussed many times in the past.



Hi Am Shyam, working with Mohan...

Adding the Pin Mux configuration details..

We have set the pin mux configuration to work in Mode0 (that is the
I2C mode),This has been set in the mux.h/ mux.c and beagle.h files as
mentioned in a lot of forums. So we tried this for configuring pin mux
in the kernel. Pin mux configuration is also changed during U-boot..
Alas.. we dont see anything change on the Logic analyzers for the I2C2
Pins. The I2C tools pops out a connection timed out error..

Can we read the OMAP pin configuration register for I2C2 SDA and SDC
on run time in linux command line shell .. if that is possible then we
can write/read to these registers on run time to check if they are
configured correctly?
Does nasm work for omap or any other assembly code specific to OMAP?


I posted the info about the i2c-2 before. Please read this URL:

Thank you for reply.

After going through many discussions in this group and documents from
beagleboard.org, ti.com, we made following changes to source, which
did not result in any success.


Finally when tried with Angstrom, I2C on expansion port worked!
This linux port has all the changes built-in. Importantly, i2c tools
was already ported which helped quickly to verify the I2C
functionality. Thank you, Angstrom guys!

Our earlier attempt with 'Android on Beagleboard' needs to be reviewed
for I2C related changes.
May be on some other day.

Gerald & Eric,
Thank you for your timely comments & help.

Best Regards,