关于数控音量控制板我的设想方案
一、我认为用指数好,结构在牛坛有过介绍http://www.ngtop.com/readnews.asp?newsid=123
现在更加简化如下结构
下面简单说一下各档电阻取值原理
当开关打到A时,有如下两式
Vout=Vin (1)
从输入端看的负载为RL (2)
当开关打到B是
增益为Gv=Vout/Vin=(R2 * RL) / (R1 * R2 + R1 * RL + R2 * RL) (3)
从输入端看,负载为 R1 + (R2 * RL) / (R2 + RL) (4)
假如无论打到A还是B,如果从输入端看到的负载都是一样的话,这样就可以多个这样的四端网络串联起来,互相不会干扰,就是说调节后面的增益不会影响前一级。
就是说(3)式等于(4)式就可以了,经解方程
R1=(1-Gv)*RL
R2=Gv * RL / (1-Gv)
用指数控制的话,符合人耳特性,并且占用的控制bit大大减少,R-2R网络要达到-80dB的话,控制位要12-13bit,而指数网络的话,只要6-7bit即可。信号经过的串联的电阻个数也少很多。
二、各档增益安排
因为数控的话无论是指数还是R-2R,因为继电器吸合有快有慢,例如从00111111-〉01000000是,因为吸合时间差异,中间过程可能会出现
00111111--〉00000000--〉01000000或者
00111111--〉01111111--〉01000000
出现瞬间的突发信号脉冲。脉冲幅度达到最大衰减的1/2,是一个非常大的冲击。
要解决这个问题是尽量减少高位的大增益变化,
我这里想出如下办法,前提就是用这种恒定输入阻抗的四端衰减网络
各bit的增益为
bit0 -1dB
Bit1 -2dB
Bit2 -4dB
bit3 -8dB
bit4 -16dB
bit5 -16dB
bit6 -16dB
bit7 -16dB
共8bit控制,最大衰减增益为-79dB(约8900倍),精度为1db/step,步长只有79步(而不是256步),这种方法即使出现上述继电器吸合时间难预料时,出现的突发脉冲也仅仅是16dB,这是以牺牲步数来获取降低瞬间脉冲的解决办法。
这种方式的控制电路如果不用MCU,用逻辑电路的话,会难很多,所以最好用MCU控制。
指数网络不好的地方就是电阻的阻值非标准,并且要求精度较高,但用多个电阻并联方式可以得到一个接近的值,并且并联的话,性能好过一只串联。另外用这种方式,高4bit都是-16dB的,这样只需10种阻值就满足了。
高手!
强贴
有兴趣 继续关注 很感兴趣,可惜我一点都不懂,LZ可否帮我,给点资料我学习学习 8位63级 够了吧~~~~~~配对要死人滴~~~最简单的就是3个电动步进电位器,2个调,一个做参考电压。
检测电压ADC后给MCU。
例子:
10111111是62级,电压是6.2V,参考电压随着3号电动步进电位器变动到6.2v,其他2个也调整到相同角度,达到6.2V全部停止
或者8位开关:
10111111是62级,既除第7位关以外其他全部接电阻。
那么就应该是7个电阻并联~~~~~~嘿嘿~~~~~
7个配对1%很容易的~~~~~~~
我的电位器是恒定电阻接法的,实际效果和普通接法一样,唯一差别就是,价格贵了 -- ~ 这个方案原理上是比较理想,如楼主说实现起来,电阻和控制麻烦了一点。
我以前也考虑过做楼主说的这种,不过因为用MCU太麻烦,才改用24档开关,虽不算很完美,觉得也差不多可以了。 http://bbs.hifidiy.net/attachments/dvbbs/2005-5/20055232343869.gif
这个电路的关键就是每个节点的T型电阻网络,无论继电器打到A还是B,从输入和输出端往里面看,内阻都是固定的。
当多个这样的节点网络串联,无论你这个节点的继电器接到哪里,都不会影响后面和前面节点的衰减量状态。
下面举例说一下例如如果要设计一个6bit控制总共衰减-100db的电路
6个二进制控制位总共是64个步长,那么最小衰减量是100/64=-1.5625db(换算成增益即0.835),
依次后面每个节点的衰减量分别是:
-3.125db(Gv=0.698)
-6.25db(Gv=0.487)
-12.5db(Gv=0.237)
-25db(Gv=0.0562)
-50db(Gv=0.00316)
6个节点合计衰减98.4375db
计算每个节点时首先要确定负载时多少,例如这里假定RL=1K,那么你后面放大器的输入阻抗必须>>1K,以便不会影响网络,放大器输入阻抗>>1K是很容易满足的。
确定了RL=1K以后,那么可以根据前面说的:
当开关打到A时,此时是跳过了这个节点,
Vout=Vin (1)
从输入端看的内阻就是后面的负载RL (2)
当开关打到B是
增益为Gv=Vout/Vin=(R2 * RL) / (R1 * R2 + R1 * RL + R2 * RL) (3)
从输入端看,内阻为 R1 + (R2 * RL) / (R2 + RL) (4)
因为要求节点无论打到A还是B,内阻都相同,即(2)式=(4)式
经解方程
R1=(1-Gv)*RL
R2=Gv * RL / (1-Gv)
这样将每个节点的衰减量Gv代入上述式子,就可以计算出每个节点的R1 R2值
所以-50db这一档的R1=996.84欧,R2=3.17欧
-25db这一档的R1=943.8欧,R2=59.5欧
如此类推...
-1.5625db档的R1=165欧,R2=5.06K
每一档的电阻都是不同的,并且是非标称值,可以用两个电阻进行并联形式实现,
对于用由目标值推算出两个标称值电阻并联的计算,我推荐用“音响艺苑”语蓝的eTools 2.6版本,
例如计算943.8欧,允许误差0.1%,用E24标称值系列,那么用他计算出来只有1种选择:
1.1K//6.6K误差0.0999%
同样可以知道,此串联网络的输入阻抗也是等于输出阻抗的。输出阻抗低的话,输入阻抗也是低的。
关于爆音的问题,咨询过做R-2R的人,爆音的关键不是从最高(最低)图然变成最低(最高),而是其切换过程中的继电器吸合时间随机造成的,解决的方法是从原音量逐bit减少,直至0,再逐bit升高到目的位置。或者再加多一个静噪开关,变音量时,首先静噪、再变音量,再取消静噪。
N年前就在用
http://bbs.hifidiy.net/viewthread.php?tid=82908&highlight=%2Bhifi8爆音那里是有方法解决的,但不是楼上那样,不过估计楼上方法也可能可以。 hifi8兄,能说说是怎么解决爆音的吗??:P 找的就是这个贴,非常有用 这么好的贴为什么??????
应该让他浮上去。 谁有实用的阻值表,上个,谢谢 准备放暑假了,正有此意做一个这样的东东,但是对于电阻网络很头痛...呃....是对于计算很头痛 按理计算是很简单的
R1=(1-Gv)*RL
R2=Gv * RL / (1-Gv)
1.首先决定负载阻抗RL,例如RL=1K,
2.再决定每一档位的衰减量
这个按你准备多少bit 最大衰减范围决定
例如准备最大衰减90db,用6bit控制,那么最小步长就是90db/64=1.4db
因此第一档位-1.4db 第二档为-2.8db如此类推 分别为-5.6db、-11.2db、-22.4db、-44.8db
合计衰减量为1.4+2.8+5.6+11.2+22.4+44.8=88.2db
因为20*log(Gv)=-1.4db,所以Gv=0.8511倍
因此可以算出-1.4db这一档的R1 R2
同样-2.8db这一档
20*log(Gv)=-2.8 Gv=0.72443596
R1 R2也可以算出来了。
如此类推-44.8db这一档
20*log(Gv)=-44.8Gv=0.0057544 按理计算是很简单的
R1=(1-Gv)*RL
R2=Gv * RL / (1-Gv)
1.首先决定负载阻抗RL,例如RL=1K,
2.再决定每一档位的衰减量
这个按你准备多少bit 最大衰减范围决定
例如准备最大衰减90db,用6bit控制,那么最 ...
locky_z 发表于 2010-8-2 18:18 http://bbs.hifidiy.net/images/common/back.gif
不好意思,要你码了这么多字,其实我已经算出来开始做实验了,衰减量目前按自己的思路搞,实验当中http://bbs.hifidiy.net/viewthread.php?tid=392505
感谢你提供1L的资料 呵呵借用数字电路里的8421码的思路啊:victory: 呵呵借用数字电路里的8421码的思路啊:victory:
电子虫子 发表于 2010-8-5 10:59 http://bbs.hifidiy.net/images/common/back.gif
这个电路最关键的地方就是这种T型网络,无论开关打到那个地方,从输入端看进去,阻抗是不变的,从输出端看过去,阻抗也是不变的。
正因为具有这个特性,所以可以无限多个进行串联。互相之间不会影响,因此其衰减量就可以独立相乘(相当于DB数独立相加)
而每一段的关系和8421码完全没有关系,你可以将各段之间的比例不设成2倍,设成1.3倍也可以,或者设成完全非等比数列的也可以。 音量 A1-A7 DB log(GV) GV
0 0000000 0 0
1 0000001 -2 -0.1
2 0000010 -4 -0.2
3 0000011 -6 -0.3
4 0000100 -8 -0.4
5 0000101 -10 -0.5
6 0000110 -12 -0.6
7 0000111 -14 -0.7
8 0001000 -16 -0.8
9 0001001 -18 -0.9
10 0001010 -20 -1
11 0001011 -22 -1.1
12 0001100 -24 -1.2
13 0001101 -26 -1.3
14 0001110 -28 -1.4
15 0001111 -30 -1.5
16 0011000 -32 -1.6
17 0011001 -34 -1.7
18 0011010 -36 -1.8
19 0011011 -38 -1.9
20 0011100 -40 -2
21 0011101 -42 -2.1
22 0011110 -44 -2.2
23 0011111 -46 -2.3
24 0111000 -48 -2.4
25 0111001 -50 -2.5
26 0111010 -52 -2.6
27 0111011 -54 -2.7
28 0111100 -56 -2.8
29 0111101 -58 -2.9
30 0111110 -60 -3
31 0111111 -62 -3.1
32 1111000 -64 -3.2
33 1111001 -66 -3.3
34 1111010 -68 -3.4
35 1111011 -70 -3.5
36 1111100 -72 -3.6
37 1111101 -74 -3.7
38 1111110 -76 -3.8
39 1111111 -78 -3.9
不会算,不会数学.求大侠帮我算一下各段位的Gv值. 太有DIY精神了,佩服。
现在都流行总线控制,还是装个音量控制芯片简单。其实内部也是电阻,集成了控制电路,外围科单多了。 高手,佩服
页:
[1]
2