[基础知识] 造一台软DAC

[复制链接] 查看: 188335|回复: 525
头像被屏蔽

16

主题

4

好友

777

积分

禁止发言 当前离线

UID
17546
帖子
658
精华
0
经验
777 点
金钱
645 ¥
注册时间
2007-1-16
发表于 2010-11-2 11:14 | 显示全部楼层
400# 别时方觉依依

兄弟高人,一语言中关键!!!

94

主题

1

好友

716

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
245694
帖子
1920
精华
0
经验
716 点
金钱
744 ¥
注册时间
2010-10-1
发表于 2010-11-2 11:39 | 显示全部楼层
值得一顶

32

主题

4

好友

1926

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
114497
帖子
1713
精华
0
经验
1926 点
金钱
1713 ¥
注册时间
2009-6-27
发表于 2010-11-2 12:20 | 显示全部楼层
402# szddd
10BIT足够了。你说的“时快时慢”其实可以通过阻容网络将电压平滑了很多。再加上机械结构,盘相当与一个巨大的飞轮。

这位朋友不要想着,要么是1(加速)要么是0(刹车)。真的加在马达上的电压是很平滑的(正常播放的时候)。在一级与一级之间(你所说的1024级),用普通万用表测量的话,精度可能还不够区分。

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-11-2 21:25 | 显示全部楼层
很佩服楼主的技术,我想做这个时间也很久了,技术实现的思路也差不多,可一直没时间动手,没想楼主已经做出来了,我在深圳,是搞自动化控制设计的,也是业余的电子爱好者,楼主现在有没有多余的板呀,能否卖给我一块 ...
szddd 发表于 2010-10-31 10:12

谢谢帮忙解释,差不多就这个意思,处理挎时钟域的信号,除了握手外,就是FIFO。FIFO大小主要还是要和调整的速度配合好,配合的好不需要多大也能取得同样的效果。

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-11-2 21:33 | 显示全部楼层
答397#szddd
为了保证CD的恒线速度读取,马达控制的DAC只要8~10bit就可以了。不要想得太复杂。由于机械的惯性,一些小抖动都被滤掉了。而控制转速的信号,是由CD盘中的信号内嵌的时基与伺服系统的时钟做相位比较得到 ...
别时方觉依依 发表于 2010-11-1 11:28

这个解释非常好

38

主题

1

好友

565

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
21613
帖子
1178
精华
0
经验
565 点
金钱
587 ¥
注册时间
2007-4-14
发表于 2010-11-2 22:20 | 显示全部楼层
407# laurel


想知道支持24BT 96K 输入及解码吗?

0

主题

0

好友

182

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
82535
帖子
254
精华
0
经验
182 点
金钱
182 ¥
注册时间
2009-2-22
发表于 2010-11-4 19:42 | 显示全部楼层
看的出来,这贴中很多高手都来报道了!

0

主题

0

好友

12

积分

注册会员 当前离线

Rank: 2

UID
176822
帖子
13
精华
0
经验
12 点
金钱
12 ¥
注册时间
2010-2-27
发表于 2010-11-4 22:35 | 显示全部楼层
马达的惯性,并不足以消除jitter。没错,CD的转速控制是由CD盘中的信号来产生的,可它的原理是,当光头通过读取CD上一个比特的信号后,用它产生的脉冲时间与44.1K的时基向比较,如果速度高了,通过带入PID算法进行减速,如果低了,则加速。因此,可用这个方法来控制转速,就会不断产生抖动,如果控制精度足够,这可以保证jitter的抖动可以减小。如果控制精度不够,就会使电机转速不断的在最大脉冲误差时间范围内波动。从而造成jitter的不断抖动。
    打个比分,就像我们开车,如果你的油门只能控制关,半开(50公里),全开(100公里)这3种状态,那么,如果你要把车开到稳定在70公里,那你必须不断的检测车速,如果车速慢了,必须全开油门,这时,车子速度很快超过70公里,那么你马上又要调整油门,半开或全关,很快,你又要再次调整,如果你的油门控制分辨率够高,你可以控制油门处于60公里和80公里的状态,那么,你需要调整油门的次数会大为减小,如果足够细腻,你可以当车需要70公里的速度的时候,就给70公里的油门,这时,你需要的调整次数,最少,也就是说JITTER的上下缘抖动最小。

0

主题

0

好友

12

积分

注册会员 当前离线

Rank: 2

UID
176822
帖子
13
精华
0
经验
12 点
金钱
12 ¥
注册时间
2010-2-27
发表于 2010-11-4 22:49 | 显示全部楼层
从上面的关系来看,电机的44.1k的时基精度是非常重要的,如果这个时间不准,偏小则会让电机的转速偏慢,高频变低,声音发闷,不够清晰,偏快则会让频率偏高,即音色偏亮或刺耳,而电机的控制精度则决定输出脉冲的jitter抖动特性,决定了声场和定位。

