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.

[参考译文] DRV2605L:错误的 I2C-Address:0x5b (而不是0x5a)

Guru**** 2394305 points
Other Parts Discussed in Thread: USB2ANY, HAPTICS-CONSOLE

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1431846/drv2605l-wrong-i2c-address-0x5b-instead-of-0x5a

器件型号:DRV2605L
主题中讨论的其他器件:USB2ANY触觉控制台

工具与软件:

我们在 PCB 上与其他 i2c 从器件一起使用 TI 芯片 DRV2605LDGS。 根据数据表、这应在地址0x5A 处报告。 在某些电路板上、它在地址0x5B 处报告。 芯片在此处运行良好(通过使用 I2C 工具进行位操作进行基本测试)。 Linux 驱动程序默认不支持此地址。 因此请求的原因。

以下是一些缩小故障原因范围的信息:
-正常工作的芯片和不正常工作的芯片标记相同:32 TI 05L
-显示此错误模式的所有电路板(迄今为止)来自相同的 EMS:
-向 TI 提出的问题:
  o 有没有技术说明为什么芯片报告错误的地址? 是否为特定客户生产了一批地址不同的芯片?

以下信息适用于技术误差分析:
-芯片供电3.3V。
- I2C 电平也是3.3V
-设置的频率为400kHz,较低的频率显示相同的错误模式。
-图像"i2cdetect_0x5a_0x5b.png"显示了总线扫描的 I2C 信号特性。


-文件"i2cdump.txt"显示功能正常的芯片在地址0x5b 处的内存内容。

root@qsxm-mm60:~# i2cdump 1 0x5b
No size specified (using byte-data access)
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1, address 0x5b, mode byte
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: e0 40 00 01 01 00 00 00 00 00 00 00 00 00 00 00    ?@.??...........
10: 00 05 19 ff 19 ff 3e 8e 0c 6c 7e 93 f7 e1 20 80    .??.?.>??l~??? ?
20: 33 94 00 00 00 00 00 00 00 00 00 00 00 00 00 00    3?..............
30: 00 78 d1 5b df 00 00 00 00 00 00 01 91 00 00 00    .x?[?......??...
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00    ..............?.

-图像"i2cdump_analog_digital.png"显示了 I2C 信号的信号曲线示例(模拟采样)。

此致、请提前向您表示感谢

Georg

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

    Georg  

    我们不使用自定义 I2C 地址制作样片。 此器件在0x5a 只有一个地址。  您能否确认驱动程序可以写入 I2C 地址0x5b?

    谢谢

    海龙

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

    嗨、Hailong、

    感谢您的留言。

    我想我不理解你的问题。 您是否认为驱动程序更改了器件的地址?

    在第一张图片"i2cdetect_0x5a_0x5b.png"中、您可以看到总线扫描序列的剪切结果。 地址0x5a 处无确认。 地址0x5b 处是给出答案的 aknowdledge。 可使用逻辑分析仪检测该信号。 这意味着器件将在地址0x5b 上应答。

    如果尝试对器件进行调试、则更改寄存器值、如下所示:

    i2cset 1 0x5a 0x01 0x06 (设置 MODE "Diagnostics"并激活器件)
    i2cset 1 0x5a 0x0C 0x01 (设置 GO 位)

    最简单方法。 这将适用于地址0x5a 上的良好器件以及0x5b 上的不良地址器件。 我很困惑。

    非常感谢

    Georg

    PS:我只是接触,因为我看不到回复。 您已更新外出邮件。 我没有收到任何电子邮件 对不起!

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

    Georg  

    没问题。 让我看看这个问题、看看原因是什么。 我将在一些内部测试后提供反馈。  

    此致!

    海龙

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

    嗨、Hailong、

    与此同时、我有一个更新:我们有更多的器件的地址为0x5b。

    一种情况 我们有一个带地址的器件 0x5e .

    以下是该器件的十六进制转储:

    root@qsxm-mm60:~# i2cdump 1 0x5e

         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef

    00: e0 40 00 01 01 00 00 00 00 00 00 00 00 00 00 00    ?@.??...........

    10: 00 05 19 ff 19 ff 3e ae 2c 6c 7e b7 f7 e4 20 80    .??.?.>?,l~??? ?

    20: 33 8f 37 00 00 00 00 00 00 00 00 00 00 00 00 00    3?7.............

    30: 00 a9 d9 5e df 00 00 00 00 00 00 01 91 00 00 00    .??^?......??...

    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00    ..............?.

    一个其他器件 有一个非常有趣的历史:振动不起作用→使用 i2cdetect 调试→在地址0x5a->连接的另一个电机(已知良好的器件)上响应→电机运行良好→重新连接"原始"电机→无振动功能→使用 i2cdetect 调试、再次→在地址0x5b 上响应

    地址问题的可能原因是否可能是与电机接触问题?

    以下是比较逻辑分析仪数字和模拟信号的详细图像。 一切看起来都正常。 地址上的错误位 不能由信号干扰或速度过高引起 .

    「我知道了 USB2ANY 以使用您的软件进行扫描和检查 Haptics-Console  https://www.ti.com/tool/HAPTICS-CONSOLE

    大家好、谢谢
    Georg

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

    感谢您提供更多信息。 有趣的是、会看到不一致的结果。  如果可能、您能否分享您的原理图? 如果您想对其保密、您可以通过 h-chen@ti.com 给我发送电子邮件。  

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

    我已经向海龙发送了我们的原理图电子邮件


    亲爱的海龙,我有一些消息:

    我们发现我们的电源单元有问题。 如果我插入电缆(见下图红色光标0)、将会施加~1.5V 的小电压。 在系统启动时(按下电源按钮/绿色光标1)、将施加3.3V 的有效电压。  

    如果我为 PCB 提供外部直流电源、则看不到触觉驱动器 IC 具有错误的地址。  他们可能会被无效电压弄得疯了吗? 但我永远不会更改 i2c 地址。

    如果我们解决了电源和 i2c 地址跳频芯片的问题、我会在几周后回来报告。

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

    Georg  

    谢谢。   如果 i2c 地址随电源电压发生变化、则情况会很奇怪。 如果您需要其他信息、请告诉我。  

    此致!

    海龙