本文目录
- 本篇前言
- 知识点讲解
- 软件仿真
本篇前言
运放,全称是运算放大器,一般的用法是用来发大电信号的,本篇讲解到的就是通过运算放大器将大电流流过采样电阻后的电压进行放大后输出给单片机的ADC,单片机根据ADC的值(一般最大为4096)对应着3.3V的电压,根据ADC/4096*3.3获得放大后的电压,再除以放大倍数就得到真实的电压值,根据欧姆定律,I=V/R计算出电流的大小。
知识点讲解
(电流采样电阻)
为了追求精确度,采样电阻一般选用mΩ级别的电阻,电流流过电阻,会在电阻两端产生压降,电流的方向是从电势高的地方流向电势低的地方,所以流入端为+,流出端为-。对应着上图来说就是,电流流过MOS管,从MOS管流出后,经过采样电阻留回电源的GND。
(运算放大电路)
图中的U7.4就是一个芯片中的运放的一个模型,咱们看到这个运放是带反馈电阻R80的,所以是一个放大电路,如果运放不带反馈电阻,那一般就用来当做电压比较器。
“虚断”:就是运放的“-”假设是没有输入的,通道断开了,断路后,原V-的电压为
V- = Vout * R81/(R81+R80)= Vout * 1 / (1+9.1)= Vout/10.1
“虚短”:就是运放的“-”与“+”假设可以达到短路的状态,短路后,V- = V+
V- = V+ = Vin
结合上面两个公式,那么Vin = Vout/10.1,即Vout = Vin * 10.1,那么我们可以得知运放电路的放大倍数是10.1倍。
(运算偏置电压)
图中的R86与R85组成了运放的偏置电压。具体计算一下,没有电流流过采样电阻时,MOS_GND对GND的压差为0V,此时,MOS_GND电压为0V,运放“+”端的输入电压Voffset计算如下:
Voffset = Vin = 3.3V * R85 / (R85+R86) = 3.3V * 1/(1+39) = 3.3 V/ 40 = 0.0825V
上面我们已经算出了运放的放大倍数,当在MOS_GND电压为0V时,运放的输出电压是
Vout = Voffset * 10.1 = 0.833V,这时ADC检测到的值为
ADC = 0.833 / 3.3 * 4096 = 1034
为什么要给运放加入偏置电压?
一个是提高信号的电压值,避免ADC在较低值时因为噪声影响而造成的误差;
另外一个是当检测的信号具有正负变换的情况时,使用0-3.3V的ADC仍能检测到变化,比如交流电的电压变化,假设我们用1.65V来做基准电压,当交流电为-311V直流时,分压后电压的ADC对应0V,当交流电对应+311V直流时,分压后电压的ADC对应3.3V。
(运放的加法器)
实际上,运放的偏置电压也是一种加法器电路。下面简单讲解一下。
如上面的推算结果所示,MOS_GND队GND电压为0V时,Vin = Voffset = 0.0825V
当我们的电流流过采样电阻,假设加上的是一个10a电流,此时MOS_GND对GND电压为
V10a = 10 * 0.02 = 0.2V
因为基尔霍夫电流定律,电路中同一个回路,各处的电流是相等的。计算流过R85的电流
I_R85 = (3.3V -0.2V ) / (1K+39K) = 0.0000775A
那么R85两端产生的电压是 0.0000775 * 1000 = 0.0775V
那么输入的Vin(V+)对GND的电压 = 0.0775 + 0.2 = 0.2775V
Vout = V+ * 10.1 = 2.80V
由此可见偏置电压类似于加法器的应用。
(滤波)
C49是对运放输入电压进行滤波。
C47与反馈电阻R80形成一个高通滤波器,抑制较低频率的信号。
R82与C48组成一个RC滤波,减少ADC幅值频繁跳动的问题。
软件仿真
无限接近于0的 1nA电流流过采样电阻20mΩ时
10A电流流过采样电阻20mΩ时
注意事项:
1.采样电阻功率的问题,考虑到电阻流过大电流,计算公式是P=UI=IR*I假设我们电路中最大的是是10A,那么电阻的产生的功率为 Pr = 10*0.02*10 = 2W,要采用合金电阻等大瓦数的。
2.运放的选择问题,提到这个,不得不引入一个轨对轨的概念。这里的轨指的是电源轨道,假设运功是3.3V供电,则Vout的输出范围为0-3.3V,因为有的运放输出只能输出到Vcc-1.5V的,这个具体看数据手册了。
数据手册中对于Vout输出电压的最大值描述
非轨到轨输出波形,“被削顶”的波形
小弟感谢大家的关注!
(利他之心,原创分享)