https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1574281/iwrl6432-spi-stability
器件型号:IWRL6432主题:SysConfig 中讨论的其他器件
工具/软件:
您好:
我们使用 MMWAVE_L_SDK_05_04_00_01 SDK 使用上述器件开发一款产品。 我们使用 SPI 作为阻塞中断模式下的主要通信媒介作为 SPI 外设。 我们遇到了 MCSPI_transfe 函数有时永远不会返回的问题。 它将正常工作一段时间,这可能是几小时或几分钟,然后它将停止工作。
在调查该问题后、似乎我们的任务是管理 SPI 总线、但卡在传递函数的信标挂起上、从而导致卡在此函数中。 这指向 SPI 中断未正确触发、或者信标发布后其调用未命中、但向信标添加超时不能解决此出现卡住的问题。
此外、在查看 SPI 外设的寄存器值时 、可以看到以下内容:
正常任务:
【信息】基地址:0x53F7F400
【信息】修订版: 0x0000002B
【信息】SysConfig: 0x00000308
【信息】SYSSTATUS: 0x00000001
【信息】IRQSTATUS: 0x00010000
【信息】IRQENABLE: 0x0000000F
【信息】MODULCTRL: 0x00000004
【信息】CH0CONF:0x3E0603D1
【信息】CH0STAT: 0x00000026
【信息】CH0CTRL: 0x00000001
【信息】RX0: 0x000000A5
任务已冻结:
【信息】基地址:0x53F7F400
【信息】修订版: 0x0000002B
【信息】SysConfig: 0x00000308
【信息】SYSSTATUS: 0x00000001
【信息】IRQSTATUS: 0x00010000
【信息】IRQENABLE: 0x00000000
【信息】MODULCTRL: 0x00000004
【信息】CH0CONF: 0x060603D1
【信息】CH0STAT: 0x00000006
【信息】CH0CTRL: 0x00000000
【信息】RX0: 0x000000A5
将这些寄存器与技术文档进行比较、可以看出这些寄存器指示通道和中断或关闭以及 TX 和 RX FIFO 缓冲器。 发生这种情况的原因是中断被触发并关闭。 然后、当调用 MCSPI_TRANSFER 时、它们将再次打开。 这似乎表明中断实际上确实会被触发、但无论出于何种原因、 MCSPI_transfe 函数中没有拾取中断、信标超时对恢复此中断没有影响。
似乎可以正常工作的一点是重新启动 SPI 外设和控制 SPI 传输的任务。 这样做似乎可以恢复总线。
发生此 SPI 问题的原因是否有任何已知? 对于这个问题、您是否可以提供任何指导?
在运行时、我们似乎也会遇到间歇性硬故障。 SDK 中发生硬故障的原因可能是什么?
如果您需要更多信息、请告诉我。