[基础知识] 关于数控音量控制板我的设想方案

[复制链接] 查看: 24568|回复: 34

135

主题

6

好友

3846

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
176
帖子
3379
精华
12
经验
3846 点
金钱
2486 ¥
注册时间
2004-3-26

社区贡献 优秀设计

发表于 2005-5-24 00:35 | 显示全部楼层
一、我认为用指数好,结构在牛坛有过介绍
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种阻值就满足了。
  




43

主题

0

好友

1028

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
87
帖子
802
精华
0
经验
1028 点
金钱
248 ¥
注册时间
2004-3-23
发表于 2005-5-24 09:53 | 显示全部楼层

高手!

247

主题

20

好友

6543

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
1973
帖子
6679
精华
5
经验
6543 点
金钱
4807 ¥
注册时间
2004-10-29

元老级 论坛贵宾

发表于 2005-5-24 00:53 | 显示全部楼层

强贴

有兴趣 继续关注

68

主题

1

好友

1949

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
13410
帖子
3305
精华
0
经验
1949 点
金钱
1851 ¥
注册时间
2006-10-15
发表于 2008-10-25 08:48 | 显示全部楼层
很感兴趣,可惜我一点都不懂,LZ可否帮我,给点资料我学习学习

56

主题

12

好友

6086

积分
     

青铜剑侠 当前离线

小熊猫

Rank: 8Rank: 8

UID
59487
帖子
7494
精华
0
经验
6086 点
金钱
5743 ¥
注册时间
2008-10-20
发表于 2008-10-25 09:11 | 显示全部楼层
8位63级 够了吧~~~~~~配对要死人滴~~~

最简单的就是3个电动步进电位器,2个调,一个做参考电压。

检测电压ADC后给MCU。

例子:
10111111是62级,电压是6.2V,参考电压随着3号电动步进电位器变动到6.2v,其他2个也调整到相同角度,达到6.2V全部停止

或者8位开关:
10111111是62级,既除第7位关以外其他全部接电阻。
那么就应该是7个电阻并联~~~~~~嘿嘿~~~~~
7个配对1%很容易的~~~~~~~




我的电位器是恒定电阻接法的,实际效果和普通接法一样,唯一差别就是,价格贵了 -  - ~

23

主题

0

好友

638

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
8830
帖子
490
精华
0
经验
638 点
金钱
99 ¥
注册时间
2006-4-23
发表于 2008-10-25 09:16 | 显示全部楼层
这个方案原理上是比较理想,如楼主说实现起来,电阻和控制麻烦了一点。
我以前也考虑过做楼主说的这种,不过因为用MCU太麻烦,才改用24档开关,虽不算很完美,觉得也差不多可以了。

135

主题

6

好友

3846

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
176
帖子
3379
精华
12
经验
3846 点
金钱
2486 ¥
注册时间
2004-3-26

社区贡献 优秀设计

 楼主| 发表于 2008-10-25 10:10 | 显示全部楼层
  
这个电路的关键就是每个节点的T型电阻网络,无论继电器打到A还是B,从输入和输出端往里面看,内阻都是固定的。
当多个这样的节点网络串联,无论你这个节点的继电器接到哪里,都不会影响后面和前面节点的衰减量状态。

  下面举例说一下例如如果要设计一个6bit控制总共衰减-100db的电路
未定标题1.png
  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%
未定标题2.png

  同样可以知道,此串联网络的输入阻抗也是等于输出阻抗的。输出阻抗低的话,输入阻抗也是低的。

  关于爆音的问题,咨询过做R-2R的人,爆音的关键不是从最高(最低)图然变成最低(最高),而是其切换过程中的继电器吸合时间随机造成的,解决的方法是从原音量逐bit减少,直至0,再逐bit升高到目的位置。或者再加多一个静噪开关,变音量时,首先静噪、再变音量,再取消静噪。

18

主题

0

好友

5001

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
20757
帖子
5255
精华
0
经验
5001 点
金钱
4973 ¥
注册时间
2007-3-24
发表于 2008-10-25 10:17 | 显示全部楼层

N年前就在用

http://bbs.hifidiy.net/viewthrea ... ;highlight=%2Bhifi8

爆音那里是有方法解决的,但不是楼上那样,不过估计楼上方法也可能可以。

0

主题

0

好友

