各位好,最近遇到个mcbsp+edma的问题,麻烦各位帮忙分析一下。
条件:mcbsp+edma发送音频数据,mcbsp帧同步速率8、16、32KHz可配置,输出1KHz单音正常,进行大量切换测试,即不同速率间切换,每3秒钟切换一次,测试时间约半小时到一小时不等,出现mcbsp输出固定值,固定值为最后一次发送出去的值比如0x200。在此情况下,Edma不再进行数据搬移,参数正常,手动设置EDMA事件,EDMA正常搬移数据到MCBSP寄存器DXR即查看DXR地址数据已更新,如搬移数据为0xaaa,MCBSP帧同步信号时钟信号均正常,但此时DX管脚输出的值不变还是0x200。
此时,XRDY为1,为什么不能产生EDMA事件?
进行MCBSP复位,该现象依然存在,十分疑惑,请指教,等待各位支招。
Tony Tang:
一直发送最后一次的数据,说明产生了underrun,即曾经没有及时给McBSP提供数据。需要复位McBSP才能恢复。
什么样的应用需要换频率?
bingliang chen:
回复 Tony Tang:
厉害