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.

AM335x Beaglebone Black EEPROM

Dear TI

I am using the bbb with the latest software available from your link now i want to access the 24LC32A eeprom device so that i can store some data in that memory

now i have i2c code my question 

  • may i know the slave address for this device 24LC32A.?
  • if it is 0x50 i am getting error that the device or resource is busy may i know what is your software doing to keep it busy 
  • additionally i checked using i2c-tools. bellow is the output.
  • may i know what the 0x34 slave address is for i mean for which IC ?

Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- UU -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- 34 -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Regards

Nick

  • I will forward this to the software team.
  • The BBB EEPROM slave address is 0x50 (or 80 decimal).

    I suspect that removing the baseboard_eeprom portion of the device tree (shown below and copied from ) would stop Linux from making it unavailable for your attempts to use i2c command line tools.

    &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins>;

        status = "okay";
        clock-frequency = <400000>;

        tps: tps@24 {
            reg = <0x24>;
        };

        baseboard_eeprom: baseboard_eeprom@50 {
            compatible = "at,24c256";
            reg = <0x50>;

            #address-cells = <1>;
            #size-cells = <1>;
            baseboard_data: baseboard_data@0 {
                reg = <0 0x100>;
            };
        };
    };

    You could probably do something like the following to do a quick and dirty device tree mod.

    bitbake -c devshell virtual/kernel

    In the devshell ...

    dtc -I dtb ../../../work/am335x_evm-linux-gnueabi/linux-processor-sdk/4.4.12+gitAUTOINC+3639bea54a-r22d/build/arch/arm/boot/dts/am335x-boneblack.dtb > /tmp/temp.txt

    Delete the eeprom from the /tmp/temp.txt device tree file then create a test.dtb file.

    dtc -I dts -O dtb -o /tmp/test.dtb /tmp/temp.txt

    Reminder: You have to ground test point 4 TP4 to enable writes to the BBB EEPROM.

    I don't have any comments on your other questions (and don't plan to follow this thread but I saw your message and thought the info above would be useful).

  • I forgot to paste the "copied from" text:
    build/arago-tmp-external-linaro-toolchain/work-shared/am335x-evm/kernel-source/arch/arm/boot/dts/am335x-bone-common.dtsi
  • I also suspect that you may want to keep the current device tree and just use the benefits of the "standard" configuration. For example; you might try accessing "/sys/class/i2c-dev/i2c-0/device/0-0050/eeprom".