[心得经验] 我的CM6631A折腾记

[复制链接] 查看: 95740|回复: 96

53

主题

4

好友

433

积分
     

业余侠客 当前离线

Rank: 4

UID
268226
帖子
420
精华
0
经验
433 点
金钱
406 ¥
注册时间
2010-12-4
发表于 2013-11-23 22:39 | 显示全部楼层
写在前面:由于考学的原因,本不应该在这个时候折腾这些的,但是又实在放不下,还是小弄下吧,仅以此贴与广大爱好者学习交流,希望大家能提倡互帮互助和开源的精神!

CM6631A这个让人爱又让人恨的东西,我想用过的对此都很有体会,表示俺最近刚体验了一把,虽然还没有出声(毕竟只是个USB转I2S同轴的玩意,还得配D/A才能响),但是已经把俺折腾的够呛了。。。

之前做过一些DAC,虽然不算多么烧,也算是自娱自乐玩下吧,从一开始的PCM2705小声卡,到后来的同轴输入的CS4398,不为别的,就为那不满足的劲~平常用电脑比较多,所以左思右想还是专心搞下USBDAC吧,不过查了下很多USB的DAC芯片指标都太低,基本都是48kHz采样封顶了,还是16bit的。大约是去年吧,就开始关注CM6631了,看到192kHz 24bit的指标确实心动,但是一开始查了下资料,发现此芯片的资料甚少,问一些爱好者讨要资料也未果,那段时间正好在忙比赛,后来毕业的事也弄的焦头烂额的,索性就放下了。最近突然想起来这个神物,考虑搞下。其实本来是想自己做一款高性能的桌面外置声卡的,正好这个芯片满足需求,192kHz采样24bit位宽,支持I2S输入输出,同轴输入输出,HDA接口,还带MIDI接口!(那段时间研究MIDI正愁没好的接口电路用~)正巧别坛的一朋友做信号处理器也需要一个音频codec,所以俺就鼓足勇气开始折腾之旅~~~

因为资料太少,百度Google淘了好几天都没找到点有价值的东西,无奈,只能凭官方的那一册写的很不详细的Datasheet来完成测试板的设计。。。记得一开始看它的Datasheet的时候,没有找到官方参考电路,对芯片的一些详细说明也没有,当时就开始绝望了。不过后来反复的看,发现C-Media对CM6631A的引脚描述用了很大篇幅,仔细看,似乎明白了点什么~凭借之前做PCM2705的经验,仔细读了下每个引脚的文字描述,顿时兴奋不已!其实C-Media通过引脚描述相当于把大半张电路图告诉你了!当天就打开Protel开始画图~

图画完了,开始加封装,布PCB,一切都进行的那么顺利,PCB图发厂的那一刻,心里默念“保佑我别出问题别出问题...”,当拿到PCB后立马焊出来,擦干净,插电脑上测试!结果。。。Unknown Device。。。

说到这里,不得不说一点,当官方参考很不全甚至几乎没有的时候凭经验去设计东西很容易走进误区,本人就是这么悲剧的。。。量了下各点电压都正常,怎么会认不到呢?一开始怀疑芯片没有复位,但是说不通,因为毕竟已经有反应了,查看设备属性,VID PID什么的都认到了,按说芯片应该是正常工作了。不过怎么着也捣鼓试下吧,用镊子短接看能不能起作用。短接了几次104复位电容,唯独有一次成功了!设备识别了,但是后来又不行了(我一开始设计的是用RC复位,并不是用的复位芯片),无奈,难道USB模拟前端布线不规范?如果真是这样那全前功尽弃了。。。又陷入困境的我,想起来去看看人家怎么做到,什么淘宝mydigit都挨着搜了下,看看别人的板子的外观图,和自己的对比下,最后发现复位电路实际上并不是我想的那样用个RC,和51单片机那样,就能用的,实际上CM6631A的板子大部分人都是用的MAX810作复位源。难道真是这个的问题?不管咋样,抱着试一试的心理,又从淘宝订了MAX810S(2.93V阀值)。趁等的机会,先再调下。