812

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
35459
帖子
815
精华
0
经验
812 点
金钱
812 ¥
注册时间
2008-2-12
发表于 2008-10-27 18:06 | 显示全部楼层
hifi8兄,能说说是怎么解决爆音的吗??

43

主题

2

好友

1485

积分

侠之大者 当前离线

海马

Rank: 6Rank: 6

UID
35456
帖子
3810
精华
0
经验
1485 点
金钱
1453 ¥
注册时间
2008-2-12
发表于 2009-3-31 01:48 | 显示全部楼层
找的就是这个贴,非常有用

0

主题

0

好友

3

积分

注册会员 当前离线

Rank: 2

UID
158182
帖子
3
精华
0
经验
3 点
金钱
3 ¥
注册时间
2009-12-25
发表于 2010-4-29 01:09 | 显示全部楼层
这么好的贴为什么??????
应该让他浮上去。

16

主题

25

好友

2614

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
50445
帖子
3431
精华
0
经验
2614 点
金钱
2775 ¥
注册时间
2008-8-10
发表于 2010-7-11 16:24 | 显示全部楼层
谁有实用的阻值表,上个,谢谢
头像被屏蔽

1

主题

0

好友

556

积分

禁止发言 当前离线

UID
42127
帖子
525
精华
0
经验
556 点
金钱
554 ¥
注册时间
2008-5-2
发表于 2010-7-11 16:29 | 显示全部楼层
准备放暑假了,正有此意做一个这样的东东,但是对于电阻网络很头痛...呃....是对于计算很头痛

135

主题

6

好友

3846

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
176
帖子
3379
精华
12
经验
3846 点
金钱
2486 ¥
注册时间
2004-3-26

社区贡献 优秀设计

 楼主| 发表于 2010-8-2 18:18 | 显示全部楼层
按理计算是很简单的
  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.8  Gv=0.0057544
头像被屏蔽

1

主题

0

好友

556

积分

禁止发言 当前离线

UID
42127
帖子
525
精华
0
经验
556 点
金钱
554 ¥
注册时间
2008-5-2
发表于 2010-8-2 23:37 | 显示全部楼层
按理计算是很简单的
  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/viewthread.php?tid=392505
感谢你提供1L的资料

9

主题

0

好友

1190

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
34960
帖子
4462
精华
0
经验
1190 点
金钱
1214 ¥
注册时间
2008-1-30
发表于 2010-8-5 10:59 | 显示全部楼层
呵呵  借用数字电路里的  8421码的思路啊  

135

主题

6

好友

3846

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
176
帖子
3379
精华
12
经验
3846 点
金钱
2486 ¥
注册时间
2004-3-26

社区贡献 优秀设计

 楼主| 发表于 2010-8-5 13:34 | 显示全部楼层
呵呵  借用数字电路里的  8421码的思路啊  
电子虫子 发表于 2010-8-5 10:59

这个电路最关键的地方就是这种T型网络,无论开关打到那个地方,从输入端看进去,阻抗是不变的,从输出端看过去,阻抗也是不变的
正因为具有这个特性,所以可以无限多个进行串联。互相之间不会影响,因此其衰减量就可以独立相乘(相当于DB数独立相加)


而每一段的关系和8421码完全没有关系,你可以将各段之间的比例不设成2倍,设成1.3倍也可以,或者设成完全非等比数列的也可以。

4

主题

0

好友

71

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
12683
帖子
18
精华
0
经验
71 点
金钱
21 ¥
注册时间
2006-9-24
发表于 2011-11-11 19:54 | 显示全部楼层
音量        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值.

3

主题

0

好友

358

积分

业余侠客 当前离线

超级羔手

Rank: 4

UID
21681
帖子
373
精华
0
经验
358 点
金钱
352 ¥
注册时间
2007-4-16
发表于 2011-11-11 20:49 | 显示全部楼层
太有DIY精神了,佩服。

现在都流行总线控制,还是装个音量控制芯片简单。其实内部也是电阻,集成了控制电路,外围科单多了。

21

主题

0

好友

1401

积分

侠之大者 当前离线

书生

Rank: 6Rank: 6

UID
339118
帖子
2144
精华
0
经验
1401 点
金钱
1408 ¥
注册时间
2011-5-24
发表于 2011-11-13 09:16 | 显示全部楼层
高手,佩服
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部