基于STM32的多功能数控直流电源.docx
《基于STM32的多功能数控直流电源.docx》由会员分享,可在线阅读,更多相关《基于STM32的多功能数控直流电源.docx(31页珍藏版)》请在冰豆网上搜索。
基于STM32的多功能数控直流电源
题目:
多功能数控直流电源
队员:
队员:
队员:
指导教师:
完成时间:
2015/7/26
摘要:
利用STM32单片机系统,对键盘或者触摸屏输入的数据进行读取。
根据模式的设定,可以利用部的DAC以及外部电路实现数控直流电源输出,分为稳压源、稳流源两种。
同时也可以实现模式可调的信号发生器,可以在方波、三角波、锯齿波以及正弦波之间进行切换。
关键词:
STM32,数控,直流电源,信号发生器
Abstract:
UsingSTM32MCU,readtheinputdatafromkeyboardortouchscreen.Accordingtothemodesetnow,theDACinsidecooperateswithoutsidecircuitscanoutputDCpowersupply,whichcanbesettotwomodes,nameasvoltagesourceandcurrentsource.Thesametime,itcanalsoworkasansignalgenerator,whichcanbechangedbetweensquarewave,trianglewave,sawtoothwaveandsinewave.
Keyword:
STM32,numericalcontrol,DCpowersupply,signalgenerator
1.设计任务与要求····························································3
1.1设计任务·····························································3
1.2设计要求·····························································3
2.方案论证··································································3
2.1总体设计·····························································3
2.2关键问题·····························································4
3.单元电路设计······························································9
3.1总体电路图···························································9
3.2参数计算····························································10
4.软件设计·································································12
4.1主程序······························································12
4.2关键子程序··························································13
5.系统测试·································································19
5.1测试条件····························································19
5.2测试方法与步骤······················································19
5.3测试数据····························································21
5.4结果分析····························································23
6.结论·····································································24
6.1综合评价····························································24
6.2可改进的方向························································24
参考文献·····································································25
附录·········································································26
附录1元器件清单······················································26
附录2电路图···························································27
1.设计任务与要求
1.1设计任务
设计一个有一定输出电压、电流围的多功能数控电源。
1.2设计要求
1.2.1基本要求
(1)有稳压源模式,给定输出电压围0~9.9V,步进0.1V;输出电压静态误差≤0.1V,电压波动≤0.05V,纹波峰峰值不大于20mV;稳压时输出电流围0~100mA;
(2)有过流保护功能,当电流达到105mA±2mA围时产生保护动作;
(3)有稳流源模式,给定输出电流围0~99mA,步进1mA;输出电流静态误差≤2mA,电流波动≤1mA;稳流时输出电压围0~10V;
(4)用十进制数码显示负载电压、电流值;显示效果清晰、稳定、无闪烁;
(5)有十进制数字键盘,用于设定输出电压或电流的给定值。
另有“+”、“-”两键,可直接控制负载电压或电流的步进增减。
键盘或按键的操作要求尽可能简便。
(6)输出电压或电流可预置在给定的围任意一个值,在下一次上电时无需操作即可按设定模式和设定参数输出。
1.2.2发挥要求
(1)可用电位器分别调节负载电压和电流值,调节围符合上述输出给定围,调节特性平滑、稳定、快速;
(2)负载改变时,输出电压、电流需要同时满足不超过设定值的要求,并能实现稳压源模式与稳流源模式的自动切换;
(3)有信号源输出功能,信号输出种类有方波、三角波、锯齿波、正弦波等,每周波不少于32点;频率围:
10Hz~10kHz,步进10Hz,频率误差≤10Hz;幅度(峰峰值)可调围:
0~9.9V,步进0.1V;
(4)有通讯功能,可用上位机(触摸式串口液晶屏)控制下位机(数控直流电源)的输出电压或电流值,并能从下位机获取负载电压或电流数据,在上位机显示屏上显示该数据;
(5)其他。
2.方案论证
2.1总体设计
2.1.1组成框图
总体组成框图如图1所示。
图1组成框图
2.1.2工作原理
STM32单片机系统从数字键盘或触摸屏读取数据,根据读取的数据选择输出模式为稳压输出、稳流输出以及波形输出中的一种。
当设定为稳压输出时,STM32单片机通过DAC输出模拟电压为设定值的25%,外部电路对输出放大4倍,且通过功率放大以及负反馈,实现0~9.9V的稳压输出。
当设定为稳流输出时,STM32单片机通过DAC
当设定为波形输出时,STM32单片机通过DAC输出存储在EEPROM中的数据表,外部电路对其进行功率放大。
2.2关键问题
2.2.1稳压输出
(1)方案一:
用运放和功率器件组成功放电路
原理图如图2所示。
图2稳压输出方案一原理图
在电压放大级采用集成运放,功率放大级采用分立元件进行功率扩展。
通过改变电阻比值,可以方便地改变输出电压的调整围。
通过改变功放级分立元件的输出功率,也可以方便的改变输出的电流驱动能力。
此方案比较灵活实用。
(2)方案二:
用集成功率放大器作为功放电路
集成功率放大器将运算放大器的输出级改为复合管形式,以增大输出电流。
采用集成功率放大器可以简化外围电路、改善性能、提高可靠性,减少电路的设计工作量。
但是其价格比普通运放要高许多,且最大输出电流或功率为固定值,不易调整,缺乏灵活性。
(3)方案三:
用集成稳压器件
可以通过外接电路改变基准点的电压值,可以使其输出端电压也随之改变。
这种可调稳压输出具有良好的负载特性,输出最大负载电流达1.5A,且部具有过流保护与过热保护等电路,有较好的性价比。
需要注意的是,7805的基准点电压围应该控制在-5~+5V之间,要求DAC采用双极性输出或加入电压偏移电路将单极性输出转换为双极性输出。
原理图如图3所示。
图3稳压输出方案三原理图
2.2.2稳流输出
(1)方案一:
电压/电流转换器
原理图如图4所示。
图4稳流输出方案一原理图
这是一种适用于接地负载的转换器,要求输入的电压信号vi2有一定的电流驱动能力。
(2)方案二:
原理图如图5所示。
图5稳流输出方案二原理图
若RS=0.1,IL=0~2A,Vi=0~-5V则,R5:
R6=1:
25;U2输出需加功率驱动。
其缺点是需要三个运放,不光是用了更多的资源,而且很容易引起振荡。
(3)方案三:
原理图如图6所示。
图6稳流输出方案三原理图
若RS=0.1,IL=0~2A,Vi=0~5V,则R4:
R3=1:
25;U5输出需加功率驱动。
(4)方案四:
差分电路
原理图如图7所示。
图7稳流输出方案四原理图
运用差分电路,将采样电阻上的压降增大一定的倍数,与设定的输入电压进行比较,从而获得固定的电流。
为了让采样电阻上的电流尽可能接近负载上的电流,要使差分电路的电路较大。
2.2.3波形输出
(1)方案一:
不加入直流偏置
电路图如图8所示。
图8波形输出方案一电路图
为一个放大倍数为5倍的同向比例放大器,单片机输出为0~2V,那么信号发生器的输出为0~10V。
(2)方案二:
加入直流偏置
电路图如图9所示。
图9波形输出方案二电路图
主体同样为一个放大5倍的同向比例放大器,在其电压基准点接入可以通过电位器调节的电压值,从而可以使得单片机的输出信号在5倍放大的同时,调节直流偏置。
2.2.4过流保护
过流保护电路的功能是当输出电流因负载变化而超过设定值时产生保护作用,使输出电压降低或完全关闭输出,以保护输出电路不会因过流、过热而造成永久性损坏。
(1)方案一:
利用三极管的导通特性
原理图如图10所示。
图10过流保护方案一原理图
三极管发射结导通时vBE≈0.7V,当采样电阻R上因负载电路增加而使压降大于0.7V时使三极管T1、T2导通,产生过流保护信号;可以直接输出至驱动管,限制输出电流的继续增加,也可以送入数控部分,处理后切断电压信号。
(2)方案二:
用电压比较器
原理图如图11所示。
图11过流保护方案二原理图
利用电压比较器,当采样电阻压降达到设定值时,比较器输出信号发生翻转,起到过流保护的作用;当电压比较器同相输入端电压比vO高出VZ(即R上的压降vR≥VZ)时,电压比较器输出信号发生翻转;该信号经处理后可直接控制输出电路的输出,也可送到数控部分,由数控部分切断整个电路的输出,实现保护功能。
但是由于采样电阻R的数值很小(取为1Ω),其两端电压很小,无法直接与稳压管的稳压进行比较,需要通过差分电路进行电压放大。
(3)方案三:
用A/D转换器
原理图如图12所示。
图12过流保护方案三原理图
将采样电阻两端压差用差分放大电路处理后送A/D转换器,转换的结果送入单片机系统,由单片机系统通过软件判断输出回路的负载电流情况;负载电流大于设定值时,由软件控制D/A转换器,切断整个电路的输出;优点是过流点的设置可由软件完成,调整比较灵活;缺点是需要增加差分放大电路和A/D转换器,硬件略显复杂。
另外,该保护方案是利用软件来实现其功能的,因此,其缺点是当单片机系统出现死机情况时,输出回路将得不到有效保护。
3.单元电路设计
3.1总体电路图
总体电路图如图13所示。
图13总体电路图
3.2参数计算
3.2.1稳压输出
现则稳压源的方案一,电路图如图14所示。
图14稳压源电路图
采样电阻选择:
R4为采样电阻,阻值选为1Ω。
比例放大选择:
单片机DA理论输出围为0~2.5V,通过uA741以及阻值为30k的R3和阻值为10k的R2构成同向比例放大器,将DA输出放大4倍,从而满足输出幅值为0~9.9V的要求;但是实际上,单片机的DA输出最大值为2.46V,所以放大4倍并不能到达9.9V,选择在R2两端并联一个阻值为1M的电阻,使放大比例稍大于4,使最大输出达到要求值。
功率管选择:
NPN管Q1上最大的电压为V1=12V,最大电流为105mA,最大功率P=UI=1.26W,所以需要选择中功率三极管。
在本实验中选择的型号为2SC2073,在室温为25℃时,最大功率可达2W,满足要求。
对于Q2的功率要求并不大,但需要有一定的电流和击穿电压。
所以选择的型号为9015,可以流过500mA的最大电流,击穿电压Vce为45V>24V,满足要求。
电容C2选择:
根据仿真,并不需要连接电容C2,然而在实际的调试过程中发现,负载两端的电压有幅度约3V、频率约2MHz的振荡,需要通过电容对其进行滤波。
选择1uF的瓷片电容,焊接后,发现负载上的电压稳定,无振荡。
3.2.2稳流输出
选择稳流源的方案四,电路图如图15所示。
图15稳流源电路图
采样电阻选择:
R6为采样电阻,阻值选为1Ω。
差分比例放大选择:
采样电阻上的最大电流为约100mA,其上电压最大值为0.1V,可以通过20倍的差分放大输入到单片机。
考虑到要尽量减小差分电路的分流,选择为10K与200K。
运放选择:
差分电路对于精度的要求很高,所以选择OP07运放。
而比较器对于精度的要求并不是很高,选择uA741即可。
功率管选择:
NPN管Q1上最大的电压为V1=12V,最大电流为105mA,最大功率P=UI=1.26W,所以需要选择中功率三极管。
在本实验中选择的型号为2SC2073,在室温为25℃时,最大功率可达2W,满足要求。
对于Q2的功率要求并不大,但需要有一定的电流和击穿电压。
所以选择的型号为9015,可以流过500mA的最大电流,击穿电压Vce为45V>24V,满足要求。
电容选择:
根据PSPice仿真,电路可以正常工作,然而实际焊接之后发现电路有很强烈的振荡。
选择在OP07的2、6脚之间接入电容,发现可以将震荡减弱,而且电容越小,稳定性越好,于是选择10pf电容。
在这基础上,当电压下降到700mV时,还是会有振荡,所以在负载两端接入2.2uf的电解质电容,振荡消失。
3.2.3过流保护
选择过流保护中的方案四,电路图如图16所示。
图16过流保护电路图
采样电阻、差分比例放大以及运放选择,与稳流源相同。
3.2.4自动切换
自动切换功能实现原理图如图17所示。
图17自动切换原理图
通过数字键盘或触摸屏可以设置稳压源的最大电压和稳流源的最大电流。
单片机随时读取负载上的电压与电流,并且与设定值比较。
电流超过设定值时,控制继电器,使其工作在稳压源模式;当电压超过设定值时,控制继电器,使其工作在稳流源模式,从而实现自动切换。
4.软件设计
4.1主程序
程序流程图如图18所示。
图18主流程图
4.2关键子程序
4.2.1信息输入与显示
(1)按键输入
程序流程图如图19所示。
图19按键输入流程图
键盘扫描程序位于1ms定时中断,GPIOE口的PIN0~PIN7与按键的行、列端相连。
进行IO口初始化时将GPIOE的PIN0~PIN3口设为推挽输出,PIN4~PIN7设为上拉输入。
进行按键扫描时,先将PIN0~PIN3拉低,读回PIN4~PIN7的电平,若全为1,说明此时无按键按下,完成此次扫描,否则说明此时有按键按下,需继续对按键进行列扫描。
进行列扫描时每次仅拉低一列,其余三列输出1,读回PIN4~PIN7的电平,若不全为1,则可通过读回的电平判断按下按键的位置,若全为一,则扫描下一列。
扫描到按键后,将定时变量加一,定时变量加至100时意味着已完成100ms定时,此时将Key.Press置一,指示此时有按键按下,这样即可实现按键消抖。
主程序中根据扫描出的键值进行相应处理,处理完成后将Key.Press清零,在中断时仅当Key.Press为0时对按键进行扫描,这样能够保证在键值处理程序完成后进行新一次的扫描。
(2)触摸屏输入与显示
流程图如图20所示。
图20触摸屏输入与显示流程图
用visualTFT先对页面进行设计,不同的页面代表不同的模式,当手动切换页面时,单片机读取页面号,就可以获取当前的设定模式,从而采取不同的方法进行处理。
visualTFT将需要用户设定的文本控件设置为弹出键盘输入,可由用户手动输入。
单片机再根据页面,发送读取相应文本控件中的容的命令,触摸屏自动返回文本控件中的容。
单片机对返回的容(ASCII码)进行处理,就可以得到输入值。
关键的命令如下:
读取页面编号:
EE【B101】FFFCFFFF
切换页面:
EE【B100Screen_id】FFFCFFFF
读取文本控件数值:
EE【B111Screen_idControl_id】FFFCFFFF,其中Screen_id与Control_id分别代表页面编号与控件编号。
VisualTFT将每一页面中,需要从单片机获得数据并输出的文本控件设置为用户主机输入模式,不能由用户手动输入。
单片机根据模式的不同,将相应的需要显示的数据转换为ASCII码写入到触摸屏,触摸屏显示。
关键的命令如下:
设置文本控件数值:
EE【B110Screen_idControl_idString】FFFCFFFF,其中String不定长,为用户通过单片机写入的字符串。
4.2.2信息处理
(1)键值处理
按设置模式分为:
voidkey_process_v(u8temp);稳压源模式时的键值处理程序
voidkey_process_i(u8temp);稳流源模式时的键值处理程序
voidkey_process_v(u8temp);稳压源模式时的键值处理程序
voidkey_process_signal(u8temp);信号源模式时的键值处理程序
关键变量:
sel_mode——当前模式编号:
0具有过流保护的稳压源1稳流源2手控稳压源3手控稳流源4方波5三角波6锯齿波7正弦波8具有自动切换功能的电压源
set_v1、set_v2、set_v3、set_v4=0、set_c1=0、set_c2、square_v1、square_v2、triangle_v1、triangle_v2、saw_v1、saw_v2、sin_v1、sin_v2、square_f1、square_f2、square_f3、square_f4、triangle_f1、triangle_f2、triangle_f3、triangle_f4、saw_f1、saw_f2、saw_f3、saw_f4、sin_f1、sin_f2、sin_f3、sin_f4——设置的电压、电流值,方波、三角波、锯齿波、正弦波的幅值、频率。
程序流程图如图21所示。
程序说明:
键盘如下图所示,其中,换位键用于切换数据位以进行更改,如在稳压源模式时,换位键可实现对电压个位和十分位的修改切换;在稳流源模式时,切换键可实现对电流十位和个位的修改切换;在信号源模式时,切换键可实现对电压个位、十分位及频率的修改切换。
切换键用于更改模式,共有八种模式可选,具体模式可见sel_mode的变量说明,按下切换键后触摸屏也将切换到新模式相应的界面。
按下数字键可改变屏幕显示值,但输出未发生改变,仍为上一次的设置值,按下OK键后屏幕上的显示值成为设定值,输出随之改变,同时更新触摸屏上的显示值。
若按下数字键后按下ESC,则为退出此次更改,显示值变为上一次的设定值。
按下+、-键分别改变步进一,此时输出随之改变,触摸屏上的显示值也发生改变,不需再按下确认键。
每次按下确认键或加减键时都将设定值存储在EEPROM中,每次按下模式切换键时也将存储更新后的模式编号,以便在下一次开机时能够自动输出预置值。
图21键值处理流程图
键盘各按钮功能设置如图22所示。
图22按键功能设置图
(2)AD转换
程序流程图如图23所示。
图23AD转换程序流程图
程序说明:
AD转换使用了4个口,其中ADC_Channel_10读回负载电压,ADC_Channel_11读回稳压模式下的负载电流,ADC_Channel_12读回手动稳压稳流模式下的滑动变阻器电压,ADC_Channel_13读回稳流模式下的负载电流。
其中读回负载电压AD转换后满量程对应实际电压9.9V,读回电流AD转换后3276对应实际电流99mA,读回滑动变阻器电压AD转换后满量程电压设定值9.9V或电流设定值99mA。
5.系统测试
5.1测试条件
5.1.1测试环境
室温为27℃,供电为双通道12V以及单通道5V直流电源。
5.1.2测试仪器
测量仪器如表1所示。
表1测量仪器表
仪器名称
仪器型号
主要参数
数量
示波器
S4621A
双通道60M/s
1
万用表
MS8200G
3位半
1
电流表
UT136B
自动量程
1
5.2测试方法与步骤
5.2.1稳压源测试
(1)电压输出围测试
①设定电压为0.2V,步进减一到0.1V,再次步进减一,到0V,再次步进减一,输出维持在0V。
②设定电压为9.8V,步进加一到9.9V,再次步进加一,输出维持在9.9V。
(2)静态误差测试
分别设定输出电压为0V、2V、4V、6V、8V和9.9V,测量实际输出,观察显示值。
(3)电压波动测试
设置输出电压为4.8V与9.9V,调节负载,记录电流为20mA、40mA、60mA、80mA以及100mA时的实际电压与显示值。
(4)纹波峰峰值测试
设定输出电压为0V、4.8V与9.9V,分别测量纹波峰峰值。
(5)电流输出围测试
设置输出电压为4.8V或9.9V,调节负载大小,测试电流围。
5.2.2过流保护测试
调节模式为过流保护,将输出电压分别设置为4.8V与9.9V,并慢慢调节负载,测量过流保护启动一瞬间的输出电流值。
5.2.3稳流源测试
(1)电流输出围测试
①设置输出电流为2mA,步进减一到