NHS2x34_Init() 无限期地挂起,等待 NHS2634 的中断引脚变为高电平。我希望有人能帮我确定这究竟是硬件问题、电源时序问题还是固件配置问题。
事件顺序:
1. NHS2634_HOSTIF_InitSpiAndInterrupt() 运行并返回成功。
2. 调用 NHS2x34_PMC_ResetAFE()。这将向 PMC 控制寄存器发出 SPI 写入操作(设置 AFE RESET 位)。它返回成功(状态 = 0)。
3. 然后,代码在以下循环中等待,期望芯片在准备好接受进一步的 SPI 命令时将其中断引脚置为高电平。这个循环永远不会结束。
while (!NHS2634_HOSTIF_GetInterruptPinLevel()) { }
诊断程序已运行:
1. 通过 SEGGER RTT 日志确认循环确实在旋转(实时轮询计数器持续递增至数千万),没有冻结或崩溃。CPU 已启动并正在主动重新检查引脚。
2. 连接调试器(J-Link/GDB),并在循环过程中两次停止。程序计数器位于 NHS2634_HOSTIF_GetInterruptPinLevel() 内部,两次调用 GPIO_PinRead(),这与主动轮询一致。
3. 写入 PMC 控制寄存器后立即将其读回。预期会收到一个非零模式,反映复位位加上刚刚发送的写保护字节,但返回的是 0x00000000。
4. 运行原始 SPI 回环测试(将传感器连接器上的 MOSI 和 MISO 直接短接,NHS2634 模块完全断开)。使用特殊测试模式时,仍然返回 0x00000000,而不是发送字节的回显。
5. 将 NHS2634 模块完全拔掉后,重复上述所有步骤。结果与连接时完全相同。
我想确定的是:
我使用的是NXP官方提供的SDK,没有修改驱动程序代码。我需要确定这是否是我的硬件问题、电源时序问题或固件配置问题,以及这是否像是我的设备特有的硬件故障。
非常感谢您能提供一些关于下一步该如何着手的指导。
由于 SPI 回环读取 0x00 失败,因此主机微控制器的 SPI 外设/ GPIO 路由 实际上 并未 传输数据 。 任何 数据。修复主机引脚 复用 、时钟和 GPIO 初始化。