23

主题

0

好友

913

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
25743
帖子
1190
精华
0
经验
913 点
金钱
932 ¥
注册时间
2007-8-10

社区贡献

发表于 2010-11-5 00:41 | 显示全部楼层
现在才发现此贴,来迟了!又见软硬件高人现身!!
一口气看完费了2个多小时。。。
不懂软件,瞎说点什么,希望楼主别介意!
基于某些音视频专用DSP做会不会简单些?比如PMD200好象也是基于早期MOTOLOLA的DSP56300做的,也有好几种玩法可以设定,现在的DSP会不会更高级更好处理些?
祝楼主早日成功!让机器商业化,造福广大高烧,不能让类似使用此类滤波的洋货WADIA,MARK 等长久的占据高端市场

2

主题

0

好友

345

积分

业余侠客 当前离线

Rank: 4

UID
150414
帖子
540
精华
0
经验
345 点
金钱
355 ¥
注册时间
2009-11-27
发表于 2010-11-5 08:48 | 显示全部楼层
高人,学习!

0

主题

0

好友

93

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
146215
帖子
100
精华
0
经验
93 点
金钱
93 ¥
注册时间
2009-11-8
发表于 2010-11-5 11:30 | 显示全部楼层
只有参观的份啊!但强帖得顶哦.

13

主题

0

好友

340

积分

业余侠客 当前离线

克莱天下第一

Rank: 4

UID
200093
帖子
413
精华
0
经验
340 点
金钱
358 ¥
注册时间
2010-5-11
发表于 2010-11-5 12:06 | 显示全部楼层
是你做吗?国内做这些的好象不多吧!如果是你做的话请联系我 我想要这个方案 13632979178陈
my5abc 发表于 2010-10-24 20:29


已经PM,这种机器在二手区就有卖,才2-3千元,声音和不用一个样,没有什么太大意义。
DAC1就是个很好的例子,当你用SRC4192替换AD1896的时候,差异根本就没有。

PCM1794的官方板子都用CS8414,证明音频用CS8414已经足够了,换成DIR9001就更好了,没有必要搞什么PLL,一点用都没有,LZ可以拿出测试结果和PCM1794的官方板子比较一下,我敢断定没有什么差异。

我现在是用克莱的,听过很多PCM1793,1798,最好听的还是论坛的,但是和DAC1比起来,差得太远了。PCM1798的声音根本就没有味道,要说人声润色什么的,那么TDA1543都比他好,我买过论坛的1543和1798,对比之后1798果断拿去送人了。这也是专业市场上没有什么人用TI产的DAC的道理。

LZ应该换成WM8741,这个声音好,或者AD1955也可以,继续做PCM1794也不会有什么好听的声音的。

32

主题

4

好友

1926

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
114497
帖子
1713
精华
0
经验
1926 点
金钱
1713 ¥
注册时间
2009-6-27
发表于 2010-11-5 14:01 | 显示全部楼层
410# szddd
你说的这个转盘抖动是宏观的。引起的是频率漂移,而不是jitter。
按照你说的行车案例,我如果将100公里档和50公里挡以100Hz的频率来切换,然后用占空比调节。坐车的人是一点感觉都没有的。

另外,你还是该看下CD红皮书。CD盘上的信号不是简单数字信号,经过一大堆的编码后上去的。
光头输出的信号称之为RF(射频)信号,并不是高就是代表1,低就代表0,而是变化的边沿代表1,不变,代表0。所以系统要不停的数0的个数。这个需要主时钟分频后计数。

在实际的CD读取中,你可以用频谱仪看下光头给出的信号。频率分布在500KHz到1.6MHz,主要分布在900KHz到1MHz之间。
而伺服系统的时钟是16.9344MHz。需要锁相的信号经过多次分频和PLL后,这个jitter就大了。

当然也不排除高级转盘用高BIT的DA来控制主轴马达。

这位朋友考虑的很细。你让我由很仔细的再去测下我们公司出的CD伺服芯片。(面向消费电子,不面向HIFI)
我们公司出的CD伺服芯片的马达控制脚输出的是PWM信号,频率为晶振的1/16。经过1级RC网络,得到一个直流电平,送到马达驱动电路启动马达。
你可以测量下其他CD机的。我手头没有。我用的音源是硬盘播放器。

说了这么多。我的意思是,马达带来的问题是频率漂移,有点像以前唱机的抖晃率,不是JITTER。
带来JITTER的是伺服IC。

0

主题

0

好友

12

积分

注册会员 当前离线

Rank: 2

