前言
项目需求需要使用STM32的DAC模拟电压输出控制电机驱动板,电机驱动板需要-10~+10V模拟电压输入(控制电压,对驱动能力无要求),STM32DAC输出在电源电压0-3.3V之间,显然无法直接输出到电机驱动板,拟采用运算放大器对单片机的模拟输出进行放大,进而控制电机驱动板驱动电机。
本文主要介绍运算放大器基础知识,运放芯片使用,模拟电压放大电路,以及Multisim电路仿真。
Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。
硬件:
STM32F405RGT6
LM358
软件:
Multisim
一、运算放大器介绍
运算放大器(简称“运放”)是具有很高放大倍数的电路单元。在实际电路中,通常结合反馈网络共同组成某种功能模块。它是一种带有特殊耦合电路及反馈的放大器。其输出信号可以是输入信号加、减或微分、积分等数学运算的结果,因此得名运算放大器。其内部由电容、电阻、三极管等器件构成。
在多数的常规设计中,我们使用运放的理想模型,忽略其内部结构。把它当作一个“具有放大作用的元件”,所谓理想的运放,它的输入阻抗无穷大,输出阻抗为零。高输入阻抗使得运放对前级电路的影响作用小,低输出阻抗使运放具有较强的带负载能力。
运放原理图如上图所示,引脚介绍:
电源:运放可以双电源供电,如正电源接+12V,负电源接-12V,当然也可以负电源接0
同相输入:运放输入端用“+”标注的为同相输入端。
反相输入:运放输入端用“-”标注的为反相输入端。
输出:运放具有一个输出端,输出运算、放大后的电压。
输入输出特性曲线:
图中Up为同相端输入电压,Un为反相端输入电压,V+为正电源电压,V-为负电源电压。
根据上图可知,当Up>Un时,输出端电压为正电源电压,当Up<Un时,输出端电压为负电源电压,根据这个特性可以将运算放大器作为比较器使用,根据输出电压幅值即可得知同相输入和反相输入的大小关系。
在Up≈Un时,输出与Up-Un为线性关系,这就是运算放大器的线性区,此时Up-Un很小,而输出电压很大,可以实现电压放大的效果,电压放大的极限是运放的供电电压值。
运算放大器计算原则:
虚短:在上图所示的线性区,也就是运算放大器的放大区,Up≈Un,好像两输入端被短路一样,称为虚短。
虚断:运算放大器的输入阻抗无穷大,因此输入端电流几乎为0,好像输入端断路一样。称为虚断。
二、基本运算放大电路
- 比较电路
运算放大器工作在非线性区,根据运放输出确定输入端电压的大小关系。 - 同相放大
同相放大电路中运放工作在线性区,如何保证Up≈Un呢?需要引入负反馈
上图中在运放的反相输入端引入负反馈,当同相端输入电压增大时,Up-Un增大,运放输出增大,由于负反馈回路将输出与反相输入连接起来,输出的增大导致反相输入增大,从而使Up-Un减小,反之分析类似,负反馈始终使得Up≈Un。运放的线性工作区几乎都要依靠负反馈实现。
输入、输出的关系表达式可通过虚断、虚断和电路电流、电压关系获得,这里不做推导。 - 反相放大器
- 差分放大器
- 加法器
- 积分器
三、DAC放大电路设计
采用反相放大器电路,由于单片机DAC输出电压范围为0-3.3V,全为正值,因此需要将该电压范围转换到-3.3/2~+3.3/2,再进行反相放大。
所i设计运放电路为:
上图中U_DAC为STM32模拟电压输出,U_REF为单片机电源参考电压,为3.3V。
根据虚短、虚断可知两输出端的电压均为1.65V,可反别写出通过电阻R2和电阻R1的电流
可推导出输入模拟电压与输出电压的关系:
设计输出最大模拟电压为8V,取R1=16K,R2=3.3K。注意上式中有1.65V的偏置,因此实际需要输出U_OUT和U_REF/2的差分电压值。实际电路中U_REF/2可通过对单片机电源分压得到。
到此,实现了由单片机0-3.3V模拟输出转换到-8~+8V模拟电压输出。
四、Multisim仿真
仿真电路搭建
运放选择LM358,使用±12V双电源供电。使用函数信号发生器产生0-3.3V范围偏置正弦波,该电路可将该正弦波形转化为-8~8V范围正弦波,仿真波形如下:
总结
参考反相放大电路,使用LM358运算放大器设计了模拟电压放大电路,该电路可实现将单片机0-3.3V模拟电压输出线性转化为-8~+8V模拟电压输出,使用Multisim仿真验证了电路的正确性。
后续实物制作后更新实测效果。