This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/PROCESSOR-SDK-AM437X: I2C on Industrial IDK

Part Number: PROCESSOR-SDK-AM437X

Tool/software: Linux

According to the AM437x IDK User's Guide, Section 2.5.2, the I2C addresses start at address 0x50.

I can open /dev/i2c-0, but I cannot access the device at address 0x50 using IOCtl commands. I can access address 0x59, but I cannot read the device at address 0x59.

At what I2C address is the EEPROM (Section 2.5.3) on the AM437x IDK?

Is the EEPROM accessible using i2c_smbus_read_byte_data() or IOCtl?

  • Hello Phillip,

    Did you make any modifications to the software or hardware of your AM437x IDK? What version of software are you using?

    Regards,
    Nick
  • ti-processor-sdk-linux-am437x-evm-05.02.00.10
    We made an SD card from the prebuilt images to boot the EVM.
    What can I determine from i2cdetect -F 0? or i2cget? or i2cdump?
    Is the I2C address 0x50 or 0x59? I cannot tell.
  • Hello Phillip,

    I am sorry for the long delay. Future responses will be faster. Are you still working on this problem?

    Take a look at the am437x0idk-evm.dts device tree file in your sdk at sdk/board-support/linux-x.x.x.../arch/arm/boot/dts

    under &i2c0, I see at24@50 listed at register address 0x50. I can find the documentation for the at24@50 device tree node by going to sdk/board-support/linux-x.x.x.../Documentation/devicetree/bindings and "grep"ing for the compatible value used in the device tree file. I found it in eeprom/eeprom.txt . That bindings documentation file confirms that the reg value is indeed the i2c address of the EEPROM.

    In the command line, "i2cdetect -r 0" yields a UU for 0x50, which indicates that a driver is communicating with the device at that address.