[心得经验] 历时六年的DAC解码器[2009参赛作品]

[复制链接] 查看: 115144|回复: 217

133

主题

0

好友

4912

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
278
帖子
4622
精华
4
经验
4912 点
金钱
2799 ¥
注册时间
2004-4-4

元老级

发表于 2009-12-17 13:54 | 显示全部楼层
谢谢!

4

主题

0

好友

2145

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
44433
帖子
2817
精华
0
经验
2145 点
金钱
2129 ¥
注册时间
2008-5-30
发表于 2009-12-17 13:56 | 显示全部楼层
建议出板推广..

4

主题

0

好友

274

积分

业余侠客 当前离线

Rank: 4

UID
1187
帖子
114
精华
1
经验
274 点
金钱
89 ¥
注册时间
2004-8-10
 楼主| 发表于 2009-12-17 14:04 | 显示全部楼层
回卡西利亚斯兄:
这台机器的设计理念,主要是充分利用好手头现有资源,做到物尽其用不浪费,让现有资源发挥最大效力。
当然,9001之类的新DIR芯片性能确实也让我垂涎,我也知道CPLD内部routing无法控制,搞不好会带来更多的抖动。但是我个人不太习惯一个方案做到一半看到有更好的东西就丢下不管去做新方案,而且现在不比年轻时候,人懒散多了,重新设计一张板子,包括各种元件选配都是一件令我很头疼的事情。在原先构架上挑战最高性能,其实也是一种乐趣。
第二PLL包括VCXO的使用,不管从示波器估测主时钟质量(我这里没有能可以精确测jitter的仪器设备),还是从主观听感来说,当然这个我不敢绝对的说没有主观因素,对整体效果是有明显的正面改善的。
最后请教一下兄,如何用一个VCXO实现44.1k相关的系列取样频率和48k相关的同时兼容?
谢谢您的指正!

4

主题

0

好友

274

积分

业余侠客 当前离线

Rank: 4

UID
1187
帖子
114
精华
1
经验
274 点
金钱
89 ¥
注册时间
2004-8-10
 楼主| 发表于 2009-12-17 14:18 | 显示全部楼层
建议出板推广..
意大利花园 发表于 2009-12-17 13:56


把所有的关键资料发上来,意思就是我自己不会出版推广,因为现在完全无这方面的条件和精力。
有想开板推广的朋友,可以随便使用,必要的情况下,我可以在力所能及的条件下无偿提供技术支持。
当然如果要开板的朋友,弄好了送我一张最好。

0

主题

0

好友

483

积分

业余侠客 当前离线

散兵游勇

Rank: 4

UID
23733
帖子
461
精华
1
经验
483 点
金钱
463 ¥
注册时间
2007-6-17
发表于 2009-12-17 14:31 | 显示全部楼层
佩服LZ的用心、耐心和认真!

设计过程很见功底,我有打算也做个好点的DAC,但这方面知识还欠缺很多,将来希望能得到LZ的指教。

有一问相询:

尽管MAX3128ATC100的各方面指标相比很老的7128都很不错,但CPLD的信号时延抖动方面一直不能和专门的功能器件相比,LZ采用的电路图编译形式又可能比代码编译电路实现效率会低一些,这样可能会更加大信号的抖动。不知LZ是否对比过2nd PLL输出和CPLD输出的信号情况?(我曾经也想过用CPLD分离,但我们曾经用10k10设计的一个高频时钟周期测量电路不是很成功,误差较大,当时就怀疑是边沿抖动带来的误差)

4

主题

0

好友

274

积分

业余侠客 当前离线

Rank: 4

UID
1187
帖子
114
精华
1
经验
274 点
金钱
89 ¥
注册时间
2004-8-10
 楼主| 发表于 2009-12-17 14:45 | 显示全部楼层
因为这个分离电路基本上都是由DFF来构成的,组合逻辑和其它时序逻辑很少。要实现64×FS的数据流的重整,不管是用代码写还是用电路图,都要用到同样数量的宏单元,HDL也没有可以进行底层布线的功能,用quartusII提供的LPM宏元件实质上也是代码。另外,有个专业做IP的朋友有段时间无聊写过一个同样功能的分离器代码来测试,看编译结果几乎完全一样。实际测试也没有发现差别。
VCXO的输出端和经过CPLD的输出信号,限于测试条件和水平,在我的示波器上看差别不明显。

