Is I2C available from the 40-pin low speed connect?


#1

I found 2 I2C interfaces in the 40-pin low speed expansion connector, marked as I2C0_SCL_1V8, I2C0_SDA_1V8, I2C2_SCL_1V8 and I2C2_SDA_1V8 in schematic. But when I measured these pins without connecting to any thing, I2C0_SCL_1V8 shows a 118KHz wave, and other pins just kept high (1.8V). also when I executed i2cdetect -r 0, nothing showed on the I2C0_SDA_1V8 pin.

I assume this is abnormal for an I2C bus, so what should I do to enable at least I2C0? I notice the pull up resistance R235-R238 are not connected, does it matter?

I’m using the latest kernel/u-boot/l-loader/atf codebase from github, and enabled CONFIG_I2C_CHARDEV for user space programming.

thanks!


#2

It’s all hooked up in hardware and the device tree lists 5 I2C buses but I doubt it has ever been integration tested.

A clock at 118KHz sounds OK (depends how you measured it but basic speed I2C has a 100Khz clock).

Normal behavior for I2C would be for the pins to be steady until you run i2cdetect, at which point you would see short bursts of activity on the SCL/SDA pins and then, when i2cdetect completes, it goes quiet again.

Regarding the resistors, I haven’t checked the poplar schematic specifically, but 96Boards devices are usually designed with external pull ups since it makes designing level shifting circuits on the top board easier.


#3

the 118KHz signal is always showed on I2C0_SCL_1V8, even without running i2cdetect, that seemed abnormal… but I don’t have a datasheet to check the GPIO pinmux…
I counted the pin number for several times, and I think I read the schematic correctly…
so if anyone can share a successful experience with this I2C interface, that would be a great help…

thanks!


#4

[xeric] xeric http://discuss.96boards.org/u/xeric
November 17

danielt:

oplar schematic specifically, but 96Boards devices are usually
designed with external pull ups since it makes designing level
shifting circuits on the top board easier.

the 118KHz signal is always showed on I2C0_SCL_1V8, even without running
i2cdetect, that seemed abnormal… but I don’t have a datasheet to check
the GPIO pinmux…

Agree, this is abnormal.

I counted the pin number for several times, and I think I read the
schematic correctly…
so if anyone can share a successful experience with this I2C interface,
that would be a great help…

I have the opposite, an unsuccessful experience. I did a quick test
using the
v4.9 kernel
which will shortly replace the ‘latest’ branch.

I am unable to probe anything on the poplar I2C bus nor was I able to
see anything at all on the pins.


#5

A couple of patches to fix some problems with I2C landed in the v4.9 kernel this week (as a result of your question): https://github.com/Linaro/poplar-linux/commits/poplar-4.9

I haven’t yet had a chance to test them but, rather than wait for me (it could be a while) I decided just to pass on the news.

The v4.9 kernel should build and install using mostly the same instructions are v4.4. Only major difference I came across is that the numbering of the eMMC/SD cards will reverse (so in v4.9, mmcblk0 is SD card and mmcblk1 is eMMC)… you may need to tweak a few settings before you build the installer.