帖二:ADC值计算过程
1)因为VCC作参考电压,打9折
Vcc=VCC*0.9, 见上一帖,Vcc对应ADC的输出255
2)因为工艺原因,I/O焊点会引起0.75V的电压误差
3)你要抛开这些误差.在噪声允许一情况下,你给ADC的最大值不能超过这个值:
即: Vcc- 0.75V
抛开这个误差后,你得到的编码空间是:0~255* ( Vcc - 0.75V )/Vcc
在区域上,你所拥有的区域(area) 是: 0~ ( Vcc - 0.75V )/Vcc
4)现将这个区域分成n份.考虑误差原因, 选择每个区域的中间
第一份, 在0那个位置,因为没有负值,所以,占半份, 这是你看到的在S0下半是空白
第n份,多留半份,这是在s6上方有一个红色的1/2块
所以,加起来是n块.
每份是是面积百分数: A = ( Vcc - 0.75V )/Vcc/n
每块的分压为: ( Vcc - 0.75V )/n
电压( Vcc - 0.75V )/n在ADC的输出为:D=255*( Vcc - 0.75V )/n/Vcc
每块范围是:
BLOCK RANGE ADC读数
0 0~A/2 0~D/2
1 A/2~3A/2 D/2~3D/2
...
每块的中间是:
BLOCK MIDDLE ADC读数
0 0 0
1 A D
2 2A 2D
...
4) 验算:
n=7,VCC=3.3得D=27,A=10.6%
ADC的读数应该是:
key0: 0~13 0~D/2
key1: 14~27 2/D~3D/2
....
发表时间:2004年8月9日14:52:10