S3C6410 wavdev wm8731 IIS驱动 周期性杂音

shen8686 2010-10-22 05:39:24
小弟在做wm8731驱动的时候发现了一个比较奇怪的现象:
播放声音的时候,有很小的概率出现杂音,这个杂音很有特点:
1.杂音一般在声音播放了大约1分钟左右后出现(不一定是1分钟左右,也有一开起来就出现杂音,只是1分钟左右出现杂音的概率相对较高),如果3分钟以后不出现,那么基本上不会再出现杂音。
2.杂音可能只出现一小会就马上消失,可能一直持续到声音播放完毕。
3.出现杂音后,按暂停,再开始播放声音,杂音会消失,并且貌似不会再出现杂音。
4.后来我用1K的正弦波测试,发现杂音出现的概率大幅度提高,大约为50%的几率出现杂音。
5.1K的正弦波,用示波器测试输出模拟数据的波型,发现杂音的周期是固定的,如果出现杂音的话,那捕捉到的波型上大约25ms出现一次杂波。
6.杂波的幅度跟正弦波差不多,并不是一个尖脉冲。
7.已经跟8731的FAE请教过,8731配置应该是OK的。

另外,刚刚我将wavdev驱动的dma size改小了一半,发现杂音的周期也相应的缩小了一半,因为我们采用的是双dma机制,所以我怀疑是两个dma切换的时候出错而来导致的。但是看了半天源码,也没找到问题根源。
请各位大哥大姐指点小弟一下,小弟不甚感激。
...全文
465 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
lailzhihou 2012-11-22
  • 打赏
  • 举报
回复
楼主乃神人,好人啊
yewufengyuzhao 2012-08-03
  • 打赏
  • 举报
回复
楼主辛苦了!
myearth 2010-10-26
  • 打赏
  • 举报
回复
是buffer问题,你具体调到多大?我调到8K还有
shen8686 2010-10-26
  • 打赏
  • 举报
回复
问题解决了
是DMA的问题
把DMA BUF SIZE扩大就搞定了。。
shen8686 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 myearth 的回复:]
是buffer问题,你具体调到多大?我调到8K还有
[/Quote]
8K不够的话再调下看看
还有音质过高也会导致这个问题
我是用256kpbs的。
shen8686 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 john888 的回复:]
我也在搞8731的驱动,只是平台是2416,目前一头雾水,不知从何入手,能否把6410的8731驱动共享一下,作个参考 john3127@hotmail.com
[/Quote]
google code上很多这些代码的
你可以去找下
2416的应该也是有的
cgye2010 2010-10-26
  • 打赏
  • 举报
回复
准备弄一下这个方面,顶一下
shen8686 2010-10-25
  • 打赏
  • 举报
回复
我本来怀疑杂音是由于DMA切换时BUFFER里的数据异常导致的。
但是我在Render函数里,将读到的采样值保存到一个buf里,然后在output dma中断响应函数InterruptThreadOutputDMA中与当前使用的DMA BUFFER里的值比对,在出现杂音的时候,没有发现数值错误。
代码如下:
g_ucTmp是保存读到的采样值的缓冲区,AUDIO_DMA_PAGE_SIZE是DMA BUFFER SIZE,m_OutputDMABufferVirPage[m_nOutputBufferInUse]是当前正在使用的DMA BUFFER

for (i = 0; i < AUDIO_DMA_PAGE_SIZE; ++i)
{
if (g_ucTmp[i] != m_OutputDMABufferVirPage[m_nOutputBufferInUse][i])
{
RETAILMSG(TRUE, (_T("[InterruptThreadOutputDMA] pBuffer[%d]:0x%x,g_ucTmp[%d]:0x%x\r\n"), i, m_OutputDMABufferVirPage[m_nOutputBufferInUse][i], i, g_ucTmp[i]));
break;
}
}
所以我判断杂音不是由于DMA BUFFER的数据异常导致的。
那么从杂音的来源分析分析,杂音源可能有
1.DMA传递数据的过程中出错了。
2.最初读到的数据就是错的。
3.数据进入8731后出错了。

不知道我的推断有没有问题。
请各位指教
luozhao1984 2010-10-25
  • 打赏
  • 举报
回复
如果驱动有问题应该回一直有噪音才说的通啊
shen8686 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 macrozhang001 的回复:]

你的IOCTL里面的D0时的StarOUTPUTDAM开了没有.会不会跟这里有关系.
[/Quote]
startoutputdma开了,
因为大部分时间播放都是OK的,而且即使出现杂音,也是正常播放一段时间后才出现杂音的,所以应该不会是这样的问题。

哪位高手指点下查找的方向啊,我现在都摸不着头脑了。
shen8686 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 myearth 的回复:]

兄弟,我们还在搞,问题已定位。太麻烦啊
[/Quote]
请问定位的是什么问题啊
我们好像也定位问题了
探讨探讨?
john888 2010-10-25
  • 打赏
  • 举报
回复
我也在搞8731的驱动,只是平台是2416,目前一头雾水,不知从何入手,能否把6410的8731驱动共享一下,作个参考 john3127@hotmail.com
myearth 2010-10-25
  • 打赏
  • 举报
回复
兄弟,我们还在搞,问题已定位。太麻烦啊
shen8686 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 myearth 的回复:]

我们也遇到差不多这样问题,驱动层问题
[/Quote]
请问具体是什么问题啊
myearth 2010-10-25
  • 打赏
  • 举报
回复
我们也遇到差不多这样问题,驱动层问题
IT铁哥 2010-10-24
  • 打赏
  • 举报
