
数控直流电流源设计
学生学号:
学生姓名:
专业班级:
指导教师:
职 称:
起止日期:2011.03.07~2011.03.27
吉林化工学院
Jilin Institute of Chemical Technology
课程设计任务书
一、设计题目:数控直流电流源设计
二、设计目的
1.掌握MSP430F169单片机的设计;
2.掌握数控直流电流源电路及显示驱动电路设计;
3.熟练掌握单片机的编程方法;
4.掌握利用IAR进行程序编辑,程序调试及程序下载的方法。
三、设计任务及要求
设计并实现数控直流电流源系统。数控直流电流源系统应具有以下基本功能;
(1)15DC供电(可以使用成品稳压电源),输出电流范围: 0mA~1000mA;
(2)带负载能力:≥10Ω(在负载电阻10Ω时,效率≥70%);
(3)具有“+”、“-”步进调整按键,能够调整输出电流,设置范围0mA~1000mA, (4)能够数字显示输出电流给定值和实际输出电流值;
(5)改变负载电阻大小(10Ω~15Ω之间),输出电流稳态误差值小于10mA 。
四、设计时间及进度安排
设计时间共三周(2011.3.7 ~ 2011.3.27),具体安排如下表:
| 周安排 | 设 计 内 容 | 设计时间 |
| 第一周 | 设计单片机最小系统和数字直流电流源电路的原理图,学习单片机开发工具IAR的使用。 | 2011.3.7 ~ 2011.3.13 |
| 第二周 | 按照原理图焊接电路板,并检查和调试硬件电路。学习单片机的编程驱动方法以及掌握利用IAR进行软件调试程序。 | 2011.3.14 ~ 2011.3.20 |
| 第三周 | 调试程序实现数字直流电流源的基本功能。完成并提交硬件设计作品及硬件课程设计说明书,课程设计答辩。 | 2011.3.21 ~ 2011.3.27 |
指导教师评语:
年 月 日
| 年 月 日 | ||
| 成绩 | 指导教师(签字): | |
第一章 数控直流电流源设计目的
通过数控直流电流源的设计,掌握基于MSP430F169单片机和SG3525芯片实现直流电流源控制的电路设计和软件编程方法;掌握MSP430单片机内部定时器模块、A/D模块、D/A模块的编程方法;掌握利用IAR进行程序编辑,程序调试及程序下载的方法。熟悉Altium Designer软件绘制电路原理图的基本方法和技巧;掌握硬件电路的焊接和调试方法。最重要的是从设计这个过程中学习怎么与队员之间合作,学习设计的基本思路与过程。
第二章 数控直流电流源方案选择
2.1总体方案选择
方案一:根据传统线性恒流源的原理,以集成稳压芯片(如LM337)与数字电位器构成电流源的主体部分,通过单片机改变数字电位器的阻值,以实现对恒流源输出值的调整,并使用数码管LED显示其数值,其原理方框图如图2-1所示。该方案电路结构简单,容易实现,但由于目前数字电位器分度有限,市场上能找到的最高分度只有10位,如MAXIM公司的MAX5484,难以实现发挥部分的功能。此外,由于流过的电流较大,需要并串多个数字电位器才能满足输出的电流要求,且系统为开环控制,稳定性差,精度较低。
图2-1 方案一原理方框图
方案二:根据开关电源的原理,经AC/DC/DC变换过程来实现可调稳流的功能,主电路由整流滤波电路、斩波电路和恒流电路构成。其工作过程如下:市电经隔离变压器降压后,通过整流桥整流,电容器滤波,变成平稳的直流电,完成AC/DC的变换过程;通过由FPGA(可编程逻辑器件)产生PWM调制波控制开关管的通断构成斩波电路,输出高频的直流脉冲,经储能电感平波、电容高频滤波后,输出可调的直流电;使用HCPL7870光电隔离A/D转换芯片(转换精度达15)对输出电流进行采集,构成闭环控制系统。该系统组成原理方框图图2-2所示,由于FPGA的系统时钟频率高(一般使用50MHz),且以并行处理数据,所以该方案可靠性高,编程容易。但经仔细分析后发现,该方案有如下几个缺点:系统成本较高;由于使用的是离散数字PWM调制方式,当FPGA芯片使用50MHz的系统时钟时,若PWM得占空比要实现2000个分度,则PWM的最高频率只能达到25KHZ,根据输出电流的纹波与输出的频率成反比的规律,在25KHZ频带范围内,输出电流纹波较大,给后级的稳流滤波电路电路带来困难,影响输出的电流指标,难以达到发挥部分的要求:采用的是离散的数字信号反馈控制,对数字信号的量化精度要求较高。
图2-2方案二原理方框图
方案三:按照方案二AC/DC/DC的设计思路,再在斩波电路的前级增加一级稳压电路,使用集成稳压器来降低电网波动对斩波电路的影响。控制部分选用单片机与专用的PWM调制芯片相结合的方式来控制MOSFET开关管的导通。其输出电流的大小通过隔离型电流传感器转换成对应的模拟信号,并将这一模拟量分为两路:一路直接反馈到PWM集成芯片的反馈输入端,构成连续的闭环控制系统;另一路经模/数转换芯片变成数字信号传送给单片机处理,作为辅助的调节反馈量,使用软件算法来修正给定量,减小稳态误差,其组成原理框图如图2-3所示。
图2-3方案三原理方框图
方案三与前面的方案相比,具有以下特点:系统为双环控制系统,动态响应快,超调量和稳态误差小;成本较低,技术成熟;软硬件相结合,可靠性高,功能全,扩展余地达,理论上可达到设计题目的所有性能指标,该系统设计确定使用方案三。
2.2 器件的选择
2.2.1控制芯片选择
方案一:采用目前比较通用的51系列单片机。此单片机的运算能力强,软件编程灵活,自由度大。虽然该系统采用单片机为核心,能够实现对外围电路的智能控制,但核心控制部件使用C51时,为达到设计精度的要求,外围电路必须加上12位的A/D和D/A,这就使得整个系统硬件电路变得复杂,而且12位的A/D和D/A器件价格较高,使得系统的性价比偏低。
方案二:采用MSP430F169单片机。此单片机功能较强,性价比高、集成度高、易扩展、可靠性高、功耗小及具有较高的数据处理和运算能力。由于MSP430F169单片机内部集成了A/D转换器,不需外加A/D。通过采样取样,结合内部A/D构成闭环反馈调整控制。种方案既能实现智能化的特点,简化硬件电路,提高测量精度,同时也能利用软件对测量误差进行补偿,这给调试、维护和功能的扩展、性能的提高,带来了极大的方便。
鉴于上面考虑,我们采用方案二。
2.2.2 显示器选择
方案一:采用LED显示,把测量所得到的高度通过数码管显示。数码管亮度高,体积小,重量轻。但是动态显示要求单片机定时地对显示器件扫描,如不调用显示程序,就会立即停止显示,而且显示信息简单、有限,在本题目中应用受到很大的。
方案二:采用128LCM点阵显示器,点阵显示界面友好,显示信息量丰富,接口电路简单,可以和单片机直接相连。但成本相对较高。
方案三: 采用1602字符液晶显示器,能够同时显示16×02即32个字符。1602液晶驱动简单,性价比相对较高。
考虑到本题显示信息比较简单,只需要显示给定输出电流和实际输出电流,我们决定选择1602字符液晶显示器作为本系统的显示模块。
2.2.3 键盘模块选择
方案一:采用普通四位按键模式,通过点阵显示器索显示的信息对系统进行控制,方便快捷,易于实现。
方案二:采用4×4矩阵键盘,其优点是按键数目较多,方便数据输入,但需要单片机对其进行动态扫描,耗电量较高,编程较难。
考虑到本系统的输入信息较少,我们选择普通四位键盘作为本体统的键盘模块。
2.2.4开关管选择
根据相关技术资料,对比MOSFET与IGBT两种开关管,其性能参数的对比如表2-1所示。
表2-1 MOSFET与IGBT性能参数的对比
| 性能指标 | MOSFET | IGBT |
| 驱动类型 | 电压型 | 电压型 |
| 驱动功率 | 小 | 较小 |
| 开关速度 | 快(能达到5MHz) | 较快(一般在100kHz以下) |
| 能通过电流 | 较大(一般在100A以下) | 大(能达到1000A以上) |
| 通态压降 | 小于或等于2V | 一般大于2V |
2.2.5 PWM芯片选择
PWM芯片根据其控制形式可分为电压模式控制和电流模式控制两种。其功能和驱动能力也随型号不同有所区别。根据相关技术资料,对比TL494、UC3573和SG3525三款芯片如下:
TL494内有两个误差信号比较器,能同时实现电压模式控制和电流模式控制,但在本系统中不能发挥这一优势,且没有外部强制封锁端,不便于实现过压过流保护。
UC3575属于DIP封装,其PWM占空比可从0%~100%之间调节,能直接驱动P沟道的MOSFET开关管,但在功能上不能直接实现误差放大和控制,难以满足系统设计要求。
SG3525具有很高的温度稳定性和较低的噪声等级,据有欠压保护和外部封存功能,能方便的实现过压过流保护,能输出两路波形一致、相位相差180°的PWM信号,结合双MOSFET管斩波电路的独特设计,能有效的减少输出电流的纹波。
基于以上分析,选择SG3525作为斩波电路的PWM调制芯片比较理想。SG3525主要技术指标如图2-2所列。
表2-2 SG3525 主要技术指标
| 参数名称 | 数值 |
| 最大电源电压 | 40V |
| 启动电压 | 8V |
| 最高工作频率 | 500kHz |
| 误差放大器开环增益 | 75dB |
| 放大器输入失调电压 | 2mV |
| 封锁阈值电压 | 0.4V |
| 待机电流 | 14mA |
| 基准源温度稳定性 | 0.3mV/℃ |
| 误差放大器增益带宽 | 2MHz |
| 驱动输出峰值电流 | 500mA |
方案一:直接对负载进行采样
直接对负载进行采样简单易行。但由于负载电阻为可调节电阻,输出可能有电流可能会受接触电阻的变化而不稳定,故不宜选取。
方案二:对采样电阻进行采样
采样电阻采用标准精密电阻,阻值稳定,将阻值的变化对电流的影响降低到最小程度。另外,对采样电阻进行采样,有效避免了外接测量电路对电流的影响。因此采用方案二。
第三章 数控直流电流源系统硬件设计
3.1系统结构概述
系统结构框图如图3-1所示:
此次设计的主要任务是保证输出电流的恒定,所以当负载及其他参数发生变化时,我们可以在硬件及软件两方面采取适当的措施使输出电流保持不变。软件上,利用单片机内部A/D模块读取电流源发出的电流值,并控制调整给定值,已达到准确、稳定值直流输出;硬件上,利用反馈电路将输出电流反馈进单片机使之与设定电流值进行比较,从而调节占空比使电流稳定在设定值。图3-2所示为数控恒流源的闭环控制系统。
图3-1 系统结构框图
图3-2 数控恒流源的闭环控制系统
以MSP430F169单片机作为系统控制单元,外配4MHz主晶振和32768Hz的辅助晶振、复位电路、按键电路、1602显示器构成单片机小系统,如图3-3所示;单片机通过按键读取用户的设置输出电流值,再通过A/D转换发出给定值,电流检测电路通过D/A转换把输出值传回单片机,单片机通过比较微调输出值。
图3-3单片机小系统
3.2 MSP430系列单片机
3.2.1 MSP430系列单片机的特点
MSP430系列单片机是美国德州仪器公司于上世纪九十年代开发出的产品,已在许多领域得到了广泛应用。MSP430系列单片机具有超低功耗、强大的处理能力、高性能模拟技术及丰富的片上外围模块、方便高效的开发环境等优点。MSP430 系列单片机是一个 16 位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序。
3.2.2 MSP430F169引脚功能
1.PIO端口是并行输入输出端口,8位。MSP430单片机PIO端口特点: (1)引脚丰富: P1,P2,P3,P4,P5,P6。 (2)功能丰富:I/O,中断能力,其它片内外设功能。 (3)寄存器丰富:P1与P2各有7个寄存器,P3、P4、P5、P6有四个寄存器。
2.具有中断功能的数据输入、输出端口P1和P2各寄存器符号和功能如下所述(以P1口为例): (1)P1IN: 输入寄存器 。
(2)P1OUT:输出寄存器。
(3)P1DIR:方向选择寄存器,为1位输出,为0位输入 。
(4)P1IFG:中断标志寄存器 。
(5)P1IES:中断触发沿选择寄存器。
(6)P1IE:中断使能寄存器。
(7)P1SEL:功能选择寄存器。 3.没有中断功能的数据输入、输出端口P3、P4、P5和P6各寄存器符号和功能如下所述(以P3口为例): (1)P3IN:输入寄存器。
(2)P3OUT:输出寄存器。
(3)P3DIR:方向选择寄存器。
(4)P3SEL:功能选择寄存器。
4.其他功能引脚:
(1)RST/NMI:复位输入,不可屏蔽中断输入端口。
(2)TCK :测试时钟,TCK是芯片编程测试和bootstrap loader启动的时钟输入端口。
(3)TDI : 测试数据输入,TDI用作数据输入端口,芯片保护熔丝连接到TDI。
(4)TDO/TDI :测试数据输出端口,TDO/TDI数据输出或者编程数据输出引脚。
(5)TMS :测试模式选择,TMS用作芯片编程和测试的输入端口。
(6)VeREF+ :外部参考电压的输入。
(7)VREF+ :参考电压的正输出引脚。
(8)VREF-/VeREF-: 内部参考电压或者外加参考电压的引脚。
3.3 1602液晶显示器
3.3.1 1602液晶引脚功能
1602字符型LCD有16条引脚线,引脚图如图3-4所示:
图3-4 1602LCD引脚图
其中15引脚和16引脚是背光电源线,具体引脚功能如表3-1所示:
表3-1 1602液晶显示器引脚
| 引脚 | 符号 | 功能说明 |
| 1 | VSS | GND |
| 2 | VDD | +5V电源 |
| 3 | VO | 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高 |
| 4 | RS | RS为寄存器选择,高电平1时选择数据寄存器,低电平0时选择指令寄存器 |
| 5 | R/W | R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作 |
| 6 | E | E(或EN)端为使能(enable)端,下降沿使能。 |
| 7 | DB0 | 底4位三态、 双向数据总线 0位(最低位) |
| 8 | DB1 | 底4位三态、 双向数据总线 1位 |
| 9 | DB2 | 底4位三态、 双向数据总线 2位 |
| 10 | DB3 | 底4位三态、 双向数据总线 3位 |
| 11 | DB4 | 高4位三态、 双向数据总线 4位 |
| 12 | DB5 | 高4位三态、 双向数据总线 5位 |
| 13 | DB6 | 高4位三态、 双向数据总线 6位 |
| 14 | DB7 | 高4位三态、 双向数据总线 7位(最高位)(也是busy flag) |
| 15 | BLA | 背光电源正极 |
| 16 | BLK | 背光 电源负极 |
1602液晶显示器主要有两个寄存器RS和R/W组成,他们的组合使用实现不同的功能,寄存器功能如表3-2所示:
表3-2 寄存器选择控制表
| RS | R/W | 操作说明 |
| 0 | 0 | 写入指令寄存器(清除屏等) |
| 0 | 1 | 读busy flag(DB7),以及读取位址计数器(DB0~DB6)值 |
| 1 | 0 | 写入数据寄存器(显示各字型等) |
| 1 | 1 | 从数据寄存器读取数据 |
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如‘A’。
3.3.4 1602液晶操作时序
1.读操作时序图如图3-5所示:
图3-5读操作时序图
2.写操作时序图如图3-6所示:
图3-6写操作时序图
3.时序参数
对应读时序图和写时序图的时间参数如表3-3所示,编程时应严格遵守时间参数。
表3-3 时序参数
| 时序参数 | 序号 | 极限值 | 单位 | 测试条件 | ||
| 最小值 | 典型值 | 最大值 | ||||
| E信号周期 | tC | 400 | — | — | ns | 引脚E |
| E脉冲宽度 | tPW | 150 | — | — | ns | |
| E上升沿/下降沿时间 | tR, tF | — | — | 25 | ns | |
| 地址建立时间 | tSP1 | 30 | — | — | ns | 引脚E、RS、R/W |
| 地址保持时间 | tHD1 | 10 | — | — | ns | |
| 数据建立时间(读操作) | tD | — | — | 100 | ns | 引脚DB0~DB8 |
| 数据保持时间(读操作) | tHD2 | 20 | — | — | ns | |
| 数据建立时间(写操作) | tSP2 | 40 | — | — | ns | |
| 数据保持时间(写操作) | tHD2 | 10 | — | — | ns | |
本题要求输出电流范围为0~1000mA(综合基本要求和发挥要求),步进1mA,也即分辨率为1mA,根据式3-1得
(3-1)
最小位数为11位,而为了给精度指标留有余地,A/D模块应选择12位A/D,MSP430F169单片机的ADC12模块满足设计要求。
3.4.1 MSP430F169单片机ADC12模块特点
(1)12位转换精度,1位非线性微分误差,1位非线性积分误差。
(2)有多种时钟源提供给A/DC12模块,而且模块本身内置时钟发生器。
(3)内置温度传感器。
(4)Timer_A/Timer_B硬件触发器。
(5)配置有8路外部通道与4路内部通道。
(6)内置参考电源,并且参考电压有6种组合。
(7)模数转换有4种模式。
(8)16字转换缓存。
(9)ADC12可关断内核支持超低功耗应用。
(10)采样速度快,最高可达200ksps。
(11)自动扫描。
(12)DMA使能。
3.4.2 MSP430F169单片机ADC12寄存器设置
MSP430F169单片机内部A/D模块原理图如图3-7所示。
MSP430F169单片机ADC12寄存器主要有ADC12CTL0、ADC12CTL1、ADC12MCTLx、ADC12IE、ADC12IFG、ADC12IV、ADC12MEM0等。对寄存器进行相应的设置,即可启动MSP430F169内部的A/D模块,主要的设置操作有:(1)设置参考电压。(2)设置转换通道。(3)设置A/D时钟。(4)启动转换。
AD都需要一个基准信号,通常为电压基准。ADC12内置参考电源,而且参考电压有6种可编程选择,分别为VR+与VR-的组合。其中VR+(有3种):AVCC (模拟电源正端)、VREF+ (A/D转换器内部参考电源的输出正端)、VeREF+(外部参考电源的正输入端);VR-(有2种):AVSS (模拟电源负端)、VREF- 或 VeREF-(A/D转换器内部或者外部参考电源负端)。
MSP430F169单片机内部A/D模块初始化程序代码:
void Init_ADC12(void) /*ADC12初始化*/
{
P6SEL=0x03; // 使能A/D通道A0、A1
ADC12CTL0= ADC12ON+SHT0_2+REFON+MSC+REF2_5V; //设置ADC12,其中参考电压为2.5V
ADC12CTL1=SHP+CONSEQ_3; //多通道顺序转换
ADC12MCTL0= INCH_0+SREF_1; //序列开始 选择通道
ADC12MCTL1 = INCH_1+SREF_1+EOS; //选择通道 通道选择结束
ADC12IE = 0x02; // 使能ADC12IFG.1
ADC12CTL0 |= ENC; // 使能转换
ADC12CTL0 |= ADC12SC; // 启动转换
}
图3-7 MSP430F169单片机内部A/D模块原理图
3.5 D/A转换模块
3.5.1 D/A转换器的主要技术指标
(1)分辨率(Resolution) 指最小模拟输出量与最大量之比。
(2)建立时间(Setting Time) 是将一个数字量转换为稳定模拟信号所需的时间,也可以认为是转换时间。D/A中常用建立时间来描述其速度,而不是A/D中常用的转换速率。一般地,电流输出D/A建立时间较短,电压输出D/A则较长。
3.5.2 MSP430F169单片机DAC12寄存器设置
MSP430F169单片机内部D/A模块原理图如图3-8所示。
MSP430F169单片机DAC12寄存器主要有DAC12_0CTL、DAC12_0DAT、DAC12_1CTL、DAC12_1DAT等。对寄存器进行相应的设置,即可启动MSP430F169内部的D/A模块。
图3-8 MSP430F169单片机内部D/A模块原理图
3.6 PWM控制芯片SG3525
3.6.1 SG3525功能简介
随着电能变换技术的发展,功率MOSFET在开关变换器中开始广泛使用,为此美国硅通用半导体公司(Silicon General)推出SG3525。SG3525是用于驱动N沟道功率MOSFET。SG3525系列PWM控制器分军品、工业品、民品三个等级。SG3525是电流控制型PWM控制器,所谓电流控制型脉宽读调制器是按照接反馈电流来调节脉宽的。在脉宽比较器的输入端直接用流过输出电感线圈的信号与误差放大器输出信号进行比较,从而调节占空比使输出的电感峰值电流跟随误差电压变化而变化。由于结构上有电压环和电流环双环系统,因此,无论开关电源的电压调整率、负载调整率和瞬态响应特性都有提高,是目前比较理想的新型控制器。
3.6.2 SG3525引脚功能
SG3525芯片内部功能框图如图3-9所示。
图3-9 SG3525芯片内部功能框图
各引脚功能如下所述:
1.Inv.input(引脚1):误差放大器反向输入端。在闭环系统中,该引脚接反馈信号。在开环系统中,该端与补偿信号输入端(引脚9)相连,可构成跟随器。
2.Noninv.input(引脚2):误差放大器同向输入端。在闭环系统和开环系统中,该端接给定信号。根据需要,在该端与补偿信号输入端(引脚9)之间接入不同类型的反馈网络,可以构成比例、比例积分和积分等类型的调节器。
3.Sync(引脚3):振荡器外接同步信号输入端。该端接外部同步脉冲信号可实现与外电路同步。
4.OSC.Output(引脚4):振荡器输出端。
5.CT(引脚5):振荡器定时电容接入端。
6.RT(引脚6):振荡器定时电阻接入端。
7.Discharge(引脚7):振荡器放电端。该端与引脚5之间外接一只放电电阻,构成放电回路。
8.Soft-Start(引脚8):软启动电容接入端。该端通常接一只软启动电容。
9.Compensation(引脚9):PWM比较器补偿信号输入端。在该端与引脚2之间接入不同类型的反馈网络,可以构成比例、比例积分和积分等类型调节器。
10.Shutdown(引脚10):外部关断信号输入端。该端接高电平时控制器输出被禁止。该端可与保护电路相连,以实现故障保护。
11.Output A(引脚11):输出端A。引脚11和引脚14是两路互补输出端。
12.Ground(引脚12):信号地。
13.Vc(引脚13):输出级偏置电压接入端。
14.Output B(引脚14):输出端B。引脚14和引脚11是两路互补输出端。
15.Vcc(引脚15):偏置电源接入端。
16.Vref(引脚16):基准电源输出端。该端可输出一温度稳定性极好的基准电压。
3.6.3 SG3525的特点
SG3525芯片特点如下所述:
1.工作电压范围宽:8—35V。
2.5.1V(1.0%)微调基准电源。
3.振荡器工作频率范围宽:100Hz—400KHz。
4.具有振荡器外部同步功能。
5.死区时间可调。
6.内置软启动电路。
7.具有输入欠电压锁定功能。
8.具有PWM琐存功能,禁止多脉冲。
9.逐个脉冲关断。
10.双路输出(灌电流/拉电流): 200mA(峰值)。
作为SG3524的增强版本,SG3525在以下方面进行了改进:
1.增加欠电压锁定电路。当SG3525输入电压低于8V时,控制器内部电路锁定,除基准电源和一些必要电路之外的所有电路停止工作,此时控制器消耗的电流极小。
2.增加了软启动电路。引脚8为软启动控制端,该端可外接软启动电容。软启动电容由SG3525内部50 的恒流源进行充电。
3.提高了基准电源的精度。SG3525中基准电源的精度提高了1%,而SG3524中基准电源的精度只有8%。
4.去除了限流比较器。SG3525去除了SG3524中的限流比较器,改由外部关断信号输入端(引脚10)来实现限流功能,同时还具有逐个脉冲关断和直流输出电流限幅功能。实际使用中,一般在引脚10上接电流检测信号,如果过电流检测信号维持时间较长,软启动电容将被放电。
5.PWM比较器的反向输入端增加至两个。在SG3524中,误差放大器输出端、限流比较器输出端和外部关断信号输入电路共用PWM比较器的反向输入端。在 SG3525中对此进行了改进,使误差放大器输出端和外部关断信号输入电路分别送至PWM比较器的一个反向输入端。这样做的好处在于,避免了误差放大器和外部关断信号输入电路之间相互影响,有利于误差放大器和补偿网络工作精度提高。
6.增加了PWM锁存器。为了使关断电路更可靠的工作, SG3525在其内部增加了PWM锁存器。PWM比较器输出信号首先送至PWM锁存器,锁存器由关断电路置位,由振荡器输出时间脉冲复位。当关断电路工作时,即使过电流信号立即消失,锁存器也可以维持一个周期的关断控制,直到下一周期时钟信号使锁存器复位为止。同时,由于PWM锁存器对PWM比较器的置位信号进行琐存,误差放大器上的噪声信号、振铃及其他信号在此过程中都被消除了。只有在下一个时钟周期才能重新复位,可靠性大大提高。
7. 振荡器增加了同步端和放电端。SG3524中的振荡器只有CT和RT两个引脚,其充电和放电回路是相同的。在SG3525中的振荡器除了CT和RT两个引脚外,又增加了一个同步端(引脚3)和一个放电端(引脚7)。RT的阻值决定了内部恒流源对CT充电电流的大小,而CT的放电则由引脚5和引脚7之间的外接电阻决定。将充电回路和放电回路分开,有利于通过引脚5和引脚7之间的外接电阻来调节死区时间。这样SG3525的震荡频率由下式进行计算:
同步端(引脚3)主要用于多只SG3525之间的外部同步,同步脉冲的频率应比震荡频率FOSC略低一些。
8.改进了输出级的结构。SG3525对SG3524输出级进行了改进,以适应功率MOS-FET的需要,其末级采用了推挽式电路,关断速度更快。
SG3525的输出级采用图腾柱式结构,其灌电流/拉电流能力超过200mA。
当输出晶体管开通时,R1上会有电流流过,R1上的压降将使VT1导通。因此VT1是在SG3525内部的输出晶体管导通时间内导通的,因此其开关频率等于SG3525内部振荡器的频率。
VT1和VT2分别由SG3525的输出端A和输出端B输出的正向驱动电流驱动。电阻R2和R3是限流电阻,是为了防止注入VT1和VT2的正向基极电流超出控制器所允许的输出电流。C1和C2是加速电容,起到加速VT1和VT2导通的作用。
由于SG3525的输出驱动电路是低阻抗的,而功率MOSFET的输入阻抗很高,因此输出端A和输出端B与VT1和VT2栅极之间无须串接限流电阻和加速电容,就可以直接推动功率MOSFET。
另外,SG3525还能够直接驱动半桥变换器中的小功率变压器。如果变压器一次绕组的两端分别直接接到SG3525的两个输出端上,则在死区时间内可以实现变压器的自动复位。
3.6.4 SG3525的工作原理
SG3525 内置了5.1V精密基准电源,微调至 1.0%,在误差放大器共模输入电压范围内,无须外接分压电组。SG3525还增加了同步功能,可以工作在主从模式,也可以与外部系统时钟信号同步,为设计提供了极大的灵活性。在CT引脚和Discharge引脚之间加入一个电阻就可以实现对死区时间的调节功能。由于SG3525内部集成了软启动电路,因此只需要一个外接定时电容。
SG3525的软启动接入端(引脚8)上通常接一个软启动电容。上电过程中,由于电容两端的电压不能突变,因此与软启动电容接入端相连的PWM比较器反向输入端处于低电平,PWM比较器输出高电平。此时,PWM锁存器的输出也为高电平,该高电平通过两个或非门加到输出晶体管上,使之无法导通。只有软启动电容充电至其上的电压使引脚8处于高电平时, SG3525才开始工作。由于实际中,基准电压通常是接在误差放大器的同相输入端上,而输出电压的采样电压则加在误差放大器的反相输入端上。当输出电压因输入电压的升高或负载的变化而升高时,误差放大器的输出将减小,这将导致PWM比较器输出为正的时间变长,PWM锁存器输出高电平的时间也变长,因此输出晶体管的导通时间将最终变短,从而使输出电压回落到额定值,实现了稳态。反之亦然。
外接关断信号对输出级和软启动电路都起作用。当 Shutdown(引脚10)上的信号为高电平时,PWM锁存器将立即动作,禁止SG3525的输出,同时,软启动电容将开始放电。如果该高电平持续,软启动电容将充分放电,直到关断信号结束,才重新进入软启动过程。注意,Shutdown引脚不能悬空,应通过接地电阻可靠接地,以防止外部干扰信号耦合而影响SG3525的正常工作。
欠电压锁定功能同样作用于输出级和软启动电路。如果输入电压过低,在SG3525的输出被关断同时,软启动电容将开始放电。
此外,SG3525还具有以下功能,即无论因为什么原因造成PWM脉冲中止,输出都将被中止,直到下一个时钟信号到来,PWM锁存器才被复位。
本设计SG3525连接电路图如图3-10所示:
图3-10 SG3525连接电路图
3.7 斩波与滤波稳流
所设计的斩波与滤波稳流电路原理图如图3-11所示`。续流二极管选用的快速恢复的高频二极管MBR745,通过反复调试后确定L1,L2的值,在输出端并联一个470uF的电解电容储能,同时并联一个高频电容滤除高频成分。
图3-11 斩波与滤波稳流电路原理图
第四章 数控直流电流源软件调试
4.1 IAR Embedded Workbench IDE软件使用
4.1.1 IAR Embedded Workbench IDE 简介
嵌入式 IAR Embedded Workbench IDE提供一个框架,任何可用的工具都可以完整地嵌入其中。嵌入式IAR Embedded Workbench适用于大量8位、16位以及32位的微处理器和微控制器,使用户在开发新的项目时也能在所熟悉的开发环境中进行。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式 IAR Embedded Workbench 有效提高用户的工作效率,通过 IAR 工具,用户可以大大节省工作时间。 我们称这个理念为:“不同架构,同一解决方案”。
MSP430单片机可以通过IAR编辑、编译C程序并下载到目的单片机以实现对单片机的控制。
4.1.2 IAR Embedded Workbench IDE 操作步骤
(1)创建一个workspace。
(2)创建一个project。
(3)创建并编辑一个C文件并加载到创建的workspace。
(4)设置目的芯片型号。
(5)设置仿真器类型。
(6)编译并下载到目的单片机。
4.2主程序
主程序流程图如图4-1所示,单片机的主程序主要完成系统片内功能模块的初始化,包括系统时钟初始化、定时器A初始化、定时器B初始化、A/D模块初始化和D/A模块初始化。系统各模块初始化完毕后,单片机进入低功耗模式休眠等待定时器唤醒执行定时器子程序。
图4-1 主程序流程图
4.3定时器A中断子程序
定时器A程序流程图如图4-2所示,定时器A定时时间为500ms,扫描是否有按键按下并更新屏幕显示;若检测到有按键被按下则执行相应程序,可完成设定电流输出值等设置。
图4-2 定时器A程序流程图
4.4 A/D采样子程序
A/D采样子程序流程图如图4-3所示,A/D采样子程序主要是采集电路中的电流信号,再通过单片机运算并显示当前的电流大小。
图4-3 A/D采样子程序流程图
4.5测试工具
15V直流开关电源、5V直流源、示波器、万用表、负载电阻。
4.6测试数据及测试结果分析
⒈步进值为100mA如表4-1所示:
表4-1 初次测试数据
| 设定电流 | 输出电流 | 误差 | 输入功率 | 输出功率 | 效率 |
| 100mA | 93 mA | 7 mA | 2.4W | 2.0W | 83.4% |
| 200 mA | 175 mA | 25 mA | 4.8W | 4.02W | 83.7% |
| 300 mA | 290 mA | 10 mA | 7.2W | 6.04W | 84.0% |
| 400 mA | 392 mA | 8 mA | 9.6W | 8.0W | 83.3% |
| 500 mA | 477 mA | 33 mA | 12W | 9.15W | 76.3% |
| 600 mA | 540 mA | 60 mA | 14.4W | 10.69W | 74.2% |
| 700 mA | 683 mA | 17 mA | 16.8W | 14.18W | 84.4% |
| 800 mA | 746 mA | 34 mA | 19.2W | 14.25W | 74.2% |
| 900 mA | 836 mA | mA | 21.6W | 14.12W | 65.3% |
| 1000 mA | 935 mA | 65 mA | 24W | 23.36W | 73.1% |
⒉步进值为10mA数据如表4-2所示:
表4-2 初次测试数据
| 设定电流 | 输出电流 | 误差 | 输入功率 | 输出功率 | 效率 |
| 10mA | 9 mA | 1 mA | 0.24W | 0.20W | 83.4% |
| 20 mA | 18 mA | 2 mA | 0.48W | 0.39W | 83.7% |
| 30 mA | 26 mA | 4 mA | 0.72W | 0.56W | 84.0% |
| 40 mA | 32 mA | 3 mA | 0.96w | 0.80W | 83.3% |
| 50 mA | 48 mA | 2 mA | 1.20W | 1.04W | 76.3% |
结 论
本设计使用15V直流开关电源供电,可输出0mA~1000mA(步进1mA)电流,在测试负载电阻大于10Ω时效率≥70%,并且能够数字显示输出电流给定值和实际输出电流值,达到了设计要求。
从这次的课程设计中,我真正地意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,知识只有在经常的温习使用的过程中才能提高升华。还有要锻炼自己的动手能力,不能一味地去学习理论而不实践。
随着科学的迅猛发展,新技术的广泛应用,会有很多领域是我们未曾接触过的,只有敢于去尝试才能有所突破,有所创新。也不仅仅是通过几项工种所要求我们锻炼的几种能力,更多的则需要我们每个人在实习结束后根据自己的情况去感悟,去反思。只有勤奋自勉,才能有所收获。
参考文献
[1]胡大可.MSP430系列FLASH型超低功耗16位单片机.北京:北京航空航天大学出版社,2001
[2]秦龙.MSP430单片机常用模块与综合系统.北京:电子工业出版社,2007
[3]曹磊.MSP430单片机C程序设计与实践.北京: 北京航空航天大学出版社,2007
[4]康华光.电子技术基础 模拟部分. 北京:高等教育出版社.2002
[5]时景荣,李立春.C语言程序设计.北京:中国铁道出版社.2007
附 录
部分程序代码:
/******************************************************************
* 标 题: 数控直流电流源源程序 *
* 文 件 名: wqy.c *
* 调试日期: 2011年3月24日 *
*******************************************************************/
#include #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) #define RS_H P3OUT|=0X01 #define RS_L P3OUT&=0XFE #define RW_H P3OUT|=0X02 #define RW_L P3OUT&=0XFD #define E_H P3OUT|=0X04 #define E_L P3OUT&=0X0B #define DATA P4OUT unsigned char busy=1; unsigned char add,value; unsigned int ADC_result[]; unsigned char time[]= {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x6D,0x41}; //0~9,m,A ASCII码 void init_MCLK() { unsigned char i; BCSCTL1&=~XT2OFF; do { IFG1&=~OFIFG; for(i=0x20;i>0;i--); } while((IFG1&OFIFG)); BCSCTL2 |= SELM_2; } void write_com(unsigned char com) { E_L; RS_L; RW_L; delay_us(100); DATA=com; delay_us(100); E_H; delay_us(200); E_L; delay_us(1000); } void write_data(unsigned int data) { E_L; RS_H; RW_L; delay_us(100); DATA=data; delay_us(100); E_H; delay_us(200); E_L; delay_us(1000); } void read_busy() { P4DIR=0; E_L; RS_L; RW_H; delay_us(100); E_H; busy=P4IN&0X80; delay_us(200); E_L; P4DIR=0XFF; } void int_1602() { delay_ms(15); write_com(0x38); delay_ms(6); write_com(0x38); delay_ms(6); write_com(0x38); read_busy(); while(busy) {read_busy();} write_com(0x38); read_busy(); while(busy) {read_busy();} write_com(0x08); read_busy(); while(busy) {read_busy();} write_com(0x01); read_busy(); while(busy) {read_busy();} write_com(0x06); read_busy(); while(busy) {read_busy();} write_com(0x0c); } void write_1602(unsigned char add,unsigned char value) { write_com(0x80+add); read_busy(); while(busy) {read_busy();} write_data(value); } void init_ADC12(void) /*ADC12初始化*/ { int i; ADC12CTL0= ADC12ON+SHT0_2+REFON+MSC+REF2_5V; // 接通并设置ADC12 ADC12CTL1=SHP+CONSEQ_1; // 使用采样定时器 ADC12MCTL0= INCH_0+SREF_0; //序列开始 ADC12MCTL1 = INCH_1+SREF_0+EOS; //选择通道 for ( i=0; i<0x3600; i++); // 延时等待启动参考电源 ADC12CTL0 |= ENC; // 使能转换 ADC12CTL0 |= ADC12SC; // 启动转换 } void ADC_res(void) /*读光电传感器A/D数据*/ { ADC_result[0] = ADC12MEM0; ADC_result[1] = ADC12MEM1; ADC12CTL0 |= ADC12SC; //启动转换 } void main( void ) { WDTCTL = WDT_ADLY_1000; init_MCLK(); init_ADC12(); P3DIR=0X07; P4DIR=0XFF; P6DIR=0; P6SEL=BIT0+BIT1; int_1602(); IE1|=WDTIE; _EINT(); while(1) { LPM3; } }
