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.

[参考译文] BQ76942:子命令 lower 和 upper byte read back 总是返回零,而不是预期的子命令 adress。

Guru**** 2555630 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1065965/bq76942-subcommand-lower-and-upper-byte-read-back-always-returns-zero-instead-of-expected-subcommand-adress

部件号:BQ76942

当尝试读取 DASATUS5 (0x0075)子命令时,回读总是返回0x00。 我希望较低和较高字节(3E 和3F)的回读应该包含该地址。 此问题与我测试的所有子命令有关。 直接命令运行良好,没有问题,但子命令给我带来了困难。

此图显示了一个10秒的运行,我在其中读取了警报状态,以检查初始化是否完成,然后等待2秒,再写入上字节和下字节并执行回读。

写入较低的字节。

首先读回。

~6秒后读回。

最后读回

我需要帮助了解直接命令为何看起来有效... (可以读取电压,温度等),但为什么 BQ76492似乎没有记录 DASATUS5子命令的读数。

此致 Fabian Wärn

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

    法比安,你好

    阅读   《BQ769x2软件开发指南》的第2节-子命令将很有用。

    数据缓冲区0x40的读数丢失。 此外,您不需要向3E 和3F 写入数据,您可以用同一条写入数据发送75和00。

    请按照指南中详细说明的步骤操作。 如果您仍有问题,请告诉我们。

    此致,

    路易斯·埃尔南德斯·萨洛门

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

    我无法读取缓冲区(已尝试,所有字节上只收到0x00),因为3E 和3F 的回读表示命令未就绪。 根据 sluby1a 第3.1节的规定,读取数据时需要重新读取,以查看操作是否完成。 如果“回读”返回0xFF,则表示未就绪,或者写入的子命令在就绪时按命令。 但对我来说,它只返回0x00。

    我尝试同时编写3E 和3F,但没有成功。 如图所示。

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

    法比安,你好

     您能在~2毫秒后从传输缓冲区读取吗? 技术 参考手册中描述的方法是一种方法。

    您是否尝试使用 了《BQ769x2软件开发指南》中描述的方法? 将子命令写入3E/3F,等待2毫秒,然后从数据缓冲区0x40读取?

    此致,

    路易斯·埃尔南德斯·萨洛门

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

    你好,路易斯! 我已经按建议完成了,但没有成功。 缓冲区(字节1上的 CRC 除外)为零。

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

    您好,法比安,

    我认为问题在于 CRC 已启用,但您在命令中没有使用 CRC 编写0x3E/0x3F。  

    此致,

    马特

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

    是的,这是个问题,我对《儿童权利公约》手册的解释有误! 非常感谢你的帮助。

    法比安致问候