当前位置: 技术问答>linux和unix
以前的一个老问题,但是查不到结果,请知道答案的高手指点一下,谢谢!
来源: 互联网 发布时间:2016-03-15
本文导语: CPU: Samsung s3c2440a audio: Philips1380 OS: Linux2.4.20 加 2440 patch 传输方式:DMA 通过2440的DMA channel 2 现象:从1380输出的DATAO...
CPU: Samsung s3c2440a
audio: Philips1380
OS: Linux2.4.20 加 2440 patch
传输方式:DMA
通过2440的DMA channel 2
现象:从1380输出的DATAO的输入到2440的IISDI,从2440的IISDO输入到1380的DATAI。在同时录音和放音的时候,从IISDI进入2440的数据又会从2440的IISDO输出来,从喇叭播放出来,从而形成一个声音的回路,引起喇叭的啸叫。
如果在驱动中把IIS的DMA的Transmit请求关掉,只留下Receive请求,也就是说只让2440接收
从1380传来的数据,不发送数据。我们通过放音来验证IIS的输出确实已经关闭。但录音时,采集
来的声音数据仍然会从2440的IISDO输出。
通过在2440DMA驱动中加入调试信息,发现在没有进行写FIFO的情况下,IISDO仍然有数据输出。
排除1380内部硬件问题。在切断1380的DATAI数据输入脚,即没有声音输出。
怎样才会使进入2440 IISDI的数据不从IISDO输出??直观的说就是录音时不让喇叭放从麦克风录进来的声音?
还想给更高分,可惜只能这么多。
audio: Philips1380
OS: Linux2.4.20 加 2440 patch
传输方式:DMA
通过2440的DMA channel 2
现象:从1380输出的DATAO的输入到2440的IISDI,从2440的IISDO输入到1380的DATAI。在同时录音和放音的时候,从IISDI进入2440的数据又会从2440的IISDO输出来,从喇叭播放出来,从而形成一个声音的回路,引起喇叭的啸叫。
如果在驱动中把IIS的DMA的Transmit请求关掉,只留下Receive请求,也就是说只让2440接收
从1380传来的数据,不发送数据。我们通过放音来验证IIS的输出确实已经关闭。但录音时,采集
来的声音数据仍然会从2440的IISDO输出。
通过在2440DMA驱动中加入调试信息,发现在没有进行写FIFO的情况下,IISDO仍然有数据输出。
排除1380内部硬件问题。在切断1380的DATAI数据输入脚,即没有声音输出。
怎样才会使进入2440 IISDI的数据不从IISDO输出??直观的说就是录音时不让喇叭放从麦克风录进来的声音?
还想给更高分,可惜只能这么多。
|
先检查硬件电路的原因
这里高手不多,呵呵
这里高手不多,呵呵
|
支持搂主,收藏