[iPhone音箱应用] USB音频转I2S,中颖MCU的DMA扛得住吗?

[复制链接]
33|6
神秘旅行者 发表于 2026-4-15 08:55 | 显示全部楼层 |阅读模式
正在调试一款iPhone底座音箱,主控用的中颖SH68F552。方案是:iPhone Lightning -> USB -> MCU -> I2S -> 音频Codec(ES9018)。现在遇到的问题是,播放高码率音乐(比如48kHz/24bit)时,偶尔会有爆音,感觉是数据没跟上。
查了手册,SH68F552有PDMA(外设DMA),理论上可以把USB接收的数据直接搬运到I2S的FIFO里,不用CPU干预。但我配置了半天,DMA传输总是断断续续。是不是SRAM不够用?比如USB端点缓冲区占了一部分,I2S的FIFO占了一部分,剩下的SRAM做双缓冲(Double Buffer)够不够?
还有,I2S的时钟(MCLK)是怎么生成的?我是用MCU的定时器分频出来的,但发现频率有点漂移,导致播放速度快了一倍或者慢了一倍。是不是应该用外部晶振(比如24MHz)给I2S模块单独供时钟?中颖的MCU有没有专门的音频时钟发生器?
另外,USB接收中断的优先级怎么设?如果USB中断优先级太低,DMA搬运不及时,I2S就会欠载(Underrun);如果太高,又会影响主循环里的按键扫描和LCD显示。有没有大佬调过这个平衡点?比如USB中断优先级设为1,DMA中断设为0?


故意相遇 发表于 2026-4-18 21:16 | 显示全部楼层
关于I2S时钟,使用外部晶振是更稳定的方法。中颖MCU的音频时钟发生器可以查看其数据手册,了解是否支持外部时钟输入。
复古留声机 发表于 2026-4-18 08:42 | 显示全部楼层
对于I2S时钟问题,使用外部晶振确实是一个好方法,可以提高时钟稳定性。
antusheng 发表于 2026-4-18 11:52 | 显示全部楼层
中颖 MCU 的 DMA 能否稳定承载 USB 音频转 I2S,取决于具体型号、DMA 规格、系统时钟、缓存设计和时钟同步方案。
heisexingqisi 发表于 2026-4-20 18:25 | 显示全部楼层
8 位机(如 SH68F552)在高码率(48kHz/24bit)下压力很大,容易出现爆音;32 位机(如 SH32 系列)通常可以稳定支撑。
她已醉 发表于 2026-4-21 21:49 | 显示全部楼层
I2S的时钟生成问题,使用外部晶振确实是一个更稳定的方法。中颖MCU可能没有专门的音频时钟发生器,但可以通过外部晶振来提供更精确的时钟信号。你可以检查是否有专门的时钟配置选项或者使用外部晶振来解决频率漂移问题。
中国龙芯CDX 发表于 2026-4-21 11:35 | 显示全部楼层
建议还是使用外部稳定的晶振
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

52

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0