用镊子短接复位电容若干次,终于有一次正常识别了,兴奋不已,赶紧趁着能用了刷固件,打开华硕的工具,写入1110版固件,结果一点update提示我Flash's power is down。。。难道Flash部分也有问题?这一下囧大了。无奈,断开USB线,再插上,同时用镊子短接复位部分直到又一次正常识别,赶紧刷固件,这次刷进去了,可是。。。这是史上最悲剧的时刻。。。。。。没发现华硕的工具显示出来的设备名并不是我的6631A的,实际上是我笔记本摄像头的PID!(cao了,为啥刷6631的工具能把摄像头认出来?摄像头确实是有固件的,毕竟摄像头的主控实际上是个DSP,内部也是有程序的,但是华硕的工具就那么不长眼???cao)结果就是摄像头废了,固件被错误写入到摄像头内,导致摄像头不能正常启动,设备名也变了。。。哎,损失40¥。。。

这也算是个教训吧,刷固件啥的真不是闹着玩的,它不止可能损坏你要刷写的硬件,更有可能损坏你想不到的东西。。。至此,已经被6631A折腾的快吐血了,unknown device,还要用镊子短接复位好几次才可能恢复正常,固件又刷错了,全是大悲剧啊。。。

今天,一切终于又好起来了!MAX810到了,赶紧拆下RC贴上去,插线,果然,确实是复位的问题!正常识别了,赶紧用一朋友给的官方的刷写工具刷带A版本的固件进去,结果认不到。转移到XP的台机上,认到了,开始刷写,出错,换到主机后面的USB口,刷进去了,不过刷写速度太慢了,感觉似乎哪里还是有问题,拔下来插到本本上,装官方驱动,重启,OK!终于见到了期待已久的USB 2.0 High Speed True HD Audio!

写了这么多,总结一下吧~
1.6631/6631A的复位电路必须用专用复位IC,如MAX810,复位阀值用2.93V的;
2.USB D+的1.5k上拉电阻可以去掉,我一开始按照2705的做法加了,后来调试的时候去掉了发现也能用~
3.固件,还是固件!一定要谨慎,刷坏了板子没事,别把电脑也毁了就好。。。(有点夸张,不过确实也差不多了)
4.其实此次折腾给我的最大收获就是,有时候经验和惯性思维可以帮我们,也可能给我们制造麻烦。比如这次在没有任何参考的情况下自己设计6631A的外围电路,虽然电路最终弄好了,但是期间也经历了不少波折,比如复位电路的问题,一开始根本没想到会是它的问题,更没想到6631A对复位信号要求那么高。最终这一切都捣鼓好了,也算是歪打正着了吧~

那么,最后附上一些个人总结的资料,希望能帮到大家~

我画的6631A的测试板原理图,所有端口都已引出(I2S S/PDIF HDA MIDI GPIO):
6631A_Test.rar (69.72 KB, 下载次数: 18187)

53

主题

4

好友

433

积分
     

业余侠客 当前离线

Rank: 4

UID
268226
帖子
420
精华
0
经验
433 点
金钱
406 ¥
注册时间
2010-12-4
 楼主| 发表于 2013-12-14 18:30 | 显示全部楼层
再贴一个最新的固件升级程序和目前俺收集到的固件包集合:

2.1.0.9版CM6631A固件升级程序,支持WIN7下直刷:
http://bbs.hifidiy.net/thread-895099-1-1.html(链接在9L,再次感谢btbf007)
0101版(只有输出)0108版(支持输入输出和MIDI全功能版)0208版(只有输出支持384kHz)
6631A_FW.rar (55.79 KB, 下载次数: 18120)

57

主题

3

好友

1860

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
275451
帖子
3958
精华
0
经验
1860 点
金钱
1939 ¥
注册时间
2010-12-24
发表于 2013-11-23 23:51 | 显示全部楼层
很好  并不是6631不稳定   大把厂家在用它    不稳定大厂也就不会用

88

主题

19

好友

798

积分
     

职业侠客 当前离线

Rank: 5Rank: 5

