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.

[参考译文] BQ76952EVM:对 TI 评估板(BQ76952EVM)进行编程、以使 SPI 通信兼容(其中 BQ76952是默认的 I2C)

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1062387/bq76952evm-programming-ti-eval-board-bq76952evm-for-making-spi-communication-compatible-where-bq76952-is-default-i2c

器件型号:BQ76952EVM
主题中讨论的其他器件: BQ76952BQSTUDIO

降级器、

 根据给定的数据表、我们遵循了 TI 评估板(BQ76952EVM)中用于 SPI 通信建立(默认 I2C)的编程步骤。

但我们仍然没有在 BQ76952 (默认 I2C)中建立 SPI 通信接口。

随附的文档 显示了建立 SPI 通信所遵循的步骤。

谢谢、regardse2e.ti.com/.../Default-I2C-to-SPI-communication-establishment.pdf

Subhash Dhyani

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

    您好,Subhash,

    我认为您缺少一个重要的步骤- EVM 上有一个以 REG1稳压器电压为基准的电平转换器。 如果未启用 REG1、EVM 将无法与 BQStudio 通信。 您可以在 EVM 用户指南中所示的 EVM 原理图中看到电平转换器。 如果您已经在其他寄存器上对 OTP 进行了编程、则可以直接向 EVM 上的 REG1引脚提供3.3V 电压并重新启动 BQStudio -它应该能够检测 SPI 设置并随后进行通信。  

    EVM 用户指南中包含了切换到 SPI 时应遵循的一系列步骤(请参阅 文档中的"更改通信模式"部分)。  

    此致、

    Matt

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

    您好、Matt、

    感谢您的建议。 我们能够在 TI 评估模块 BQ76952EVM 中进行 I2C 至 SPI 通信)。

     但是、正如您所知 、电源复位会始终 将器件置于 I2C 默认模式。  

    在通过 I2C 线路进行 I2C 默认模式至 SPI 模式转换期间、已采取以下步骤。  

    1. 通过 I2C 通信将"I2C-Default"切换为"SPI 模式"的设置命令。
    2. 通过 I2C 线路进行 NACK 交换
    3. 现在、SPI 代码应通过 SPI 通信线路运行。   

    但遗憾      的是、这无法实现、因为我们有硬件限制(I2C-SDA 数据线和 SPI MISO 是相同的线路、冲突)。  因此编译器不允许它。  

    因此、正如我们所说的、OTP 不是我们的选择(我们处于设计阶段 、 现场可编程选项保留在 BMS 中)。  因此、请建议我们如何继续使用当前硬件、以及我们当前 硬件中需要更改哪些内容才能实现这一目标。 由于 BQ7695201 (默认 SPI 器 件) IC 在市场上不可用、因此我们只能在 BQ76952 (默认 I2C)器件中运行 SPI。  

    谢谢、并进行了升级

    Subhash Dhyani  

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

    您好,Subhash,

    遗憾的是、我们的工程团队正在外出度假。 我们将在1月的第一周再回来

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

    您好,Subhash,

    不幸的是,没有任何简单的办法来解决这一挑战。 这就是为什么为无法在其生产线上对 OTP 进行编程的用户创建了 BQ7695201、BQ7695203和 BQ7695204。 今年器件的可用性应该会有所提高、但很难预测。

    此致、

    Matt

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

    Matt Sunna、您好!

    现在、我们已开始使用 BQ76952器件来开发基于 I2C 通信的 BMS 系统。 但在这里,我们无法超过800Hz I2C 通信速度。

     我们使用  Renesas Electronics 的微控制器 R5F10PGE (F14)。 如果我们超过800Hz、则会出现以下问题。

    1. 当我们读取电池电压/温度/电流时、它不会给出适当的值(有时为0x00……有时为0xFF……等)
    2. 主器件和从器件都非常接近、但我们仍然使用2k2/4K7等作为两条线路上的上拉电阻器。  
    3. 在读取周期中、我们在每个字节读取之间添加了100us 延迟。 此延迟 已逐字节增加至750uS 、但仍面临相同的问题。
    4.  在任何读取周期中、我们都不会收到 NACK 信号。这意味着主从机通信是正确的、但 接收到的数据不正确。
    5. 开始停止条件已出现 、并且正常。 我们有单主器件(R5F10PGE (F14)) 和单从 器件(BQ76952)系统。

    谢谢、此致

    Subhash Dhyani

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

    您好,Subhash,

    通信类型是否设置为 I2C 快速模式(这是 BQ76952器件的默认模式、如果您使用 SPI 器件、则通信类型应更改为0x08)。 我对您的特定微控制器一无所知、但该器件应支持时钟扩展(有关 I2C 时钟扩展的信息、请参阅此站点: https://www.i2c-bus.org/clock-stretching/)。  

    BQ76952软件开发指南具有许多 I2C 波形。 也许您可以将这些与您在系统中看到的内容进行比较。 还有适用于 MSP430和 STM32微控制器的代码示例可供下载。

    此致、

    Matt

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

    Matt Sunna、您好!

    我们 现在使用默认的 I2C AFE 器件(BQ76952)。 如前 所述、这里有一个 I2C 通信速度问题。 我们 无法在800Hz 以上进行通信。

    • 如果我们以20kHz 的频率运行系统、则 会在第9个时钟中得到 NACK。 在 DSO 上、我们看到 BQ76952 IC 的响应延迟(ACK 延迟)。 ACK 延迟被控制器视为 NACK。
    • 如果我们将通信频率提高到100KHz,则延迟响应与20kHz 相同。 因此、我们还发现时钟的上升时间(SCL) 和 数据的上升时间(SDA) 不同、但 SCL 和 SDA 的下降时间相同。

    请参阅随附的波形。

    e2e.ti.com/.../Ref-I2C-Waveforms.pdf

    谢谢、此致

    Subhash Dhyani

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

    您好,Subhash,

    您的微控制器是否支持时钟扩展?

    Matt

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

     您好、Matt、  

    很抱歉耽误你的回答。  是的、我们的硬件具有时钟扩展。

     我们仍在努力提高 I2C 速度。 只想知道以下数字内核的电源要求是什么。  它需要5V 或3.3V 电压。

    因为 您的评估板仅在3.3V 上运行。 因此、这是 MSP430或 AFE BQ76952 (数字内核)的推荐/要求。

    谢谢、此致

    Subhash Dhyani

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

    您好,Subhash,

    数字内核的电源不是从外部提供的-它由内部基准供电。 I2C 确实需要上拉电阻器的外部电源轨。 这可以来自 REG1或 REG2电压、也可以由外部供电。 在 EVM 上、有一个3.3V 电源、因为 REG1和 REG2默认不受电。 您应该将微控制器数字引脚逻辑电平的电压用于上拉电压。  

    如果您对 I2C 信号的上升时间有问题、可以尝试使用5k 上拉电阻器而不是10k 来查看其是否有用。  

    此致、

    Matt

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

    您好、Matt、

    我们仅使用外部电源。 不使用内部 LDO

    我们尝试了不同 的上拉电阻10K/5K/2k2等、但 没有改进。  

    请参阅随附 的 BMS 中使用的 UC 数据表。  请参阅以下链接。

    https://www.renesas.com/eu/en/document/mah/rl78f13-f14-users-manual-hardware-rev210

    此处、我们使用专用 i2c 端口作为 SCLA0和 SDAA0。

    如果您可以帮助运行 I2C、请提供支持。 前面讨论的问题是无法获得800Hz 以上的正确数据。

    谢谢、此致

    Subhash Dhyani

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

    您好,Subhash,

    我没有您使用的特定 UC、因此我无法为您测试。 我怀疑您的问题来自 UC。 为正确的 I2C 通信设置 UC 可能很困难、因此我建议您查看 UC 制造商提供的论坛、以获取教程和提示来帮助进行调试。

    此致、

    Matt

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

    您好、Matt、

    感谢您的建议。 通过 将 I2C 线路放置在具有时钟扩展功能的另一个 I2C 端口中、问题已得到解决。

    谢谢、此致

    Subhash Dhyani