NXP MCU 技术论坛
直播中

王霞

8年用户 1405经验值
私信 关注
[问答]

运行RTD示例“I2s_Sai_example_S32K344”,I2S_SAI_RECEIVER 的超时问题如何解决?

我正在尝试运行 RTD 示例“I2s_Sai_example_S32K344”,但我遇到了 I2S_SAI_RECEIVER 的超时问题。 你能给我一些建议吗?  
硬件:S32K3X4EVB-Q257
软件:S32DS 3.4 和 RTD AUTOSAR 4.4 2.0.0 D2203
引脚连接:
SAI0_DATA0 - SAI1_DATA0 | P3.9 - P3.23 |
SAI0_BCLK - SAI1_BCLK | P3.11 - P3.25 |
SAI0_SYNC - SAI1_SYNC | P3.13 - P3.29 |

回帖(1)

张敏

2023-12-17 10:56:35
首先,确认硬件连接是否正确。如果硬件连接正常,可以尝试以下步骤解决超时问题:

1. 增加 I2S_SAI_RECEIVER 的等待时间(timeout),可以在 SAI_DRV_MasterReceiveDataBlocking 函数中增加 timeout 参数,单位为毫秒。默认超时时间为 2000 毫秒。

2. 检查时钟设置是否正确。I2S 需要精确的时钟源,时钟配置不正确可能会导致超时问题。确认时钟配置是否与硬件连接一致。

3. 确认 I2S_SAI_RECEIVER 的数据格式是否正确。数据格式包括采样率、数据位数、数据格式等,需要与发送方一致。可以在 SAI_DRV_MasterInit 函数中设置正确的数据格式。

4. 确认 DMA 配置是否正确。I2S 使用 DMA 进行数据传输,DMA 配置不正确可能会导致超时问题。可以在 SAI_DRV_MasterInit 函数中设置正确的 DMA 配置。此外,需要确认 DMA 通道是否被其他硬件设备占用。

如果以上方法都无法解决问题,可以尝试在调试时输出更多信息,查找问题所在。 可以在打开调试输出功能后,在 I2S_SAI_RECEIVER 超时处打断点,观察调试信息并逐步排除问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分