UID
359347
帖子
4456
精华
0
经验
798 点
金钱
656 ¥
注册时间
2011-7-1
发表于 2013-11-24 07:07 | 显示全部楼层
支持一下!

2

主题

0

好友

247

积分

业余侠客 当前离线

Rank: 4

UID
618788
帖子
256
精华
0
经验
247 点
金钱
243 ¥
注册时间
2013-9-19
发表于 2013-11-24 09:09 | 显示全部楼层
楼主考研? 顶  加油!
考完后记得再来更新哦

2

主题

0

好友

104

积分

论坛游民 当前离线

金刚狼

Rank: 3Rank: 3

UID
637008
帖子
108
精华
0
经验
104 点
金钱
102 ¥
注册时间
2013-11-8
发表于 2013-11-24 09:09 | 显示全部楼层
最近买了台DAC,usb用的是SA9023的,搞得ASIO驱动都没法用,
之前用过TE7022,ASIO驱动有效,现在卸载了TE7022的驱动,装了SA9023的ASIO驱动,死活不认,不知能解决否

5

主题

1

好友

650

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
26586
帖子
1566
精华
0
经验
650 点
金钱
648 ¥
注册时间
2007-8-31
发表于 2013-11-24 09:35 | 显示全部楼层
学习了,谢谢分享

11

主题

1

好友

495

积分

业余侠客 当前离线

终极电流

Rank: 4

UID
6329
帖子
828
精华
0
经验
495 点
金钱
424 ¥
注册时间
2005-11-14
发表于 2013-11-24 09:59 | 显示全部楼层
支持折腾,CM6631A的可以折腾到384kHz喔

9

主题

0

好友

193

积分
     

论坛游民 当前离线

Rank: 3Rank: 3

UID
189146
帖子
183
精华
0
经验
193 点
金钱
179 ¥
注册时间
2010-4-7
发表于 2013-11-24 11:16 | 显示全部楼层
不错支持下,技术派的要顶

53

主题

4

好友

433

积分
     

业余侠客 当前离线

Rank: 4

UID
268226
帖子
420
精华
0
经验
433 点
金钱
406 ¥
注册时间
2010-12-4
 楼主| 发表于 2013-11-24 12:47 | 显示全部楼层
心只有你8958 发表于 2013-11-23 23:51
很好  并不是6631不稳定   大把厂家在用它    不稳定大厂也就不会用

确实,都在用说明本身没问题,可能是USB部分难弄吧?看到一些用6631的也抱怨说USB不好使经常出问题~

查了下资料,USB2.0的设计确实对布线等各方面要求比较高,我的板子虽然已经能正常被系统识别了,但是插上去后提示“此设备可提高性能”,回放品质最高也只能调到48kHz 24bit。问了下是接口速度的问题,当前片子工作在1.1模式,自然不能支持高的解码率。但是我的笔记本明显是USB2.0的接口,换了根数据线也不行,无奈找了个小USB2.0HUB插上,把板子插那上面竟然行了!不再提示“此设备可提高性能”,并且解码率也可以调到192kHz 24bit~但是换另一根数据线插HUB就无法设别设备。。。两根数据线都标着支持USB2.0,一根是MIDI键盘原带的,一根是电脑城5块钱买的。总体来说这个问题很诡异。。。

问了下那个做信号处理的朋友,他说是接口一致性的问题,不好说具体哪有问题,需要用仪器检测,他那里有专门测试USB的设备,已经把板子寄给他了,等他的测试结果出来了再公布!

53

主题

4

好友

433

积分
     

业余侠客 当前离线

Rank: 4

UID
268226
帖子
420
精华
0
经验
433 点
金钱
406 ¥
注册时间
2010-12-4
 楼主| 发表于 2013-11-24 12:47 | 显示全部楼层
dfyy8888 发表于 2013-11-24 09:09
最近买了台DAC,usb用的是SA9023的,搞得ASIO驱动都没法用,
之前用过TE7022,ASIO驱动有效,现在卸载了TE ...

抱歉没用过9023,估计可能也是USB部分设计不合理导致的吧?

