回复 #18 ljm_ljm 的帖子
从底噪角度讲,官方的datasheet是用24bit信号得到的,16bit的CD系统自然比不过。从失真角度讲,如果把2次和3次谐波求均方根值的话,现在的失真度基本上达到datasheet的水平。我在帖子里也说了,低失真的DAC芯片需要精挑细选,往往是可遇而不可求的。
从宽带噪声角度讲,现在的系统确实还存在一些不明不白的干扰,好在它们的幅度都已经相当低了。 所以偶从来不相信一颗IC上双芯片的所谓配对,封装在一个IC上就是商业上节省成本的做法 双芯片有个好处,工作环境比较一致,这样对跟踪性有要求的时候就非常好了。 强!偶佩服得五体投地。
要是楼主玩好了,能开板让大家共享就好了。
东西做完了才觉得这东西做得好无聊
既然只用同步升频还不如用普通的数字滤波芯片,其性能恐怕比CS8421还要好些。比如说PMD100,工作在2x或4x过取样模式下,一样有24bit输出,dither和数字域的6dB衰减。
PMD100的输入输出格式都有点各色,不过我们有CPLD,这个不怕,呵呵:lol
更有HDCD解码这个鸡肋功能值得做一做。
唉!怪我一开始没想清楚……不过PMD100接口会融进我的下一个项目,也不算太糟糕…… 早说啊LZ,我的PCM63就想用升频,那么LPF就不用如何如何复杂了,现在你那CPLD是不是用在生成LRCLK,BCLK上面?其它如bypass之类的功能应该没需要,能给个固件玩玩么?:43f 另外弱弱问8421的MCLK_OUT是不是DLL电路纠正过的时钟?还是只是根据自身时钟或外置晶震生成的MCLK?
LS说得对
CPLD主要用在生成LRCLK,BCLK上面(其它都是后来想到的附加功能),但这部分的代码只占很小一部分,因为一个除4的分频器加上一个除48的分频器代码很简单,就这么几行:
module ClockDiv (mclk, bclk, lrck);
input mclk;
output bclk,lrck;
reg bclk_cnt;
reg lrck_cnt;
reg lrck;
wire bclk = bclk_cnt;
always @ (posedge mclk)
begin
bclk_cnt <= #1 bclk_cnt + 1'b1;
end
always @ (negedge bclk)
begin
if (lrck_cnt == 5'h17) begin
lrck_cnt <= #1 5'h0;
lrck <= #1 ~lrck;
end
else begin
lrck_cnt <= #1 lrck_cnt + 1'b1;
end
end
endmodule
希望对你会有帮助。
CS8421的MCLK_OUT是从外置晶振XTI分频而来,被动模式下用不到,如果输入输出都在96KHZ以下就不需要XTI输入,也不会
有MCLK输出。
想让PCM63做16fs,除非你用DF1704之类的能接受96KHZ输入的数字滤波器,老一代的PMD100、DF1700、SM5842等可受不了
2fs的输入。 羡慕能每装一台机器就能去用AP测试 原帖由 simmconn 于 2009-5-6 14:28 发表 http://bbs.hifidiy.net/images/common/back.gif
CPLD主要用在生成LRCLK,BCLK上面(其它都是后来想到的附加功能),但这部分的代码只占很小一部分,
因为一个除4的分频器加上一个除48的分频器代码很简单,就这么几行:
module ClockDiv (mclk, bclk, lrck ...
多谢LZ指教:43f 原帖由 simmconn 于 2009-4-16 08:59 发表 http://bbs.hifidiy.net/images/common/back.gif
CDM12 I2S信号的观察。我发现在CD播放的时候,如果把16bit
数据的MSB作为bit 1的话,bit 18总是为1。这就相当于在16bit信号上加了一个相当于1/4最小量的直流成分。
这个bit18存在的原因我不清楚,也许是为了使有些DAC内部的数字零检测功能失效?
这是philips将I2S应用在TDA1541A 时的一种补偿手法 这样做可以将LSB推高至足于驱动TDA1541A里面1-10Bit的无源分流器 从而提升该DAC在LSB的有效输出能力.另一方面看这是一种特别的检出弱信号或称"细节""弱音"信号的手段.另外顺带一提 TDA1541A DAC芯片的温度对还原精度是非常重要的一个因素 而以往的芯片工艺注定了其耗散功率不可能会低 所以NOS版的是4X超取样 而不是8X.
后来一个偶然的机会,我用一个0dBFS的方波信号测量DAC的输出,发现方波信号带宽受限后产生的类似衰减震荡
的波形有被削顶的情况出现(图中下面R1的波形),而我在一台厂机上测得的信号却是没有被削顶的,接近“数学上完美“
的波形(类似图中上面2的波形)。这厂机得了Stereophile的A类推荐,我想人家这么做是有一定道理的
事实上RR公司开发HDCD的初衷正是基于此目的 由CD音频格式的最后还原上来看 满幅输出就是会存在这个"削顶"的现象的 在Pro Audio来说 这个是一种类似叫"动态压缩"的相似处理过程 对声音信号作"动态压缩"处理可以很好的扩展信号幅度 保障声音连贯性与强弱之间的过渡性 但却有会使声音"死硬"或"干硬"! 所以在CD还原过程中将数字音频整个作-6dBFS的数字处理 可以有效避免DAC在最后还原上触及"削顶"使声音显得死硬的危险部分. 当然 预先要这样处理 本来的音频首先噪声要非常小 这是整体动态上的保证 以及在弱音细节还原上的失真度的控制 而这些就是HDCD的精髓所在了!
谢谢LS指点
不过我有一点不明白的是,TDA1541(以及TDA1541A)都只是16bit的DAC,它们对码流里面16bit之外的信息应该是不作理会的。这个bit18难道是期望在过取样滤波器里面对16bit的LSB有所影响?应该比较难吧,因为只有1/4LSB
的幅度啊。也许是SAA7237里面纠错插值电路在没有出错时候的残留值?
另外这NOS顾名思义就是没有超取样,为什么又有4x和8x之分呢?datasheet上倒是讲TDA1541接受超取样的输入时
只能做到4x,而TDA1541A能做到8x。
以今天的眼光看TDA1541(A)确实是老古董了,不过那时候Philips很实在地标出了不同等级在DNL上的区别。尽管S1
也还算不上一个真正合格的16-bit DAC(DNL=1LSB就意味着有跳码),现在的音频DAC都找不到这个指标了。
LS对于HDCD的论述很精辟。:victory:
回复 #31 simmconn 的帖子
多谢LZ指点! 囧ing... NOS我原以为是指官方推荐的标准取样配搭 - -!TDA1541A philips的接收方案是由TDA7220B/P来配合的 ...
至于你讲的I2S有提升1/4的LSB 是我猜测这是philips原来用意 因为印象中有人提出来过这个概念及理念 而我一直以来未曾见有人有过这方面详尽的原理阐述 恰好你的这个发现是符合这个说法的 于是 很自然的我就联系起来了 - -! 当然 这个还是亟待考证的... http://bbs.hifidiy.net/attachments/month_0707/20070701_3546620dbdac58e10ba5uYxAGSFVoPbU.jpg
这个中文资料说起TDA1541是具备18bit分辨率的 - -!
我比较怀疑这种说法
理论上讲,用低bit的DAC跑在高采样率上可以获得等同于高bitDAC的动态范围。举个不太恰当的例子,一个1bit的DAC跑在256fs可以相当于一个16bit的DAC,但前提条件是这个DAC分得清0和1,而且接受16bit的输入。尽管如此大家还是会叫它1bitDAC而不是16bitDAC。TDA1541A普通级别的DNL高达1LSB,也就是说它连0和1都分不清,你能指望它跑快了就能分得清0, 0.25, 0.5, 0.75和1么?我是不指望的:0wa
不过TDA1541A是我在玩HIFI之前的产品。我没有亲自玩过,所以就没有什么发言权,还是请资深玩家发表权威评论吧。
或许仅是对TDA1541A*S1 *S2有效 - -!
Notes to the characteristics1. To ensure no performance losses, permitted output voltage compliance is ±25 mV maximum.
2. Selections have been made with respect to the maximum differential linearity error (EdL):
TDA1541A/N2 bit 1-16 EdL < 1 LSB
TDA1541A/N2/R1 bit 1-16 EdL < 2 LSB
TDA1541A/N2/S1 bit 1-7 EdL < 0.5 LSB
bit 8-15 EdL < 1 LSB
bit 16 EdL < 0.75 LSB 好强大! 这个要顶起! 继续学习
路过听一下高人的课
:) 升频还是值得玩的计划:8416+8421+1707+4398