俺胡说几句:
假如电压基准是Vref=5V.输入信号Vi=0~5V.(超过基准电压要分压) AD转换为10位的,那么就是2*2*.....*2=2^10=1024=0x3ff+1 数字将会等分1024份,即0,1,....1022,1023. 设数字转换后的"电压值"为Vd.
当Vi = 0时, Vd肯定为0,估计人人应该都明白
当Vi = 5V时,Vd应该最大,肯定是0x3ff或1023.
为何不是1024呢???因为1024就成了11位AD了~~~
既然Vi=5V对应Vd=1023
所以有 Vd = (Vi / Vref) * (2 ^ 10 - 1) = (Vi / Vref) * 1023
固有Vi=5V Vd = (5V / 5V) * 1023 = 1023;//哈哈,你会说这些都是废话~~~ 再来Vi=2.5V Vd = (2.5V / 5V) * 1023 = 1023 / 2 = 511或512(你看着办~~~) 继续Vi=1V Vd = (1V / 5V) * 1023 = 1023 / 5
所以我们就把"公式"推出来了~~~(哈哈~~~俺从不记公式,现推现用,锻炼大脑~~~)
所以会有人说俺菜农傻~~~哈哈,不这样傻,脑浆早变成黑色的了~~~
那么已知Vd如何求Vi呢???本不该再讲,为了您那晚的真诚,俺就罗嗦几句,也好报恩~~~
因为: Vd = (Vi / Vref) * (2 ^ N - 1)//其中N为AD转换的为数
那么: Vi = (Vd * Vref) / (2 ^ N - 1)
例如: Vd = 250(俺喜欢这个数字~~~)
那么: Vi = (250 * 5V) / 1023 = 1.222V
千万注意: 为了减小误差,一定要先乘后除!!!!!!!这是ADC/DAC的要领~~~
还要注意: 2N-1=1023.
网上有很多关于到底是1024还是1023对否的问题.
不管争论如何,我个人认为应该取1024.(公式全用2N,而不用2N - 1)
因为1024做乘除只需左右移位10次(N次)即可.
争论无非是为了1/1024或1/1023.这点小毛病就什么好计较的呢???
就像种菜一样,在10米长的菜地里种10棵白菜,间距为10米.
那么应该可以压线种10棵,共有9个空隙(间距).
有人会站在菜数上考虑问题,也有人从间距上考虑问题~~~
课讲完了,俺准备回村吃夜宵去也~~~
菜农 2007.12.3 2:50(哈哈~~~又是1个250) 相关链接:http://www.**/blog/hotpower/12610/category.aspx |