53

主题

4

好友

433

积分
     

业余侠客 当前离线

Rank: 4

UID
268226
帖子
420
精华
0
经验
433 点
金钱
406 ¥
注册时间
2010-12-4
 楼主| 发表于 2013-11-24 12:51 | 显示全部楼层
stars 发表于 2013-11-24 09:59
支持折腾,CM6631A的可以折腾到384kHz喔

btbf007提供的固件说是I2S可以支持384k的输出,但是我的列表里只能找到最高192k。他在帖子里说384k模式只支持TI的部分DAC芯片,而我的板子是裸奔测试的,还没接任何D/A芯片,难道是因为没接DAC所以才认不到384k?而且这个片子是有录入功能的,引脚里有S/PDIF输入和两组ADC输入,但是插上后声音设备录入列表里却看不到,难道也是因为没接芯片的原因?
QQ图片20131124124418.jpg

57

主题

3

好友

1860

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
275451
帖子
3958
精华
0
经验
1860 点
金钱
1939 ¥
注册时间
2010-12-24
发表于 2013-11-24 12:54 | 显示全部楼层
ry7740kptv 发表于 2013-11-24 12:51
btbf007提供的固件说是I2S可以支持384k的输出,但是我的列表里只能找到最高192k。他在帖子里说384k模式只 ...

384不是这样设置的 呵呵

57

主题

3

好友

1860

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
275451
帖子
3958
精华
0
经验
1860 点
金钱
1939 ¥
注册时间
2010-12-24
发表于 2013-11-24 12:54 | 显示全部楼层
ry7740kptv 发表于 2013-11-24 12:51
btbf007提供的固件说是I2S可以支持384k的输出,但是我的列表里只能找到最高192k。他在帖子里说384k模式只 ...

W7也就192
头像被屏蔽

11

主题

2

好友

535

积分

禁止发言 当前离线

UID
610219
帖子
725
精华
0
经验
535 点
金钱
605 ¥
注册时间
2013-8-16
发表于 2013-11-24 14:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

53

主题

4

好友

433

积分
     

业余侠客 当前离线

Rank: 4

UID
268226
帖子
420
精华
0
经验
433 点
金钱
406 ¥
注册时间
2010-12-4
 楼主| 发表于 2013-11-24 14:21 来自手机端 | 显示全部楼层
y15388169 发表于 2013-11-24 14:16
要在linux、mac下才支持384k,windons就不要折腾了

了解了,不过感觉好不公平……还得装个Linux来听……
头像被屏蔽

11

主题

2

好友

535

积分

禁止发言 当前离线

UID
610219
帖子
725
精华
0
经验
535 点
金钱
605 ¥
注册时间
2013-8-16
发表于 2013-11-24 14:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

11

主题

1

好友

495

积分

业余侠客 当前离线

终极电流

Rank: 4

UID
6329
帖子
828
精华
0
经验
495 点
金钱
424 ¥
注册时间
2005-11-14
发表于 2013-11-24 15:02 | 显示全部楼层
y15388169 发表于 2013-11-24 14:16
要在linux、mac下才支持384k,windons就不要折腾了

WINXP可以的,foobar2000,用ASIO输出,CM6631A的I2S输出接9018测试过,能正常播放384k的
头像被屏蔽

11

主题

2

好友

535

积分

禁止发言 当前离线

UID
610219
帖子
725
精华
0
经验
535 点
金钱
605 ¥
注册时间
2013-8-16
发表于 2013-11-24 15:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

11

主题

1

好友

495

积分

业余侠客 当前离线

终极电流

Rank: 4

UID
6329
帖子
828
精华
0
经验
495 点
金钱
424 ¥
注册时间
2005-11-14
发表于 2013-11-24 15:16 | 显示全部楼层
古董机只能装到XP,再高级点的系统就应付不来了

6

主题

0

好友

50

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
640760
帖子
59
精华
0
经验
50 点
金钱
44 ¥
注册时间
2013-11-19
发表于 2013-11-24 15:31 | 显示全部楼层
学习了,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部