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.

[参考译文] IWR6843AOPEVM:I2C 从器件对地址做出响应、但所有读取都返回 0x00

Guru**** 2867890 points

Other Parts Discussed in Thread: IWR6843AOPEVM, MMWAVEICBOOST, IWR6843AOP

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1638977/iwr6843aopevm-i2c-slave-responds-to-address-but-all-reads-return-0x00

器件型号: IWR6843AOPEVM
主题中讨论的其他器件: MMWAVEICBOOSTIWR6843AOP

您好:

我尝试使用毫米波 SDK 03.06.00.00-LTS 使 IWR6843AOPEVM 发挥 I2C 从模块的作用。 硬件设置是一个通过 MMWAVEICBOOST 连接的 IWR6843AOPEVM、在主机侧、我将通过 FTDI 接口访问总线、位置为 FTDI://0x0451:0xfd03/2。 我的目标是从 MSS 固件提供一个非常简单的 I2C 从器件接口、以便外部主机可以检测总线上的雷达、读取几个状态字节、以及写入/读回一个字节。

我修改了标准的 xwr64xx AOP 毫米波演示、以启用 I2C 引脚多路复用 、初始化 I2CSlave、使用 7 位地址打开它、并公开小型响应缓冲区/寄存器映射。 主机可以在总线上看到器件、雷达在主机对其进行寻址时正确响应、因此 I2C 外设看起来至少在地址检测级别处于活动状态。

问题是、尽管器件在其 I2C 地址正确响应、但每次读取仅返回 0x00。 我尝试了几种固件端方法,包括  作为寄存器映射接口的 I2CSlave_read_write () 和使用 I2CSlave_read () 和 I2CSlave_write () 的更简单的命令/响应模型,但结果总是相同的:在总线上检测到设备,但所有读回都是零,写也不能读回。 我还修补了 SDK 从驱动程序以调整重复启动处理、删除了一个可疑的双 I2CGetData () 路径、并预加载第一个 TX 字节、但这些都不会改变行为。 此时、器件似乎足够活动以作为 I2C 从器件进行响应、但从固件缓冲器到外部 I2C 主器件的实际数据路径无法正常工作。

您之前是否在 IWR6843AOP /xwr68xx 上看到过此行为、其中器件作为 I2C 从器件正确响应、但始终返回零数据? 如果是、您是如何解决的?

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

    您好、Jose、

    我们正在查看您的查询。 请给我们一些时间来答复。

    谢谢、
    Saransh Gautam