1

主题

1

好友

572

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
27691
帖子
437
精华
2
经验
572 点
金钱
483 ¥
注册时间
2007-9-25
发表于 2009-12-17 14:45 | 显示全部楼层
总的构思不错,但实现上有几点值得推敲:
1)MCLK信号通路上元件过多,难以实现阻抗匹配和优化布线,另外继电器也没有采用适用于RF的型号。
2)关键的MCLK切换使用了继电器,由于触点抖动和非同步切换会造成glitch,严格的讲是后面的CPLD逻辑电路所不允许的。
3)生成互补数字信号用一个32位的移位寄存器就够了吧!128cell的CPLD有点大材小用。
4)LZ现有的软硬件设备完全可以评价jitter的影响,建议google一下Julian Dunn的文章。

6

主题

0

好友

387

积分

业余侠客 当前离线

Rank: 4

UID
17036
帖子
335
精华
0
经验
387 点
金钱
324 ¥
注册时间
2007-1-7
发表于 2009-12-17 14:54 | 显示全部楼层
这么好的帖子要顶!!

0

主题

0

好友

483

积分

业余侠客 当前离线

散兵游勇

Rank: 4

UID
23733
帖子
461
精华
1
经验
483 点
金钱
463 ¥
注册时间
2007-6-17
发表于 2009-12-17 15:05 | 显示全部楼层
因为这个分离电路基本上都是由DFF来构成的,组合逻辑和其它时序逻辑很少。要实现64×FS的数据流的重整,不管是用代码写还是用电路图,都要用到同样数量的宏单元,HDL也没有可以进行底层布线的功能,用quartusII提供的 ...
hanyu 发表于 2009-12-17 14:45


也是,这个电路确实不复杂,图纸编译和代码编译应该产生不了太大差异。

一直很困惑的是jitter对音质的影响是否已经达到了可闻的程度,LZ在听感上很明显吗?

14

主题

0

好友

478

积分

业余侠客 当前离线

Rank: 4

UID
16018
帖子
625
精华
0
经验
478 点
金钱
428 ¥
注册时间
2006-12-16
发表于 2009-12-17 15:06 | 显示全部楼层
楼主写的都是很有价值的东西,学习了

0

主题

0

好友

483

积分

业余侠客 当前离线

散兵游勇

Rank: 4

UID
23733
帖子
461
精华
1
经验
483 点
金钱
463 ¥
注册时间
2007-6-17
发表于 2009-12-17 15:13 | 显示全部楼层
总的构思不错,但实现上有几点值得推敲:
1)MCLK信号通路上元件过多,难以实现阻抗匹配和优化布线,另外继电器也没有采用适用于RF的型号。
2)关键的MCLK切换使用了继电器,由于触点抖动和非同步切换会造成glitch ...
simmconn 发表于 2009-12-17 14:45


LZ可能是有大量现成的3128

4

主题

0

好友

274

积分

业余侠客 当前离线

Rank: 4

UID
1187
帖子
114
精华
1
经验
274 点
金钱
89 ¥
注册时间
2004-8-10
 楼主| 发表于 2009-12-17 15:17 | 显示全部楼层
总的构思不错,但实现上有几点值得推敲:
1)MCLK信号通路上元件过多,难以实现阻抗匹配和优化布线,另外继电器也没有采用适用于RF的型号。
2)关键的MCLK切换使用了继电器,由于触点抖动和非同步切换会造成glitch ...
simmconn 发表于 2009-12-17 14:45

谢谢您一针见血的指出问题和提供的线索
MCLK信号通路过多元件确实是个大问题,最后已经把这些元件全部除去了,只剩下继电器切换和CPLD,划断了些线路,但要继续优化需要重新开板了。
我现在身处偏僻小城市,加工电路板和寻找元件都是非常非常麻烦的事情,要优化设计新一板PCB来回几乎需要一个月周期,经过您的提醒,回头去设法找找适合RF的继电器。
继电器切换造成的glitch,在切换的时候大概会有0.几秒的破音,然后就恢复正常。这并不完全是触点抖动造成的,还因为PLL电路需要锁定时间。因为实际听音乐的时候不可能随时都在切换取样频率,这个问题影响并不严重。
要严格实现左右声道的同步,就是下图中的时序,还是需要64位shiftreg的。

0

主题

0

好友

483

积分

