原创 电流检测中AD采样值处理的高效方法

2011-8-18 00:02 9617 8 16 分类: MCU/ 嵌入式

在电机控制软件的编写过程中,经常要处理由AD采样回来的电流值。由于电流有正有负,电流传感器输出地电压也是以0为中点,而一般AD的输入只能为正电压,所以电流传感器出来的电压量需要通过加减运算电路加上一个偏移值再送入AD,以保证进入AD的值恒为正。

这里AD以TI的2812的片内AD为例,其输入范围是0~3V,电流传感器以LEM的LA25NP为例,量程25A,通常采用的电路是将LEM传感器的输出经过一个100欧的电阻接到地,获得一个以0为中点的电压信号,然后在送入比例运算电路,在比例运算电路的另一个输入端加入1.5V的偏移量,这样在满量程范围内使输入AD的电压信号始终保持在0~3V之内。电流为0的时候送入AD的电压是1.5V

在程序中进行电流运算时,一般要把AD采样结果取回来,然后再减去1.5V的偏移值,这样的到一个有符号数,然后再进行运算。

今天在阅读TI提供的电机驱动库代码时,发现里边使用了一种高效的处理方法,代码很简单,是这样的:

DatQ15 = AdcRegs.ADCRESULT0^0x8000;

2812的AD是12位的,AD采样结果存储在高12位。因此当AD满量程时,ADCRESULT0中的值是0xfff0。

这段代码仅仅通过一个安位异或运算就将AD的值减去了1.5V的偏移,并变成了有符号数。

至于具体为设么,举例说明,当电压为3V时,采样值是0xfff0,异或运算后高位的1变成了0,其余位不变,接结果是7ff0,如果将最高位看做符号位,那么有效位是11位,那么

PARTNER CONTENT

文章评论8条评论)

登录后参与讨论

用户1729492 2015-12-17 13:59

原理图都没有,这么没品味,瞎说

用户1724720 2015-12-14 09:12

內容不全呀!

用户1864300 2015-12-9 10:11

为什么看不全

用户377235 2015-12-9 10:01

为什么看不全?

用户1829584 2015-3-2 10:41

怎么看不全呢

用户429289 2012-10-10 21:38

怎么看不全呢

用户377235 2012-5-16 23:10

不错哈

用户400866 2012-4-1 10:06

看看

相关推荐阅读
用户1567471 2011-09-22 09:41
Apache:Could not reliably determine the server's..
最近在自己的电脑上试着搭建PHP环境,遇到了一个奇怪的问题,修改Apache的httpd.conf文件,将PHP模块加入进去以后,发现仍然无法运行PHP网页,貌似httpd.conf没起到作用,于是在...
用户1567471 2011-08-25 22:49
功率管开关速度与电磁干扰
我经常做一些电机驱动的项目,功率从几十瓦到十千瓦,功率管的驱动电路基本上千篇一律,也没做过过多的考虑。一般功率管的驱动使用最经典的驱动方式,包括门极电阻,门极稳压管,吸收电容。 后来遇到一个项目,做一...
用户1567471 2011-08-18 20:47
dsPIC33F单片机间通讯问题及解决办法
刚刚做完一个PIC单片机的项目,使用的是dsPIC33FGP706,其中涉及两个单片机之间的数据传输。为了减少连线,采用串行口,最初设计的是使用SPI进行通讯,一个作为Master,另一个作为Slav...
用户1567471 2011-08-18 00:04
光耦隔离CAN总线设计——延迟带来的故障
最近做了一个项目,是一个CAN总线和1553B总线的网关,其中CAN总线设计中出了一点小故障,拿出来分享一下。 CAN总线采用光耦隔离,电路采用传统的光耦隔离电路,基本上如下图: 、 只是我是用的是2...
我要评论
8
8
关闭 站长推荐上一条 /3 下一条