本文目录
- 本篇前言
- 知识点讲解
- 软件仿真
本篇前言
运放,全称是运算放大器,一般的用法是用来发大电信号的,本篇讲解到的就是通过运算放大器将大电流流过采样电阻后的电压进行放大后输出给单片机的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直流时,对应0V,当交流电对应+311V直流时,对应3.3V。
(运放的加法器)
实际上,运放的偏置电压就是一个加法器电路,把偏置电压加上。下满简单讲解一下。
上面所示,MOS_GND对GND电压为0V时,Vin = Voffset = 0.0825V
当我们的电流流过采样电阻,我加上是一个10a的电流,MOS_GND对GND电压为
V10a = 10 * 0.02 = 0.2V
基尔霍夫电流定律,同一个回路中各个电流是相等的。
I_R85 = (3.3V -0.2V ) / (1K+39K) = 0.0000775A
那么R85两端产生的电压是 0.0000775 * 1000 = 0.0775V
那么输入的V+对地的电压 = 0.0775 + 0.2 = 0.2775V
Vout = V+ * 10.1 = 2.80V
由此可见偏置电压类似于加法器的应用了。
(滤波)
C49是对运动输入电压进行滤波。
C47与反馈电阻形成一个高通滤波器,抑制较低频率的信号。
R82+C48组成一个RC滤波,减少ADC幅值频繁跳动的问题。
软件仿真
1nA无限接近于0时
10A电流时
小弟感谢大家的关注!
(利他之心,原创分享)