1)设计电源板的电路原理图;
2)用Altium Designer软件设计电源板的PCB图;
3)电源板的制作、装配、焊接与调试;
4)单片机模块的软件设计与调试;
5)系统联调与参数测试;
6)提交课程设计资料。
设计一款数显数调的直流稳压电源,具体要求如下:
1)输出电压0—15V,步进0.1V可调,误差≤0.05V;
2)输出电流0—1000mA;
3)单片机模块能显示设定的电压值、输出的电压值和输出的电流值;能用“+、-”键步进调节输出电压值;
4)当输出电流达到1000mA时,由恒压输出模式改为恒流输出模式,即输出电流维持1000mA不变,输出电压降低。当输出电流小于1000mA时,自动恢复恒压输出的工作模式。
根据设计要求
1、电源板的设计
对于变压器输出的交流电压,电源板先要进行整流滤波,再由可调三端稳压芯片LM317进行稳压、并且调节输出电压值。因为输出电流最高要到达1A,因此要充分考虑整流滤波电路、稳压调节电路的电流容量,特别是滤波电容的容量选择、LM317的散热问题。
根据设计要求,输出电流为0——1000mA,设电流取样电阻为100mΩ康铜丝,则电流取样电压为0——0.1V,需要放大30倍,变为0——3V电压,经单片机A/D转换后,作为输出电流的数据来源。
设计的输出电压为0——15V,则电压取样电路的分压比为1/5,经电压取样后的电压为0——3V,通过单片机A/D转换后,作为输出电压的数据来源。
单片机模块设定的输出电压值,经D/A转换后,其电压值应在0——3V之间。该电压值与电源板的电压取样值进行比较,经放大后控制可调三端稳压芯片,调节输出电压的大小,形成一个闭环控制回路。
辅助电源电路的作用是产生各芯片正常工作所需要的电源电压,可以采用三端稳压芯片。因辅助电源的输出电流很小(mA数量级),因此可以采用小功率的三端稳压,比如用LM78L15产生+15V电压,用LM78L05产生+5V电压。考虑到节约成本,负电源可以采用电荷泵电压转换芯片TJ7660,将+5V转化为-5V,给运放电路提供负电源供电。
考虑到安全的需要,电源板应设计过流保护措施和电源指示灯。为了便于调试和检测,应统筹考虑各个接线端子的形状规格和位置布局。
2、单片机模块的设计
考虑到后续课程和毕业设计的需要,单片机模块采用32位单片机STM32F103,必须具备2个按键、2路A/D转换输入、1路D/A转换输出、LCD显示屏和独立的电源供电系统。
本课程设计使用成品的开发板,只需要设计开发板的相关程序,设计要求如下:
1)加到开发板的电流取样信号为0——3V,经A/D转换后,在显示屏上显示“输出电流****.*mA”。如电流取样信号为0V,显示“0.0mA”;电流取样信号为3V,则显示“1000.0mA”;电流取样信号大于3V,转为恒流方式输出,见下面“5)”。
2)加到开发板的电压取样信号为0——3V,经A/D转换后,在显示屏上显示“输出电压**.*V”。如电压取样信号为0V,显示“输出电压0.0V”;电压取样信号为3V,则显示“输出电压15.0V”。
3)开发板输出的控制信号经D/A转换后,为0——3V,通过电源板的闭环控制回路后,实际输出电压为0——15V。
开发板复位后,输出的控制电压固定为1V,此时电源板的输出电压为5V。可以通过开发板模块的“+”、“-”按键来改变设定的电压值,每按一下“+”键,开发板输出的控制电压增加0.02V(电源板的输出电压增加0.1V),当增加到3V时,再按“+”键,开发板输出的维持3V不变。每按一下“-”键,开发板输出的控制电压减小0.02V(电源板的输出电压减小0.1V),当减小到0V时,再按“-”键,开发板的输出维持0V不变。
长按“+”、“-”键1秒以上时,开发板输出的控制电压能快速增加或减少(0.1秒增加或减少0.02V),增加到3V或减小到0V时,维持不变。
4)开发板的OLED显示屏能显示三个数据:输出电流值、输出电压值、设定电压值,显示屏的刷新时间为0.5秒。
以下“5)”和“6)”为扩展功能,同学们可以根据自己的编程能力和兴趣爱好进行选做。
5)过流保护功能:当电流取样信号大于3V时(电源板的输出电流大于1000mA),转为恒流方式输出,即输出电流维持1000mA不变,输出电压降低。此时的设计难点是控制电压的下降速度和下降方式,下降速度太慢,电源板会因为过流而烧坏;下降速度太快,会失去恒流输出的特性。
当输出电压下降到1V,输出电流还大于1000mA时,可以判断为负载短路。此时开发板关闭输出,即输出控制电压为0V,电源板的输出电压和输出电流均为0,显示“负载短路”。开发板改为间隙检测工作模式:每1秒时间输出0.1秒的控制信号,控制信号的电压为0.2V(电源板输出为1V),检测输出电流值。如果输出电流仍然大于1000mA,说明负载还是短路,进入循环检测模式。如果输出电流小于1000mA,说明短路解除,恢复正常工作。
当输出电流小于1000mA时,自动恢复恒压输出的工作模式。
6)采用双闭环控制模式:电源板的“电压取样”、“比较放大”、“可调三端稳压”构成一个小的闭环控制系统,该控制回路在稳压电源中是必不可少的。为了提高输出电压的控制精度(即确保输出电压值等于设定的电压值),可以增加一个大的闭环控制回路,即由“电压取样”、“开发板A/D”、“控制算法”、“开发板D/A”、“比较放大”、“可调三端稳压”形成一个大的闭环控制回路。在大闭环控制回路中,设计的难点是“控制算法”的确定。
数控直流电压源原理图
按键处理子程序
void KeyDeal(void)
{
switch(Key.Value)
{
case KEY1_S:if(date_struct.sys_show_mode.sys_set_num < set_outvoltage_max )
date_struct.sys_show_mode.sys_set_num += fine_mode_rang;
else
date_struct.sys_show_mode.sys_set_num = set_outvoltage_max;
break;
case KEY2_S:if(date_struct.sys_show_mode.sys_set_num > set_outvoltage_min )
date_struct.sys_show_mode.sys_set_num -= fine_mode_rang;
else
date_struct.sys_show_mode.sys_set_num = set_outvoltage_min;
break;
default :;
}
while(Key.Value==KEY1_1)
{
if(date_struct.sys_show_mode.sys_set_num < set_outvoltage_max )
date_struct.sys_show_mode.sys_set_num += fine_mode_rang;
else
date_struct.sys_show_mode.sys_set_num = set_outvoltage_max;
delay_ms(100);
if(Key.Value!=KEY1_1)
break;
}
while(Key.Value==KEY2_1)
{
if(date_struct.sys_show_mode.sys_set_num > set_outvoltage_min )
date_struct.sys_show_mode.sys_set_num -= fine_mode_rang;
else
date_struct.sys_show_mode.sys_set_num = set_outvoltage_min;
delay_ms(100);
if(Key.Value!=KEY2_1)
break;
}