回复
你的IOCTL里面的D0时的StarOUTPUTDAM开了没有.会不会跟这里有关系.
shen8686 2010-10-23
  • 打赏
  • 举报
回复
再顶一个
哪位高手帮帮忙啊
p29177 2010-10-23
  • 打赏
  • 举报
回复
可苦了我了我体会
shen8686 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 loongembedded 的回复:]
楼主的测试和调试很细心啊,受教了,音频驱动很久没有看了,记忆很模糊了,在这里等待其他高手的建议了,帮楼主顶一个。
[/Quote]
谢谢
自己顶一个
loongembedded 2010-10-23
  • 打赏
  • 举报
回复
这样的问题,还是需要楼主多测试和分析啊。
加载更多回复(1)
Intel 946-G45/Q45系列集成显卡驱动14.37.1.5029版For Win2000/XP [13.63M] 2009年02月13日 是 Intel 946-G35/Q35系列集成显卡驱动15.12.75.4.1930版For Win7-32 [22.57M] 2009年10月29日 是 Intel B43/G41/G43/G45/Q43/Q45(包括移动版)系列芯片组集成显卡驱动14.42.11.5355版For WinXP-32/XP-64 [17.81M] 2011年05月21日 无 Intel B43/G41/G43/G45/Q43/Q45(包括移动版)系列芯片组集成显卡驱动15.17.17.2413版For Vista-32/Win7-32 [37.94M] 2011年07月04日 无 Intel B43/G41/G43/G45/Q43/Q45(包括移动版)系列芯片组集成显卡驱动15.17.17.2413版For Vista-64/Win7-64 [39.89M] 2011年07月04日 无 Intel英特尔Core i3/Core i5/Core i7系列核芯显卡驱动14.46.4.5337版For WinXP-32 [22.87M] 2011年04月21日 是 Intel英特尔Core i3/Core i5/Core i7系列核芯显卡驱动15.22.4.2418 WHQL版For Vista-32/Win7-32 [67.62M] 2011年06月24日 是 Intel英特尔Core i3/Core i5/Core i7系列核芯显卡驱动15.22.4.2418 WHQL版For Vista-64/Win7-64 [84.89M] 2011年06月24日 是 Intel英特尔GMA 3150显示驱动14.37.50.4.5260版For WinXP-32 [15.25M] 2010年05月31日 无 Intel英特尔GMA 500显示驱动3.3.0版For WinXP-32 [29.75M] 2009年12月21日 是 Intel英特尔GMA 600显示驱动8.14.6.3067版For Win7-32 [25.56M] 2011年07月25日 是 S3 DeltaChrome/GammaChrome系列显卡驱动6.14.10.2021-15.16.14j版For Win2000/XP [8.55M] 2005年09月02日 无 S3 Chrome S20/GammaChrome系列显卡驱动6.14.10.2401版For Win2000/XP [10.44M] 2008年03月14日 无 S3 Chrome 400/500系列显卡驱动6.14.10.0517 WHQL版For WinXP [18.98M] 2010年11月16日 是 VIA威盛VIA Chrome9 HC IGP图形核心驱动20.07.01i版For Win2000/XP [9.84M] 2008年10月10日 是 VIA威盛UniChrome Pro图形核心驱动22.00.01e版For Win2000/XP/Vista-32 [6.67M] 2007年12月03日 是 SiS矽统Xabre 600/Xabre 400/Xabre 200/Xabre 80显卡驱动3.57.53官方正式版For Win9x/ME/2000/XP [9.47M] 2004年03月09日 是 SiS矽统SiSM771/771/M671MX/M671/671/671FX显示驱动UniVGA5 5.25版For Vista-32/Vista-64 [14.41M] 2009年12月15日 是 SiS矽统661/662/671/672/760/761芯片组显示驱动UniVGA3 3.93版For Win2000/XP/2003 [14.41M] 2010年12月15日 是 SiS矽统SiS671/671FX/672/672FX/M671/M671MX/M672/M672MX芯片组显示驱动UniVGA5 5.29版For Win7-32/Win7-64 [14.41M] 2011年01月07日 是 SiS矽统315/315E显卡驱动3.51 WHQL版For Win98/ME/2000/XP [10.60M] 2003年09月21日 是 XGI图诚Volari V3系列显卡驱动1.16.02 WHQL官方正式版For WinXP [6.41M] 2006年06月13日 无 XGI图诚Volari Z7/Z9/Z9s/Z11系列显卡驱动1.11.03 WHQL版For Win2000/XP-32/XP-64/Vista-32/Vista-64 [8.62M] 2008年11月09日 无 XGI图诚Volariz V8/V5/V3XT系列显卡驱动1.09.75官方正式版For Win2000/XP [17.49M] 2006年04月17日 是 Matrox Millennium G450/Millennium G550系列显卡驱动2.05.01.030 SE版For Win2000/XP-32/2003-32/Vista-32 [11.55M] 2007年11月10日 是 Matrox Parhelia/P650/P690/P750/M9120/M9125/M9140系列显卡驱动2.09.04.061 SE U W7版For WinXP/2003/2008/Vista/Win7 [51.60M] 2010年11月29日 无 3dfx Voodoo 3/4/5显卡SFFT驱动1.5版For Win2000/XP/XP-64 万能网卡驱动兼容win7 / xp 万能网卡驱动兼容win7 / xp 万能网卡驱动兼容win7 / xp万能网卡驱动兼容win7 / xp 万能网卡驱动兼容win7 / xp 万能网卡驱动兼容win7 / xp万能网卡驱动兼容win7 / xp万能网卡驱动兼容win7 / xp万能网卡驱动兼容win7 / xp

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