工具与软件:
您好、在使用 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 等待
期待您的回复