主题中讨论的其他器件:BQ79616
工具/软件:
您好!
我们目前正在尝试让我们的系统启动并运行、但我们在上一篇文章中得到了 ghosted。 任何帮助都将非常感谢。 看起来这个问题是由某人脱机解决的,会喜欢这样做的机会!
e2e.ti.com/.../bq79600-q1-bq79600-spi_ready-never-triggers-low
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.
工具/软件:
您好!
我们目前正在尝试让我们的系统启动并运行、但我们在上一篇文章中得到了 ghosted。 任何帮助都将非常感谢。 看起来这个问题是由某人脱机解决的,会喜欢这样做的机会!
e2e.ti.com/.../bq79600-q1-bq79600-spi_ready-never-triggers-low
您好、Melana:
1.向 BQ79600发送唤醒 ping 后、是否在等待3.5ms 的启动时间?

这样 BQ79600就可以完全唤醒并接受微控制器发出的命令。
2.如果 SPI 就绪没有拉回,那么它就不喜欢从微控制器或菊花链接收什么。 要进行故障排除、您可以从 BQ79600到 BQ79616拔下菊花链电缆。 然后可以向 BQ79600发送单器件读取命令。 BQ79600是否响应 MISO? 如果 BQ79600响应单个器件读取、则问题发生在您通过600-616菊花链发送 VIF 的期间。 如果 BQ79600没有响应、则说明 MCU 和 BQ79600之间存在问题。
如果问题是由600-616菊花链导致的、您是否在菊花链仍在向 BQ79600发送回数据的过程中发送时钟周期? BQ79600可能会将其解释为新数据、并将 SPI_RDY 保持为低电平、以指示出现了错误。
如果问题是 MCU-600导致的、您能给我发送您的 Saleae 文件、以便我更仔细地查看您发送的波形吗?
谢谢。此致、
David Ray
你好! 这似乎是我的 MCU 与 我尝试附加 Saleae 文件的600之间的问题、它应该位于 ZIP 文件中。 我包含了所有设置 SPI 的方法、您可以看到。 有趣的是、我可以通过桥接器件使用唤醒消息唤醒616堆栈器件、所以通信似乎正常工作? 但我还是遇到了试图阅读的问题。
嗨、Melana、
问题在于、当 MCU 尝试读取数据时、MOSI 需要为高电平:

如果在 MCU 尝试读取数据时 MOSI 为0xFF 之外的任何内容、BQ79600会将其解释为 MCU 发送数据。 这将触发 RXDATA_UNEXP:

SPI_RDY 将保持低电平、直到 MCU 发送通信清除。
如果对 BQ796XX 器件有任何其他问题、疑虑或咨询、请告知我。
此致、
David Ray
很棒的 Melana!
您可以在 BQ79600数据表的图7-8中找到响应帧的确切定义。 以下是接收内容的说明:
初始字节:rx_data3[0]= 0x00、这意味着这绝对是一个响应帧、并且只有1个寄存器被读取。
DEV 地址字节:rx_data3[1]= 0x00、这意味着此响应来自器件0x00 (基底器件、即 BQ79600)。 如果读数为0x01、这将是堆栈器件(BQ79616)的响应
寄存器地址字节:rx_data3[2]& rx_data3[3]= 0x21 0x00、这意味着您正在从0x2100开始数据请求。 如果 MCU 将其有效载荷字节(单器件命令帧中的第5个字节)设置为0x01而不是0x00、您将分别接收0x2100和0x2101的数据。
数据字节:rx_data3[4]= 0x02。 在0x2100寄存器中、0x02与系统故障相关。 这是正常的、因为设备刚刚唤醒。 存在一个数字复位故障、应清除该故障才能使此故障消失。
CRC 字节:rx_data3[5]和 rx_data3[6]包含计算得出的高和低 CRC 字节。
希望这对您有所帮助!
此致、
David Ray