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:I2C 在块写入期间进行 NAK 操作

Guru**** 2466670 points
Other Parts Discussed in Thread: BQ76942

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1551012/bq76942-i2c-is-nak-ing-during-block-writes

器件型号:BQ76942


工具/软件:

TI 专家、

Im 使用 Renasas da14592 微控制器和 Im、尝试 通过 I2C 与 BQ76942 芯片进行通信。 我读取后没有出现错误、执行单字节写入时没有错误、但执行多字节写入时、我得到了第二个字节的 NAK。

我已经观看了 TI 提供的微控制器代码示例视频、并下载了示例代码以确保没有遗漏内容。 然后、我调整了示例代码以与 da14592 微控制器配合使用。  例如、选择 7 位寻址 (0x08)、而不是 8 位 (0x10/0x11)。

我附上了逻辑分析仪的 2 个屏幕截图、 一个屏幕截图显示了多字节写入不成功、其中我将子命令 0x0001 写入寄存器 0x3E 和 0x3F。 另一个 屏幕截图显示了一个成功的多字节读取、其中我从 0x40 开始读取整个缓冲区。 但是、缓冲区始终有垃圾数据 、因为我 无法成功写入任何子命令。

我无法理解为什么第一个字节获得 ACK、而不是第二个字节的任何原因。 如有任何建议或帮助、我们将非常感谢您、如果您需要更多信息、请告诉我、谢谢您!

 

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

    您好、Caden、

    请给我一些时间进行讲解、并就此向您回复。

    此致、

    Rohin Nair

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

    您好、Caden、

    您能否确认您的微控制器器件是否支持时钟延展?是否已启用该功能? 此外、您是否可以尝试启用 CRC 进行数据错误检查?

    我已重试您的命令顺序、我的目的似乎没有错误 我在下面粘贴了这个。 您能和我分享一下完整的逻辑分析仪文件吗? 我想查看您在此之前输入的所有命令。 还可以尝试不同的子命令吗? 您现在所做的操作不允许写入、因为它与器件型号相关。

    此致、

    Rohin Nair

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

    在您建议打开 CRC 后、我发现问题 是我的芯片版本是 BQ7694202、它默认情况下已经使用 CRC。 将我的 i2c 协议固定为使用 CRC 并发送数据(如下所示)后、它开始返回确认。 感谢您的帮助!

    START→[ADDR|W]→[REG]→DATA0→CRC0→DATA1→CRC1→STOP

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

    您好、Caden、

    我很高兴它现在正在工作!

    此致、

    Rohin Nair