UID
176822
帖子
13
精华
0
经验
12 点
金钱
12 ¥
注册时间
2010-2-27
发表于 2010-11-5 16:35 | 显示全部楼层
呵呵,多谢你的指教,关于jitter的定义,我看过一篇介绍,建议你也可以去看看,我觉得他对jitter的描述比较通俗,网址是http://www.elecfans.com/article/85/126/2008/2008112718524.html
因此,我分不出马达的抖动为什么没有造成jitter.

0

主题

0

好友

12

积分

注册会员 当前离线

Rank: 2

UID
176822
帖子
13
精华
0
经验
12 点
金钱
12 ¥
注册时间
2010-2-27
发表于 2010-11-5 16:38 | 显示全部楼层
我觉得,恰恰相反,马达是在宏观上是稳定的,在微观上是抖动的,我想问一句,你的伺服芯片怎么知道什么时候需要对电机进行调整了呢?是不是检测到马达的转速偏离了系统定义的最大偏差速度呢?

32

主题

4

好友

1926

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
114497
帖子
1713
精华
0
经验
1926 点
金钱
1713 ¥
注册时间
2009-6-27
发表于 2010-11-5 17:50 | 显示全部楼层
是的。这个范围是多少我不知道。设计部知道。

4

主题

0

好友

216

积分

业余侠客 当前离线

Rank: 4

UID
236797
帖子
287
精华
0
经验
216 点
金钱
212 ¥
注册时间
2010-9-4
发表于 2010-11-5 19:40 | 显示全部楼层
学习,支持一下

32

主题

4

好友

1926

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
114497
帖子
1713
精华
0
经验
1926 点
金钱
1713 ¥
注册时间
2009-6-27
发表于 2010-11-6 17:06 | 显示全部楼层
锁相环的工作不就是这样么:
相位超前了,输出“0”电平;相位落后了,输出“1”电平;相位相同,输出高阻态。(这里的“0”电平“1”电平是概念性的,并不是“0”就是0V,“1”就是5V。)

CD转盘你要再分解来看:
第一部分:是一个光机电的大环路负反馈的锁相环。
包括激光光路,盘面反射,电路,马达。
在CD物理信号中检出频率相位,最终用来锁定转速。
第二部分:是信号处理。只有处理电路。
从光盘来的物理信号还要MCU解出来(EFM解码),得到真正的数据,然后按照一定的时序发送出来。就是给我们的IIS信号。
这样你该明白44.1K的频率从哪里来的吧。是由伺服电路中的IC将16.9344M做384分频地来的。jitter也就由此产生。

那我们说的要天价转盘是怎么会事呢?
那是因为我们所说的天价转盘是包含上面两个部分的。不是只有那个光机电的大环路负反馈的锁相环。他在处理EFM解码的电路上也是很优秀的。
(关于CD唱片上的EFM编解码原理请GOOGLE。)
如果你有转速仪器的话,可以测试下,CD光盘在播放整张CD时,只有固定的几个转速。他只要保证解EFM编码的MCU中的FIFO是基本在半满就可以。
既然物理信息是EFM编码,在解码后,按照一定的时序输出。jitter由电路产生,那马达等机械部件呢?是不是机械部分的抖动大点没有关系呢?
不是。因为EFM编码后的信号不会有连续的1。要确定两个1之间有多少个0,还是要比较稳定的转速。就是说机械部分的作用就是保证误码率要低。越低越好。因为CD是没有数据校验机制的。读过去就算了。所以稳定的机械结构也是要的。
而CDROM,有数据校验机制,而且还有C1、C2纠错机制。
那么既然CDDA在播放的时候,机械问题可能导致严重的数据错误,为什么还是不加数据校验呢?
这个问题,呵呵,我将我在另一个帖子中说的再贴一遍。

让我们回到上世纪70年代,假设当时SONY和PHILIPS在开发CD机的时候,CD数据校验技术可以实现,而他们没有在CD技术红皮书中加入。那我完全可以认为CD光盘技术是他们为了几个方面而推出的。
1、当时DAT已经有了,但是用在专业领域。要在民用环境中推广数字音乐应用,需要推出CD。一张光盘和一盒DAT磁带比便宜N多,工业化生产也容易。
2、为了数字音乐版权。磁带COPY技术已经很成熟了。CD还不行。80年代的CD盘的COPY技术还在实验室。
3、为了区分高、中、低档转盘。为了厂家可以做出各种音乐味道的CD机,体现差异化和满足各种人的口味。

0

主题

0

好友

12

积分

注册会员 当前离线

Rank: 2

UID
176822
帖子
13
精华
0
经验
12 点
金钱
12 ¥
注册时间
2010-2-27
发表于 2010-11-6 23:01 | 显示全部楼层
学习了,你说得有道理,看来是我前面的认识有误。很高兴有长了点知识。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部