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:STM32F105VCT6 的 UART 问题

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1528206/bq79616-uart-issue-with-stm32f105vct6

器件型号:BQ79616

工具/软件:

大家好、我正在使用配有 STM32F105VCT6 的 BQ79616 芯片设计 BMS、芯片已成功唤醒、但 STM32 无法接收任何数据、我们使用 1Mbps 的波特率。 有人能在这方面提供帮助吗?

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

    Chan、

    在尝试从器件读取之前、您是否执行自动寻址? 必须先创建栈顶、然后才能进行读取。

    此致、

    Bo

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

    嗨、Benjamin、

    感谢您的答复。


    提供了 STM32 中用于自动寻址的代码片段、请注意、我们使用 stm32f105vct6 直接连接到 bq79616(我们不使用 bq79600 作为通信桥接器)、我们仅使用一个 bq79616 进行 14 节电芯监测、没有任何堆叠器件、我们使用单个器件、并将其设置为基底器件。



    这些是由逻辑分析仪捕获的来自 STM32 的 TX 信号的图片、第一个是指唤醒信号、第二个和第三个是指自动寻址。 bq79616 在接收到唤醒信号 (CVDD 为 5V、DVDD 为 1.8V 且 AVDD 也为 5V) 后唤醒、但 bq79616 的 TX 未对 STM32 做出任何响应。


    上面提供的是 stm32f105vct6 与 bq79616 的连接、我们在它们之间使用逻辑转换器。



    出于测试目的、我们使用 40V 的外部电源为 bq79616 供电、相应地接触 BAT 和 CELL0。 (参考 TI bq79616EVM 原理图)
    e2e.ti.com/.../星期二Green.zipe2e.ti.com/.../BMS0.pdf
    这是唤醒和自动寻址的完整代码以及我们自开发电路板的完整原理图

    此致、
    Chan

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

    目前、我正在尝试使用 STM32 微控制器通过 UART 执行 OTP 编程。

    我已经按照建议的程序OTP_PROG_CTRL操作、包括正确的解锁序列和设置寄存器。 但是、我注意到了 LDOIN 电压保持在 6V 这表明 OTP 编程可能并未实际启动。 根据数据表、我知道 LDOIN 应在有效的 OTP 编程操作期间上升到 8V。

    为了调试此问题、我使用逻辑分析仪验证了来自 STM32 端的 UART 通信、并且可以确认是否通过正确的 CRC 正确传输了解锁和 OTP 编程命令。 但是、我不确定 BQ79616 是实际接收还是接受命令、因为我不会从器件接收到任何 UART 响应(在某些情况下甚至在 OTP 步骤之前)。

    您能否说明 LDOIN 电压将保持在 6V 的可能原因、以及我是否应该检查其他条件或指示器来确认 BMS 器件是否接受了 OTP 序列?

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

    Chan、

    您的通信失败的原因有几个。 我将在这里不按特定顺序介绍它们:

    1) 您的电平转换器或隔离方案未正确传输信号。 检查进入 IC 引脚的信号在可接受的电平范围内的时间是否足够长、以便被识别为通信。

    2) 我看到您的自动寻址方案完全不正确。 最大问题是发送 CONTROL1[ADDR_WR]= 1 只允许下一条命令编辑 DIR0/1_ADDR 寄存器。 在 ADDR_WR 的设置和 DIR0_ADDR 的设置之间启用 TSREF。 等待在自动寻址之后对此类寄存器进行任何配置更改。 此外、在虚拟写入过程中、您正在写入太多的寄存器。 您只需要写入 ECC_DATA1 至 ECC_DATA8。 您正在写入 ECC_DATA9 和 ECC_TEST。  

    至于 OTP 编程、我不建议在解决通信问题之前进行尝试。 您之前已经在该器件中启动过 OTP 编程但没有实现、现在无法再次对其进行编程。

    此致、

    Bo

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

    嗨、Benjamin、

    e2e.ti.com/.../STM_5F00_TX.zip
    e2e.ti.com/.../星期五Yellow.zip
    输出。 我已删除所有不相关的部分、并确保该程序严格遵循所需的步骤。 但是、RX 线路仍然没有接收到任何输入。 请协助确定此问题的根本原因。 所有电源轨均 根据数据表运行:CVDD 为 5V、DVDD 为 1.8V 且 AVDD 为 5V。 也正确遵循了自动寻址过程。 此问题的可能原因是什么?

    此致、
    Chan