芯片级的维修改装!Digigram广播级声卡 PCX924v2改VX222v2小记

我去年买了个卡(其实是上个月).

法国digigram公司的广播用录放声卡,大约是06年的产品,因为他是专业级卡里边最容易买到的,曾经让我想了好几年.不过几年前这个卡并不便宜,上千的价格基本等同于当时的高端现代声卡,对于一个指标并不怎么好的老声卡而言太贵.终于到上个月发现了一块价格稍微低廉一点的,不过就算便宜,也基本相当于一套EMU1212M,犹豫再三还是买下来了。

漂亮的蓝色外壳(其实是坑爹货来的)。

买之前我已经做了些功课,从官网知道了这个东西支持windows764位,但是官网也提到了驱动可能存在兼容性问题。并且指出没有ASIO和Directsound驱动。这个比较失望了,基本和主流声卡脱轨,他只支持MME和WAVE驱动,基本上都是和95年代的东西。当时并不知道这会有什么后果.

扒掉蓝色的外皮,里边就这德行的。看着还没创新的东西显得"hifi"。

模拟部分

另一个角度。

AK4528是一体化的AD/DA。最高支持96K。在这块卡上驱动只支持到了48K。

然后我费劲给这个卡做了模拟和数字的辫子线。

好了,讲讲后续,我激动万分的装好卡,开机,装驱动。然后..恩??

在设备管理器内有声卡,驱动正常工作,声卡的控制台软件也显示出了型号。但是系统的音频管理界面并没有这个东西。此时我才知道不支持Directsound是何等麻烦。因为win7的主声音驱动程序就是directsound的。没有办法,尝试其他方案,打开Audition,到硬件管理界面,发现Au还支持MME,能识别这块声卡。但是不能进行录放,估计是某处设定错误。

打开foobar2k,发现fb根本不支持MME或者WAVE,认不出来。

最后电脑上唯一可以识别这块声卡的程序就是迅雷影音。能进行播放,音质还算可以。但是使用起来太蛋疼了,只能通过一个程序播放,极其不便此时这块卡暂时弃用,静静的在机箱里耗电

为了解决驱动问题,我又去翻digigram官网,此时看到一个和他同一代的VX222声卡,支持directsound/ASIO等比较主流的现代技术。随手搜了一下这个222的图片,发现。。。。他和PCX924v2根本就是一块板做出来的!相比924,222少了一个CD输入和MIC放大器选件。模拟部分少了一个CS3310数字电位器和一个电子开关,以及CD部分的零件。其他看起来是完全一样的

此时我就意识到有可能将PCX924改成更好用的VX222,让他继续发挥余热。

先来研究一下卡上最大的三个家伙,他们分别是:

XILINXFPGA:推测是进行音频流传输以及重采样的。这都是FPGA在数字音频里的优势工作。

MotorolaDSP56:DSP处理器,根据声卡的手册可以知道,这块卡能对MPEG进行硬编解码,并且具有实时滤波器和动态压限功能,当然这是DSP的工作了。

PLXPCI9030:这是PCIIO,负责卡上其他两个大家伙和PCI的通讯。

那么924和222如何改动呢?无非存在两种可能,其一,DSP和FPGA的固件不同,从而让声卡显示不同的型号。如果如此,那就没有进一步研究的必要了。其二,在声卡的某处有一个"跳线",可以让他启用不同的程序。鉴于绝大多数良好的设计都应该具有同系列的兼容性,直觉告诉我可能性2比较大。只要找到修改跳线的办法,就能把它变成222.

我的第一想法是,既然是一块板做出来的,如果把924强制装222的驱动会怎么样呢?

于是我找到了声卡的驱动文件夹,此处有重大发现!

在驱动文件夹下有一个简单的log文件,内部记录了声卡的固件加载过程,并且每次电脑开机都会加载!

从加载过程可以看得出来,驱动先对声卡型号进行判断,然后依次下载924的FPGA和DSP固件,最终完成启动。

如果能让他下载VX222的固件,那这块声卡就变成VX222了。

先从简单的开始,我直接把222的固件改文件名,替换为924的。开机,加载,看log。FPGA的可以刷进去,DSP的报错版本不匹配。并且声卡的控制台仍然识别为PCX924v2.此路不通。开始观察声卡的硬件。

