调试ES1371声卡的现场图:
ES1371(1373)声卡图:
历史回顾
当时选择ES371声卡的缘由:
1,是因为它属于32bit的PCI总线下的设备,也是学习PCI设备的必须要掌握的一步。
2,VMware虚拟机对应ES1371声卡,便于脱离实际设备,专心调试程序。
3,关键是在网上看到《编写基于VMware5的声卡驱动》,作者:张立殷。
这篇文章是PDF格式,可以下载。
《编写基于VMware5的声卡驱动》比较简略,但对学习过《30日自制OS》的朋友
来讲,一定会心领神会,知道作者在讲什么。我按照该文的步骤,还下载了
《ES1371 datasheet》,终因遇到种种本人水平无法克服的困难,放弃改用同样是
PCI的CMI8738声卡。
花了功夫而没有结果,终究很难受。重新鼓起勇气,再挑战一次。在完成了声卡
初始化,装载音频文件,设置音量,起动声卡,声卡中断响应,DMA输出数据位置
寄存器也正常计数中工作。但结果就是没有声音。最令人颓丧的就是遇到这种情况。
突然想到还有一个AC97 Codec 部分一直不曾注意(CMI8738就不用关心AC97),
《编写基于VMware5的声卡驱动》文章里也没有提到,只提到要作AC97 Codec的
RESET。仔细阅读AC97 Codec 规范书,看到其中Audio Regster中也有音量参数。
我查看一下,我的ES1371声卡中寄存器参数是0x8000,其中bit15这个参数值,恰
恰是静音位! 所以设置0x8000,或0x0000都是无声的。于是我改设0x0800值,写
入左右声道寄存器里。好了,喇叭里终于传出叽里咕噜的声音来了。有点像《猎字
99号》电影中的发送高速电报的声音。接下来就好办了,选择不同采样频率的音频
文件验证,最后确认48000Hz才是默认的采样频率。大功告成。
还存在的问题:
1,目前只对应48000Hz采样频率。其他采样频率还需要修改不知道哪里的某个控制
寄存器里的参数。
2,拿到VMware上面试运行,还是没有声音。因为写进去的音量值,不被VMware认
识。怎么并非一 一对应啊?
就这样了,实际ES1371声卡已经正常发声了,先保存好程序。
06.08.
ES1371(1373)声卡图:
历史回顾
当时选择ES371声卡的缘由:
1,是因为它属于32bit的PCI总线下的设备,也是学习PCI设备的必须要掌握的一步。
2,VMware虚拟机对应ES1371声卡,便于脱离实际设备,专心调试程序。
3,关键是在网上看到《编写基于VMware5的声卡驱动》,作者:张立殷。
这篇文章是PDF格式,可以下载。
《编写基于VMware5的声卡驱动》比较简略,但对学习过《30日自制OS》的朋友
来讲,一定会心领神会,知道作者在讲什么。我按照该文的步骤,还下载了
《ES1371 datasheet》,终因遇到种种本人水平无法克服的困难,放弃改用同样是
PCI的CMI8738声卡。
花了功夫而没有结果,终究很难受。重新鼓起勇气,再挑战一次。在完成了声卡
初始化,装载音频文件,设置音量,起动声卡,声卡中断响应,DMA输出数据位置
寄存器也正常计数中工作。但结果就是没有声音。最令人颓丧的就是遇到这种情况。
突然想到还有一个AC97 Codec 部分一直不曾注意(CMI8738就不用关心AC97),
《编写基于VMware5的声卡驱动》文章里也没有提到,只提到要作AC97 Codec的
RESET。仔细阅读AC97 Codec 规范书,看到其中Audio Regster中也有音量参数。
我查看一下,我的ES1371声卡中寄存器参数是0x8000,其中bit15这个参数值,恰
恰是静音位! 所以设置0x8000,或0x0000都是无声的。于是我改设0x0800值,写
入左右声道寄存器里。好了,喇叭里终于传出叽里咕噜的声音来了。有点像《猎字
99号》电影中的发送高速电报的声音。接下来就好办了,选择不同采样频率的音频
文件验证,最后确认48000Hz才是默认的采样频率。大功告成。
还存在的问题:
1,目前只对应48000Hz采样频率。其他采样频率还需要修改不知道哪里的某个控制
寄存器里的参数。
2,拿到VMware上面试运行,还是没有声音。因为写进去的音量值,不被VMware认
识。怎么并非一 一对应啊?
就这样了,实际ES1371声卡已经正常发声了,先保存好程序。
06.08.