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.

[参考译文] BQ76PL455A-Q1:无法在 Bq76pl455A-Q1和 TMS570ls432 (UART)之间进行通信

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/628577/bq76pl455a-q1-unable-to-communicate-between-bq76pl455a-q1-and-tms570ls432-uart

器件型号:BQ76PL455A-Q1

我需要帮助、我尝试在相关 TI 论坛上搜索我的问题、但无法真正解决。 我已经为这个问题付出 了很长时间的努力 、无法真正找出问题所在。

我将在这里描述所有内容:

我正在使用 BQ76Pl455A-Q1制作 BMS 原型、以实现被动平衡和监控。 该电路板是根据 EVM 设计定制的、当我使用 UART 转 USB 模块与电池监控板连接时、可以使用 Bq76pl455 GUI 正常运行。

我面临的问题是、当我尝试将此板与 TMS570LS432 Launchpad 连接并运行 BQ76PL455示例代码时、我为电池监控获取的值为零。 无法从监控板接收任何值。

我甚至尝试使用 TMS570BMS 示例代码、在该示例代码中、我 注释了主动平衡部分、并允许其仅用于监控电池电压、并且在采样 PL455时代码卡在 while 环路中。

> while (g_ui32SCIRxReady = 0U){}

我正在附加我正在使用的代码链接、请查看。 建议可能会出现一些错误、我尝试使用波特率、并将其设置为250k、这与 GUI 波特率相同。

我还从微控制器(TMS570LS432)中删除了 R8寄存器、如下所述:

https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/282196?tisearch=e2e-sitesearch&keymatch=%20user:85123#pi239031350filter=all&pi239031350scroll=false

使用 BQ76pl455示例代码时:

我尝试读取 第4.2节 bFrame 数据、但无法理解它包含的内容、除了提到的24字节数据+数据包标头+ CRC 部分的注释

数据字节为零。

我基本上无法从 BQ76PL455A-Q1接收 PL455采样值

此外、您能否共享 TMS570BMS/BQ76PL455A-Q1 GUI 的源代码?

非常感谢您的帮助。 我尝试使用 TI 论坛解决问题、但到目前为止、这个问题仍未解决。

谢谢、

Sandeep。

http://www.ti.com/product/BQ76PL455A-Q1/toolssoftware

http://www.ti.com/tool/TIDM-TMS570BMS  

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

    Sandeep、

    很明显、您是否能够通过 UART 转 USB 适配器将 PL455 EVM 直接连接到 PC 并接收数据? 如果是、您能否确认转换器板使用/需要哪些信号以及哪些信号连接到 EVM? 这些信号是否与 Hercules 器件使用的信号相同、即简单 Tx 和 Rx? 此外、您能否再次检查是否已将 TMS570 Tx 连接到 PL455 Rx、并将 TMS570 Rx 和 PL455 Tx 连接到类似器件。

    如果您确认硬件连接良好、 您是否可以在信号上放置一个示波器并使用示波器对其进行监控、以查看 MCU 的 Rx 缓冲器中接收到的日期是否真正代表了 PL455 EVM 发送的内容? 此外、您能否确认发送到 PL455以请求将数据发送回 MCU 的数据包信息/命令?

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

    我还会整理一下卡盘响应-确定 TX 和 RX 线的范围并建立这些连接对于确保您实际发送数据非常重要。 您还应检查以确保该部件已由 WAKEUP 引脚唤醒。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我能够使用 PL455 EVM 与 USB 到 UART 模块进行通信。
    我使用的引脚是 Hercules 电路板所需的相同引脚、简单 Rx 和 Tx 引脚。 这些导线如您所述进行连接、即 TMS570 Tx 连接到 PL455 Rx、而 TMS570 Rx 连接到 PL455 Tx。

    还使用3V3电压源提供唤醒信号、该电压源可确保 Vref 提供2.5V 电压、晶体管也会开启以提供5V 输出。 因此、我认为它唤醒了 IC、硬件连接看起来也是正确的。

    我尝试仅通过 TMS570发送同步采样的代码、它向我发送了一个 bFrame、现在 bFrame 中有一些数据位。 因此、我可以说它与 TMS570进行了通信。
    我尝试使用以下代码:

    while (1){
    >nSent = WriteReg (1、3、0xFFFFFFE0、4、FRMWRT_SGL_NR); //选择16节电池、所有 AUX 和温度
    > nSent = WriteReg (1、2、0、1、FRMWRT_SGL_NR); //发送同步采样和存储命令
    > nSent = WriteReg (1、2、0x20、1、FRMWRT_SGL_R); //发送读取存储的值命令
    >nSent = WaitRespFrame (bFrame、57、0);// 54字节数据+数据包标头+ CRC、0ms 超时

    > for (incCount = 1;incCount < 17;incCount ++){
    >> cellSample =(bFram[incCount*2-1]<<8|bFram[incCount*2])* 0.000076295;
    >> printf ("%f"、cellSample);
    >}


    它生成了我的16节电池电压、但它们都不匹配实际电池电压、而且3节电池显示零电压。
    您能帮我理解为什么我没有收到正确的 bFrame [132]?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否测量 以查看读数是否与   IC 引脚上的电压匹配?

    我  还会 检查以确保 TX 上拉、 并且 RX/TX/VIO 的逻辑电平与 MCU RX/TX 匹配。  只是 一种有时 会被忽视的低悬挂水果。

    我 看到 您已写入器件 ID 1 -我假设您 正在使用两个器件(器件0 和器件1)。 自动寻址 从器件0开始。

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

    尊敬的 David:

    我测量了 IC 引脚上的电压、它们不同于我在使用 MCU 板时接收的电压。

    电压电平也相同、因为我使用 MCU 的3V3引脚作为 BQ IC 的 VIO 上拉 Rx/Tx 引脚。

    我仅使用一个器件、我在您的注释后尝试将其寻址到器件0、但仍提供相同的结果。

    我尝试使用 GUI 读取电压、结果是、

    (PS:电芯7和8引脚存在问题,我们暂时避免了这种问题)

    当我运行代码时、(使用器件0地址):

    (PS:带有 bFrame 的可变标签和使用 bFrame 打印电压的控制台)

    我无法获得与 GUI 所获得的电压类似的电压。