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.

[参考译文] BQ76952:BQ76952的 SPI 通信数据帧之间存在长等待问题

Guru**** 2390905 points
Other Parts Discussed in Thread: BQ76952

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1444592/bq76952-long-wait-problem-between-spi-communication-data-frames-of-bq76952

器件型号:BQ76952

工具与软件:

您好、在使用 bq76952时、我遇到了一些手册中没有清楚说明的问题。 我需要你的帮助

如图、所示、当使用 SPI 通信时、例如、要 从 bq76952获取地址为0x14的电池电压数据、我需要发送(寄存器地址(0x14)+ DATA+CRC)两次、并在第二次尝试时获取0x14的电压数据。 存在以下问题:主机发送一次寄存器地址(0x14)+DATA+CRC 后、必须等待特定的时间(500us)才能发送第二次时间、否则可能会遇到 bq76952返回0xFF 的问题。  一个字节需要等待500us、并且有很多数据要从 bq76952中获得、这会导致严重阻塞。

我知道 RTOS 可以避免这个问题。但我使用的是裸计算机设备、在等待时无法处理其他任何事情。 我的以下问题也基于使用裸计算机

因此、我有以下问题需要您的解答。 非常感谢

1.如果使用 IIC 通信,是否还需要长时间等待才能获取数据? 换言之、切换到 IIC 通信是否可以解决该问题?

2.您是否有任何建议的解决方案来解决这个问题

3、为了解决这个问题,我提出了一个解决方案。 我想问一下、这种方法是否已经是最佳解决方案?

如图所示、我使用计时器触发中断、然后在中断中启用 DMA。 每个 DMA 将完成数据传输(寄存器地址(0x14)+DATA+CRC)

在这种方法中、与 bq76952的通信由一个定时器和 DMA 完成、避免了无用的 CPU 等待

期待您的回复

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

    您好!

    今天和明天(11月28日至29日)是美国假期。 该团队将在周一回到办公室、然后返回给您。

    感谢您的耐心。

    此致、

    Max Verboncoeur

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

    您好、用户:

    感谢您的耐心。

    即使频率较慢、我们器件上的 I2C 也比 SPI 快。 所需的事务更少并且 I2C 支持块读取/写入、因此 I2C 可能更适合您。  

    您的解决方案可能会起作用;但是、我们还没有看到任何人尝试过。

    此致、
    Alexis

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

    如图所示、SPI 通信造成阻塞的根本原因是每帧之间有必要进行等待。 切换到 IIC 时是否仍存在此类等待。 例如、当块读取/写入时、它是否还需要在返回的数据字节之间等待

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

    您好!

    我们已收到您的请求、并将尽快予以答复。  

    我们的普通支持团队是 OOO、将于10月12日返回、以帮助您进行任何调查。  

    感谢您的耐心和理解。

    此致!  

    -Luis Torres

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

    您好、用户:

    感谢您的耐心。

    I2C 在每个帧之间具有相同的等待(如果没有类似的等待)、但与 SPI 相比、I2C 可以使用1个帧(最多32个字节)进行更多操作。

    此致、
    Alexis