Other Parts Discussed in Thread: TMP125
器件型号: TMS320F280037C-Q1
主题中讨论的其他器件: TMP125
尊敬的团队:
我通过 C2000 器件上的 SPI 连接 TMP125 温度传感器。 我面临一个奇怪的问题:同一个 SPI + TMP125 代码在独立(裸机)工程中正常工作、但在集成到 FreeRTOS 工程中时失败、即使在调度器启动之前、TMP125 读取值也变为 0xFFFF(或 MISO 上为 0xFF)我已验证 SPI 配置(SPI_setConfig、CPOL/debugger,比特率,数据宽度)在两个项目中是相同的 CS 引脚正确切换(在 CPHA 中验证) TMP125 CS 在事务期间置位为低电平所有其他 SPI 从器件 CS 引脚保持高电平启用 SPI FIFO 并且复位没有由我写入 SPI ISR 我在 vTaskStartScheduler () 之前测试了在 while 循环中读取 TMP125、因此这不是任务切换问题逻辑分析仪显示 SPI 时钟活动、 但 TMP125 MISO 保持高电平→读取变为 0xFFFF SPI 使用情况一条 SPI 总线多个 SPI 从器件 (LCD + TMP125) 手动 GPIO 控制的 CS SPI 轮询 API (SPI_pollingFIFOTransaction) 对于两个项目、相同的布线和相同的电路板对于独立项目进行观察、TMP125 在 FreeRTOS 集成项目中正确读取、TMP125 始终返回 0xFFFF 唯一的差异是项目集成(FreeRTOS + Board_init /系统初始化)。
当相同的 SPI 代码在独立项目中运行时、什么可能导致 TMP125(或通常的 SPI 从设备)在集成的 FreeRTOS 项目中始终返回 0xFFFF、即使在调度程序启动之前也是如此? 是否存在与以下相关的已知交互:board_init/pinmux SPI FIFO/RX 行为 PIE /中断初始化 SPI 外设状态差异 RTOS 项目中有关我应该验证的内部 SPI 状态或初始化步骤的任何指导都非常有用。 提前感谢。
