58

帖子

0

TA的资源

一粒金砂(初级)

21
 
4. Audio driver 不夠 robust, 一些 hardware error 沒去處理, ac97 沒法繼續工作. -- 軟體上的可能原因

疑问:

ac97不工作会导致无法触发DMA中断么?

DMA中断触发条件是什么?

跟了一下代码,发现:放mp3或点击触摸,正常一段时间后,有一次初始化DMA后就进不去中断了!之后就再也进不去了!

下面是串口打印信息:
StartOutputDMA
WriteCodecRegister
WriteCodecRegister
AMP ON
StartOutputDMA1
InitOutputDMA Start   //然后触发中断
WAVDEV2.DLL:InterruptThread()  DSTAT1= 0x0
WAVDEV2.DLL:TransferOutputBuffers()  BytesTotal = 0x1000
WAVDEV2.DLL:InterruptThread()  DSTAT1= 0x3fe
WAVDEV2.DLL:TransferOutputBuffers()  BytesTotal = 0x1cf0
WAVDEV2.DLL:InterruptThread()  DSTAT1= 0x3fe
WAVDEV2.DLL:TransferOutputBuffers()  BytesTotal = 0xcf0
WAVDEV2.DLL:InterruptThread()  DSTAT1= 0x3fe
StopOutputDMA
WAVDEV2.DLL:TransferOutputBuffers()  BytesTotal = 0x0
//又一次启动DMA
StartOutputDMA
WriteCodecRegister
WriteCodecRegister
AMP ON
StartOutputDMA1
InitOutputDMA Start  //到这就没反应了!

回复

79

帖子

0

TA的资源

一粒金砂(初级)

22
 
1. DMA request 來自 AC97 TX FIFO empty or RX FIFO full, 當然, 應該說是 under water level or over water level.

2. DMA interrupt 來自 DMA buffer empty or full.

故 AC97 不工作, 則 FIFO 不會變動, 則不會產生 DMA request, 故 DMA buffer 就不會變動, 當然 interrupt 就不會觸發

Source code 就自己追吧, 這就無法幫你了

Paul, Chao @ Techware
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

23
 
可能是硬件问题,之前没往这方面想,汗!

wm9711偶尔会停振,原因查找中……
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

24
 
问题解决,不知道RESET脚受到什么东西影响,还是多了8脚输出后2440 AC97的RESET脚不是很稳定?此脚加一105电容解决问题。

硬件的问题真是说不清,道不明……

不过这只是暂时解决

我觉得还是代码不够好,引用Paul, Chao 的话:Audio driver 不夠 robust, 一些 hardware error 沒去處理, ac97 沒法繼續工作

有时间还是要再仔细研究一下代码!

非常感谢几位的热心帮助:Paul Chao 、hzdysymbol……,向你们学习!

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表