This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS:CC1352 I2S问题

Guru**** 2455360 points
Other Parts Discussed in Thread: CC1352P

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/737865/rtos-cc1352-i2s-issue

主题中讨论的其他部件:CC1352P

工具/软件:TI-RTOS

您好,

 

虽然TI目前不提供任何用于播放音频的高级接口,但我们能够使用提供的(有点粗糙的)驱动程序为CC1352创建一个简单的波形文件播放器。

基本上,这个逻辑从外部闪存逐块读取波形数据,然后将缓冲器馈入I2S DMA缓冲器,并使用外部连接的I2S放大器芯片,这一切都很顺利。

但是,存在一个问题:

每当代码访问外部闪存时(使用SPI-DMA驱动程序进行写入操作时,回放停止,我们不会收到任何错误中断(在I2S_DMA处理程序中),它只是停止。

I2S数据线上的逻辑视图显示了某种重复模式,转化为听起来像咔嗒声的噪音。

这种情况变得更加奇怪,因为为了打破I2S,AWE需要在游戏前或玩游戏时执行SPI写入操作,所有事情都会发生故障。

我们没有得到任何断言,没有错误,重新初始化I2S寄存器的代码块以及DMA指针不能解决此问题。

达到此条件后,唯一可行的“修复”是执行硬件重置并完全阻止SPI写入。

I2S与SPI TX DAM之间是否有任何关系?

我们无法判断I2S外围设备正在使用哪些DMA通道。

 

任何线索?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Eitan,

    我会研究一下,看看我能找到什么。 I2S模块有自己的DMA,而SPI驱动程序使用UDMA时,我需要检查这些模块之间的内部优先级。

    对于外部闪存,您使用的是什么SPI接口,0或1? 另外,我假设您正在使用NVS驱动程序,这是否正确?
    您当前应用程序所基于的SDK版本是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    SDK:2.10 .0.48

    使用NVS驱动 程序访问  SPI0上的扩展闪存(在  CC1352 LaunchPad上工作)

    10倍

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢!

    我很想知道这是否与NVS驱动程序持续轮询有关,以检查是否已执行擦除。 在NVS写入过程中,您是在写入过程中执行擦除还是之前执行擦除? 如果您这样做,您能否测试一下,看看如果您没有在写入过程中执行擦除(我们假设闪存是在手写前神奇地擦除的),它是否会有所不同。

    另外,您能否详细说明“WAV驱动程序”的基础? 您是重新使用PDM驱动程序使用的I2S实用程序,还是以某种方式侵入PDM驱动程序? 简而言之,您是使用PDM驱动程序中的任务来执行此操作,还是全部基于"中断"?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您对此Eitan有任何更新吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

     在对代码进行验证后,我意识到这个问题 与我们正在使用的定制NVS驱动程序有关,

    背景:

    TI原始NVS (外部闪存)正在轮询外部闪存状态寄存器,以了解何时执行了擦除扇区命令。 我们使用 不同的方法(由TI提供),使用触发到预期擦除时间的计时器,然后我们才检查状态寄存器。 此修改允许系统在同时擦除许多闪存扇区的同时工作。 我不确定此驱动程序修改是如何以及为什么导致此问题,但一旦我弄清楚此问题,我将在论坛上发布。

    我们的播放器实施是对SDK PDM示例的攻击,我将附上我的代码,以便您浏览它,并告诉我我是否走对了。

    此代码可能还可以帮助任何有兴趣在CC1352p上使用I2S播放音频的人

     

    10倍

    Eitan。

    e2e.ti.com/.../MINIPlayer.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Eitan,

    我将查看代码,感谢您的分享。 关于NVS驱动程序,将在将来的SDK发行版中实施持续擦除轮询的修复程序。 我有点困惑(就像您一样) NVS驱动程序中的"计时器修复"为什么会影响I2S DMA。

    有人指出,目前还计划在将来发布一个实际的I2S驱动程序,而不是PDM驱动程序附带的"I2S实用程序"。

    此致,

    最大