主题中讨论的其他器件: BQ76952、 TM4C123、 BQSTUDIO
大家好、
我正在 BQ76952EVM BMS029B 上将通信从 I2C 切换到 SPI、并正在遇到有关器件是否处于 SPI 模式的问题。 我按照软件开发指南和 EVM 用户手册创建了 SPI 功能、但使用逻辑分析仪无法读取除垃圾以外的任何内容。 由于我有引导至 I2C 模式的器件、我编写了函数来启用 SPI 通信、然后交换至 SPI。 下面是我所做的工作:
1.通过写入通信类型寄存器(地址0x9239)将通信类型设置为0x10 (具有 CRC 的 SPI)-摘自 EVM 用户指南
2.通过将 REG0配置寄存器设置为0x01 (地址0x9237)来启用 REG0 -摘自 EVM 用户指南
3.通过将 REG1配置寄存器设置为0x0D (地址0x9236)来启用 REG1 -摘自 EVM 用户指南
4、通过向 SPI 配置寄存器(地址0x923C)写入0x60来启用 SPI 通信-摘自 EVM 用户指南
5.通过将该寄存器设置为0x00,为 SPI CS 操作配置了 CFETOFF
6.为 SPI MOSI 操作配置了 HDQ 引脚,但将该寄存器设置为0x00
完成这些步骤后、我已经从这些寄存器中读取并使用逻辑分析仪验证了正确的值、只是为了再次检查器件是否在其寄存器中设置这些值、所以一切看起来都很好。
最后、我发送 SWAP_COMM_MODE 子命令。
在这里、我尝试读取器件地址寄存器、但我只是在逻辑分析仪上看到了垃圾。 我完全移除了连接到外部 I2C J17以及 J15和 J18上的跳线、因此总线应该只有 SPI 流量。 这一切都是在使用逻辑分析仪验证 I2C 操作是否正确之后进行的。
我还尝试使用 swap_TO_spi()子命令,但这两个子命令也不起作用,并且逻辑分析仪上仍在读取垃圾信息。
I2C 通信无缝工作、我能够读取电压、状态寄存器、器件 ID 和其他所有内容、但我们需要将 SPI 用于我们的应用。
我是否遗漏了任何内容? 我正在使用评估模块、想知道我是否错过了某个或某个跳线、或者我错过了配置设置。 我已经多次了解 TRM、EVM 用户指南和软件开发指南。 我们非常感谢您的任何帮助。 谢谢!
此致、
Kyle Garland