根据曾经我开发过CY7C68013USBIO的经验,系统识别一个硬件通常需要得知硬件的VID/PID,这是不同硬件唯一的识别码,对于68013,这个VID存储在EEPROM内,只要IC通电,就会从EEPROM内读取相关数据并报告给电脑。

这块卡使用的是PLXPCI9030,他类似68013,旁边挂了一颗93C56,对于PCI,所需要的识别参数是VENDOR和SUBSYS。我当即认定这块EEPROM内存储着我需要的参数。

对此有初步概念后,我需要知道VX222的SUBSYS码是多少

通过PCIID的查询(这是不同硬件的唯一编号)。得知924和222的VENDOR是相同的,都是PLX的10B5,但SUBSYS有区别,一个是9e01,一个是9c01.只要对此进行修改,就能改变声卡报告给系统的型号。

拆93C56读出。很失望,内部没有任何数据。我当时认为还有第二种可能性。也就是PCI9030的SUBSYS是FPGA或者DSP在卡加电以后配置的,并没有采用EEPROM配置方式.如果是这样的,这条路又是死路。

继续观察电路,在声卡的另一边还有一颗24C02(已拆下)和FPGA的加载IC.

我甚至已经给24C02准备好延长线了。

读取该24C02,确实有一些发现。这里开头有9e01,后边跟着一串ASCII数字,这是声卡的序列号。

我激动的把前边改成9c01,序列号改成"66666"方便观察变化。

烧录,喝杯奶压压惊,装好声卡,开机。

开机以后除了序列号变成了66666,声卡的型号并未改变

拿掉这个24C02开机,型号居然还没变,只是序列号没了。

似乎重新走入死胡同了,再来杯奶..继续分析

既然拆去24C02他仍然能启动,我再拆掉了FPGA的加载IC。结果声卡居然又识别出了型号,并且给FPGA和DSP都成功下载了固件!

此时只有两种可能性了,其一,DSP改变了SUBSYS,由于它是内置存储器的,无解。其二,PCI9030还有其它方式能改变SUBSYS,需要继续研究。

为了让路显得是能走得通的我决定开始啃PCI9030数百页的DATABOOK

基本结构

关键在此处,9030的手册表明,SUBSYS只能是采用默认值或者由EEPROM加载,无其他任何外部方式可以对其进行改写。

我尝试拆除PCI9030的加载EEP,也就是93C56,然后装好声卡。结果声卡被识别为“未知设备”。这是一个重大突破,说明配置信息的确在EEPROM内,可是为什么之前读取的是空白呢?

被这个东西坑了一把,绕了一个巨大的圈子又回到原点了。

赶快从9030的手册内找到EEPROM的MEMORYMAP,定位SUBSYS的偏移地址

在该地址上果然看到了9e01.改成9c01,下载,多下载了两次,然后校验了多次,确定没有出错以后重新装回去。

开机,这次成功了。digigramasio驱动和asio4all以及系统的音频控制台都识别到了这块声卡。不过忘了装24C02,序列号没显示出来。

装好24C02,66666了。

至于硬件上的差异,我只是随手改动了FPGA旁边一颗4.7k电阻的位置,改成了和VX222一样的。并不知道这有什么影响。

模拟部分多余的零件没有拆除,没有改动。目前测试声卡的监听口和平衡输出都正常,录音是否正常我就没研究了,毕竟我不需要录音。

此时这块声卡又可以继续发挥余热了。

搞个标签糊弄一下:)

纯粹为了满足一下几年前的想法,看看到底是怎么样的东西。

另外,这是这块卡的数字输出抖动,40K附近的峰值是音频分析仪固有的(97年的机子,太老了,性能不太好了)。

这个是我淘宝上随便买的CM6631,装了所谓的SItime美国晶振。

标榜低抖动输出的CM6631让一个上世纪的音频分析仪测出来如此差的结果,太说不过去了吧。

当然取决于设计,电源噪声会导致抖动增加,淘宝那些中学文凭的人做的板子基本不遵循什么高速和敏感电路设计规范

so即便使用了当代最高规格的方案,垃圾设计一样能把他变成板载螃蟹级别的东西

-完-

谢谢观看!

浏览更多精彩内容请登录数码之家网站

技术交流请联系原作者

作者:kreina

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