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.

[参考译文] BQ79616-Q1:BQ79616 UART 通信问题

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1428480/bq79616-q1-bq79616-uart-communication-issue

器件型号:BQ79616-Q1
主题中讨论的其他器件:BQ79616

工具与软件:

嗨、TI 专家!

我们使用 bq79616 afe 开发了我们的 BMS。 bq79616直接通过 UART 与 STM32微控制器进行通信。 它可确保满足所有硬件要求、例如添加逻辑电平转换器。

MCU 上电后、唤醒序列启动、AFE 现在唤醒。 这通过测量 DVDD 上的电压来确认、即我们将在 DVDD 上获得1.8V 电压。

UART 的波特率设置为1Mbps。我们使用 UART 接收中断从 Bq79616响应中获取数据。 唤醒过程结束后、我们执行自动寻址。 以下是自动寻址命令:

0xD0 0x03 0x43 0x00 0xF9 0xD4 //步骤1虚拟广播写入以同步 DLL

0xD0 0x03 0x44 0x00 0xFB 0xE4 //步骤1虚拟广播写入以同步 DLL

0xD0 0x03 0x45 0x00 0xFA 0x74 //步骤1虚拟广播写入以同步 DLL

0xD0 0x03 0x46 0x00 0xFA 0x84 //步骤1虚拟广播写入以同步 DLL

0xD0 0x03 0x47 0x00 0xFB 0x14 //步骤1虚拟广播写入以同步 DLL

0xD0 0x03 0x48 0x00 0xFE 0xE4 //步骤1虚拟广播写入以同步 DLL

0xD0 0x03 0x49 0x00 0xFF 0x74 //步骤1虚拟广播写入以同步 DLL

0xD0 0x03 0x4A 0x00 0xFF 0x84 //步骤1虚拟广播写入以同步 DLL

0xD0 0x03 0x09 0x01 0x0F 0x74 //步骤2通过广播写入 CONTROL1=0x01来启用自动寻址模式

0xD0 0x03 0x06 0x00 0xCB 0x44 //阶跃3通过电路板总数进行环路设置每个电路板的 DIR0_ADDR。 (我们只连接了单个器件)

0xD0 0x03 0x08 0x02 0x4E 0xE5 // STEP 4广播先将所有内容作为堆栈器件写入

0x90 0x00 0x03 0x08 0x01 0xD2 0x1D //步进5 Totalboard = 1、因此将器件设置为基底和栈顶(COMM_CTRL=0x01)

0xC0 0x03 0x43 0x00 0xFD 0x14 //步骤6虚拟广播读取以同步 DLL。

执行此步骤后、我们没有收到来自 BQ79616的任何响应。 问题可能是什么?  

上述步骤是使用 DSO 和逻辑分析仪验证的。

图1 -逻辑电平转换器

图2 -唤醒信号(DSO)

图3 -唤醒信号(逻辑分析仪)

图4 -自动寻址(DSO、紫色 MCU Tx、黄色- bq79616 Rx)

图5 -自动寻址(逻辑分析仪)

上面提到的意见已附上、供你参考。

请您对此问题作出宝贵的答复。

此致

Ibrahim  

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

    Ibrahim,

    附件为逻辑分析仪日志、其中显示了使用 UART 向一个 BQ79616成功执行自动寻址序列。 确保 WAKE ping 和开始通信之间的时序足以让电路板在通信开始之前完全唤醒。 此外、发送两个唤醒 ping 有时是必要的、并且可能会有所帮助。

    此致、

    e2e.ti.com/.../0456.Communication_5F00_with_5F00_one_5F00_616.sal

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

    尊敬的 Benjamin:

    我们使用两次唤醒 ping 来尝试该代码、还将唤醒 ping 和开始通信之间的时间增加到了30ms。

    即使发生这些更改、AFE 也不会向 MCU 发送确认。

    附加了图像以供参考。

    可能是什么问题。 等待您对相同问题的宝贵响应。

    此致

    Ibrahim

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

    Ibrahim,

    您能给我发送一个您正在使用的硬件的映像吗? 我正在尝试诊断您的电缆/跳线连接是否正确、如果您可以显示我可能会有所帮助。

    此致、

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

    尊敬的 Benjamin:

    AFE 和 MCU 位于同一块板上。 MCU 与 IS AFE 之间的 UART 不采用非板载连接。

    由于 MCU 以3.3V 电压和5V AFE 通信电压运行、因此我们在 MCU 和 AFE 之间使用了逻辑电平转换器。

    我已附上原理图片段供您参考。

    等待您的宝贵响应。

    谢谢。此致  

    Ibrahim  

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

    Ibrahim,

    您能否探测 CVDD 以确保其保持在规格范围内? CVDD 为通信供电。 此外、您编写的代码是否适用于 EVM 等其他器件? 您可以发送整个 Saleae 日志吗?

    此致、

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

    尊敬的 Benjamin:

    我检查了 CVDD、它在5V 电压下正常工作。 我们使用了100k 上拉电阻器、这可能是问题吗。 我们是否应该在 RX 和 TX 线路上设置更强的上拉电阻器。

    我们尚未在其他器件或 EVM 上检查它。

    我已经附上 Saleae 日志供您参考。

    谢谢、此致

    Ibrahim

    e2e.ti.com/.../salaee-log.zip

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

    Ibrahim,

    Saleae 日志看起来不错。 我不认为发送的命令是问题。

    我想知道 AFE RX 线路上的电压是否足以作为命令写入器件。 如果可能、您可以获得 RX 引脚的示波器屏幕截图吗?

    此致、

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

    嗨、Benjamin、

    CVDD 确切为5V、DVDD 在唤醒 ping 启动后为1.79V。

    此外、为了验证命令、我们尝试切换 TSREF 引脚、这也能正常工作。

    只有 AFE 的 TX 引脚无法输出任何确认。

    • 请注意、正如我之前所附的原理图所示、我们在 MCU 和 AFE 之间使用逻辑电平转换器。
    • 这与此问题有什么关系吗?

    希望您在这方面提供宝贵的建议。

    谢谢。此致  

    Ibrahim

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

    Ibraham,

    您可以尝试在原理图上取消填充 R18。 我注意到、不建议对 TX 上拉、EVM 也不对其上拉。

    此致、

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

    尊敬的 Benjamin:

    我们在参考手册启发的示例代码中添加了以下两行:-

    WriteReg (0、OTP_ECC_DATAIN9、0x00、1、FRMWRT_ALL_W);
        WriteReg (0、OTP_ECC_TEST、0x00、1、FRMWRT_ALL_W);

    在先前的自动寻址阶段、我们并未写入这些寄存器、但在包含这些线后、我们开始从 AFE Tx 线的 AFE 获取响应。 在 TI 提供的示例代码中、对 OTP_ECC_DATAINx 寄存器进行虚拟广播写入以同步 DLL。 但是在软件参考手册中、他们对 OTP_ECC_TEST 寄存器进行了虚拟广播写入以同步 DLL。

    现在、在我们移除这两条线之后、它仍然运行得很好。 这两个寄存器是否强制只写入一次。

    这两个寄存器可以解决我们的问题吗?或者它还可以包含更多内容吗?

    请求您对相同问题的宝贵答复。

    谢谢  

    此致

    Ibrahim

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

    Ibrahim,

    如果这解决了您的通信问题、则很可能会解决。 这些写入有助于同步设备、以便它们可以识别彼此的数据。 您的其中一个设备可能已被解同步到足够程度、运行额外的同步可使它们保持在线路中。   

    此致、