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/TDA2EVM5777:TDA2xx EVM 5777

Guru**** 2547320 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/783775/linux-tda2evm5777-tda2xx-evm-5777

器件型号:TDA2EVM5777

工具/软件:Linux

您好!

我想在 TDA2xx EVM 5777的 Linux 上使用 i2c 总线

我正在尝试 i2cdetect 实用程序。

i2cdetect 显示了2个总线、0和2。

但是,当我运行 i2cdetect 0时,它不会显示总线上的任何设备。

此外、我们尝试使用 i2cdump 转储 EEPROM 数据、但它不显示有效数据。

请 建议。

谢谢、此致、

Archit Adwant

----------------------------------------------------------------

root@dra7xx-EVM:/usr/bin i2cdetect -l
I2C-0 i2c OMAP I2C 适配器 I2C 适配器
I2C-2 I2C OMAP I2C 适配器 I2C 适配器
root@dra7xx-EVM:/usr/bin i2cdetect 0
i2cdetect:警告:无法使用 SMBus 快速写入命令、将跳过一些地址
i2cdetect:警告! 该程序可能会使您的 I2C 总线混乱
继续? [Y/N] y
0 1 2 3 4 5 6 7 8 9 A b c d e f
00:
10:
20:
30:
40:
50:
60:

----------------------------------------------------------------

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试执行以下操作

    i2cdetect -y -r
    i2cdump -f -y

    Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Nikhil、

    i2cdetect -y r 0工作正常。
    但我使 GPIO 扩展器变得很忙。
    i2cdump -f -y 0 0x50返回0xff。 它应返回 EEPROM 数据。
    此外、无法设置 TI TDA2xx EVM 5777上的用户 LED
    在下面登录。
    请提供建议。
    此 EVM 上是否有任何 i2c 参考?

    谢谢、此致、

    Archit Adwant

    ----------------------------------------
    root@dra7xx-EVM:~# i2cdetect -y -r 0
    0 1 2 3 4 5 6 7 8 9 A b c d e f
    00: ------------ ------------ ------
    10:------------ ------ UU ---------------- --
    20:UU UU ---------- ------------ ----------
    30:------------ ------------ ------------ --
    40:------------ ---- 48 ---------------- ----
    50:50 ---------- ---- UU UU UU 5b --------
    60:------------ ------------ ------------ --
    70:------------ ------
    root@dra7xx-EVM:~# i2cdump -f y 0 0x50
    i2cdump:无效的数字"y"
    root@dra7xx-EVM:~# i2cdump -f -y 0 0x50
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    10:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    20:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    30:FF 关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    40:FF 关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    50:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    60:FF 关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    70:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    80:FF 关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    90:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    A0:FF ff ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    B0:FF 关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    C0:FF 关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    D0:FF 关断关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    E0:FF 关断 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    F0:FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    root@dra7xx-EVM:~# i2cset -y 0 0x20 0x0f0
    i2cset:无法将地址设置为0x20:设备或资源占线
    ----------------------------------------
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    必须使用 i2cset -f 标志来强制执行写入。
    这是一个 fun_leds.sh 脚本、我使用它来测试 DRA7xx EVM 上的用户 LED


    ===================================================================================================================================
    #help
    i2cset -f -y
    #对于简单器件(SMBus)、数据字节将是用于写入操作的两个字节
    #SO、 =

    MASK=$((0xF))
    set_led(){
    num=1美元
    mask=$(($mask &~(0x1 <<$num)))


    unset_led(){
    num=1美元
    mask=$(($mask | 0x1 <<$num))


    I2C_cmd (){
    Val=$(($mask << 4))
    Val=$(($val | 0xF))
    Val =`printf 0x%x $val`
    i2cset -f -y 0 0x20 $val 0xff


    I2C_cmd
    ` I in `seq 0 3 μ A
    操作
    Set_led $i
    I2C_cmd
    休眠500
    unset_led $i
    完成
    I2C_cmd
    ===================================================================================================================================


    由于器件未正确响应、您很可能从 EEPROM 获得0xff。
    您可以通过显式执行 i2cget -f -y 0 0x50 0x0来确认这一点
    如果出现故障、则表明设备没有响应。

    它可能会丢失电源或使能信号。


    此致、
    Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。
    f 选项起作用、可以切换 LED。
    EEPROM 读取仅在某种程度上适用于第一个字节。 无法读取剩余的字节
    我想2cset 需要一个16位的字。 它仅使用8位字节失败。

    谢谢、此致、
    Archit Adwant