业余侠客 当前离线

散兵游勇

Rank: 4

UID
23733
帖子
461
精华
1
经验
483 点
金钱
463 ¥
注册时间
2007-6-17
发表于 2009-12-17 15:32 | 显示全部楼层
谢谢您一针见血的指出问题和提供的线索
MCLK信号通路过多元件确实是个大问题,最后已经把这些元件全部除去了,只剩下继电器切换和CPLD,划断了些线路,但要继续优化需要重新开板了。
我现在身处偏僻小城市,加工 ...
hanyu 发表于 2009-12-17 15:17


补码是用来给另一个DAC提供反相转换并与同相输出构成平衡式输出的吗?

4

主题

0

好友

274

积分

业余侠客 当前离线

Rank: 4

UID
1187
帖子
114
精华
1
经验
274 点
金钱
89 ¥
注册时间
2004-8-10
 楼主| 发表于 2009-12-17 15:34 | 显示全部楼层
LZ可能是有大量现成的3128
land 发表于 2009-12-17 15:13

不多不多
目前还剩5片了

4

主题

0

好友

274

积分

业余侠客 当前离线

Rank: 4

UID
1187
帖子
114
精华
1
经验
274 点
金钱
89 ¥
注册时间
2004-8-10
 楼主| 发表于 2009-12-17 15:34 | 显示全部楼层
补码是用来给另一个DAC提供反相转换并与同相输出构成平衡式输出的吗?
land 发表于 2009-12-17 15:32

是的

4

主题

0

好友

274

积分

业余侠客 当前离线

Rank: 4

UID
1187
帖子
114
精华
1
经验
274 点
金钱
89 ¥
注册时间
2004-8-10
 楼主| 发表于 2009-12-17 15:38 | 显示全部楼层
也是,这个电路确实不复杂,图纸编译和代码编译应该产生不了太大差异。

一直很困惑的是jitter对音质的影响是否已经达到了可闻的程度,LZ在听感上很明显吗?
land 发表于 2009-12-17 15:05

前面提过了,效果肯定是有的,至于影响大小,我作为设计者本人来做主观听感评判的话,不可能完全排除主观因素。
不懂电路的朋友们的反映是,火气小了,高频提升较明显。

0

主题

0

好友

483

积分

业余侠客 当前离线

散兵游勇

Rank: 4

UID
23733
帖子
461
精华
1
经验
483 点
金钱
463 ¥
注册时间
2007-6-17
发表于 2009-12-17 15:40 | 显示全部楼层
不多不多
目前还剩5片了
hanyu 发表于 2009-12-17 15:34


我还有一堆7128呢,没地儿用,都快成LJ了。

0

主题

0

好友

483

积分

业余侠客 当前离线

散兵游勇

Rank: 4

UID
23733
帖子
461
精华
1
经验
483 点
金钱
463 ¥
注册时间
2007-6-17
发表于 2009-12-17 15:59 | 显示全部楼层
前面提过了,效果肯定是有的,至于影响大小,我作为设计者本人来做主观听感评判的话,不可能完全排除主观因素。
不懂电路的朋友们的反映是,火气小了,高频提升较明显。
hanyu 发表于 2009-12-17 15:38


好! 实在。

作为技术目标,可以去追求和不断改进;作为听音测试,不以主观左右技术。

我们曾经发现ADC抽样频率的抖动带来PCM码流还原时的极轻微波形不同,这种不同可以测量到,但是还没有发现有人主观感知。

209

主题

1

好友

2700

积分
     

罗宾汉 当前离线

越减越繁

Rank: 7Rank: 7Rank: 7

UID
1005
帖子
3345
精华
3
经验
2700 点
金钱
953 ¥
注册时间
2004-7-11
发表于 2009-12-17 16:15 | 显示全部楼层
感谢楼主共享自己的作品!

133

主题

0

好友

4912

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
278
帖子
4622
精华
4
经验
4912 点
金钱
2799 ¥
注册时间
2004-4-4

元老级

发表于 2009-12-17 16:53 | 显示全部楼层
楼主能用DIR9001试试吗?又翻了那本《实用电子文摘》2次锁相用CS8414做得很理想可能能达到25PS的精度,比没有用2次锁相小一个数量级,DIR9001也能小于50PS。先用DIR9001不带2次锁相试试声音,再把它加2次锁相试试,呵呵!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部