+基于MSP430F149的数控直流电源
本设计以超低功耗单片机MSP430F149作为微控制器,利用MSP430F149 的定时器模块Timer_A和Timer_B 在比较模式下输出的脉宽调制(PWM)波形产生直流、正弦波、方波信号,通过运算放大器和功率三极管电路产生符合设计要求的电压和电流信号。可以通过4*4键盘选择波形类型和输出信号的幅值和频率,并且应用液晶显示器实现数据输出。
一、设计任务
设计出有一定输出电压范围和功能的数控电源。其原理示意图如下:
二、设计要求
(1)输出电压:范围0~+10V,步进0.1V,纹波不大于10mV;
(2)输出电流:500mA;
(3)输出电压值由数码管显示;
(4)由“+”、“-”两键分别控制输出电压步进增减;
(5)为实现上述几部件工作,自制一稳压直流电源,输出±15V,+5V。
三、总体 方案
本方案的控制部分采用MSP430F149单片机,MSP430F149内部的定时器模块可以 输出PWM波形,可以通过软件改变PWM 信号的周期和占空比。占空比随时间变化的 PWM 信号经过滤波可以得到不同类型的模拟信号。MSP430F149有48个I/O 口,4*4键 盘、液晶显示器可以直接与I/O 口相连;它还有60k的存储空间,足够存储程序和字模; 它内部还集成看门狗定时器,这些特性,可以大大简化外围电路。
工作原理
PWM ( pulse-width modulated)脉宽调制信号是一种具有固定周期T,占空比可调的数字信号(如图所示)。如果PWM 信号的占空比随时间变化,那么通过滤波之后的输出信号将是幅度变化的模拟信号。因此通过控制PWM 信号的占空比就可以产生不同的模拟信号。
MSP430F149 的Timer_A和Timer_B工作在比较模式时可以输出PWM信号。 MSP430F149 的Timer_A和Timer_B,有四种工作模式 (停止、增计数、连续计数、增减计数),计数器的时钟源可选,有多个可配置输入端的捕获/ 比较寄存器,有多种可选的输出模式。它们支持同时进行的多种时序控制,多个捕获/ 比较功能及多种输出波形(PWM波形)。Timer各部分的功能选择通过寄存器(TACTL 控制寄存器、CCTLx捕获比较控制寄存器、CCRx捕获/ 比较寄存器、TAIV 中断向量寄存器)控制。要想让Timer工作在特定的模式下,只需要在相应的寄存器中写入相应的控制字。
如果定时器中的计时器工作在增计数模式,输出选用7模式(复位/置位模式),则定时器中的寄存器CCR0用来控制输出PWM波形的周期T,而与定时器对应的CCRx 寄存器来控制可变占空比。
PWM 信号经过滤波器后,一个PWM 信号周期 T 对应一个抽样值,所以输出信号的频率
Fx与该信号每个周期的采样数N及PWM 信号周期T有关。它们之间存在以下关系:
Fx=1/ (T*N) (1)
其中的 T 与 CCRO、计数器的计数频率 Fs 有关:
T= CCRO/ Fs (2)
所以,
Fx=1/[ (CCRO/ Fs) N]=Fs/(CCRO*N) (3)
通常情况下,输出信号的采样数 N ,要远高于由Nyquist 抽样定理算出的抽样数。这是因为输出信号的采样数越多,对滤波器的阶数要求越低,易于选择合适的滤波器实现。通常抽样速率取Nyquist 速率的16 或者32 倍,则实际抽样数为Nyquist抽样数的16 或者32倍。
2 .电路框图
MSP430F149 有充裕的I/O 口资源可供使用,把键盘和液晶显示直接与I/O 口相连,并用 I/O 口模拟液晶的读写和控制时序,大大简化控制电路。利用MSP430F149 自带的Timer_A 和 Timer_B 输出 PWM 波形,只需要外接简单的的滤波、放大电路,就可以达到各项设计指标的 要求。应用MSP430F149 的中断功能,还可以实现过流提示,以确保设备安全工作。该设计还实现了过流保护,产生过流时,电路会自动调节,保证设备能够正常运转。
3.单元电路设计及分析
3.1 MSP430F149基本系统介绍(键盘、显示、复位)MSP430F149 有多路时钟 (片内DCO+,32768Hz 低频晶体振荡器和 8MHz 高频晶体振荡器),并且内部可作 1、2 、4 、8 分频处理,分频后可选作MCLK,ACLK,SMCLK。由此,系统 可以工作在多种时钟模式下,降低功耗。系统内部的看门狗定时器,可实现32ms,1s 多种定时方 式,当不需要定时时,可方便地用作看门狗,简化了电路和程序。
P1,P2 ,每一路有个 8 I/O 端口,均具有中断功能。可以用它们方便地实现各种中断处理。比如本设计中的过流中断,就是用P1 口来实现的。
P3,P4,P5,P6 ,每一路有8 个I/O,可以灵活选做各种数据及控制口。
比较器_A 精确的模拟比较器可以方便地用来对输入微弱信号,正弦波信号的转换.
内部有16 位的硬件乘法器,大大加强了数值运算能力,加快了运算的速度。
.2 MSP430F149 的Timer_A 和Timer_B 实现PWM 波形的输出
3.2 .1 用Timer_A 实现固定占空比PWM 波形(对应直流)
我们将Timer_A 配制为增计数模式,在这种模式下计数器计数至 CCR0,然后复位从0 开始重新计数。我们设计的直流电压要求是0—9.9v,步进0.1v,共有99 个状态。如果我们用两个单位计数值表示一个状态,那么总共需要198 个计数状态,所以我们令CCR0=198。 我们用 TA1 和CCR1 来产生直流电平 (即输出固定占空比PWM 波形)。为此我们将TA 配置为工作在比较模式,输出模式选择模式7,即PWM 复位/置位模式。如图所示:
本设计中,可以直接用键盘输入所需要的电压值,并且可以通过键盘上的 “+”“- ”按键
调整预输入的电压值。比如我们从键盘得到4.5 ,软件处理过程为:
CCR1=4.5*10*2
计算完成,直接把计算结果写入CCR1 寄存器即可。
如果再从键盘得到一个“+”,则CCR1= CCR1+2。再把计算结果写入CCR1 寄存器。
3.2 .2 用Timer_B 实现时变占空比PWM 波形(对应正弦波和三角波)
时变占空比PWM 波形的实现要相对复杂一些,但是基本原理和用Timer_A 实现固定占空比PWM 波形相同。唯一不同的是,每次写入CCR1 寄存器的值是不同的,是有规律的。在每个PWM 周期结束时,通过调用中断函数,将查表 (或者计算)得到的抽样值载入捕获/ 比较寄存器CCR1 中。
(1).确定采样值
在前面原理论述中,我们已经说过,为了简化滤波电路,我们用Nyquist 速率的16 倍进行采样。那么,对于正弦波每周期需要采样32 次。在我们的设计过程中,我们对三角波每周期同样采样32 次。
对于正弦波我们建立一个抽样表 (正弦表),中断函数从正弦表中查出抽样值,经过处理,载入捕获/ 比较寄存器CCR1 中。
对于三角波,相对要简单一些,可以通过计算直接得到抽样值
(2).频率和相位的确定
令TA 采用的系统时钟频率为Fs, CCR0=Xccro,输出信号的频率设为Fx,因为每个周期采样32 次,所以有:Fx=Fs/ (32* Xccro )。 在TA 采用的系统时钟频率为Fs 确定后,可以通过改变CCR0 的值来改变输出频率Fx取 Fs=8Mhz,Xccro 为 64—65536 ,则输出频率范围为 8Mhz/(32*66536)--8 Mhz/(32*64) 即 3.81hz—3906.25hz.
如果确定了需要的输出信号的频率Fx,就可以通过计算得到CCR0 的值Xccro。
Xccro= Fs/ (32* Fx )
除此之外,我们还可以改变输出信号的初始相位,因为每个周期采样32 次,每个周期为2π ,所以我们可以改变的最少相位为π/16 。
三.程序框图
四.抗干扰性和低功耗设计
1 抗干扰设计
电路在设计之初,便考虑到抗干扰措施,从元器件布局到安装,均遵循电磁兼容理论,并结合学习和实验中积累的经验,设置了以下几项抗干扰措施:
在线路板上多处加装去藕滤波电容,对高低频干扰信号具有很强的抑制能力。
在信号输入时,采用无衰减表笔。
选用器件全部为CMOS 集成电路噪声容限大,抗干扰能力强。
2 低功耗设计
MSP430F149 是超低功耗单片机,它有六种工作模式可供选择 (活动模式,五种低功耗模式),各种低功耗模式又有不同的定义,可以通过程序控制。选择最为合适的模式,从而实现低功耗运行。除了让MSP430F149 尽量降低功耗外,对于外围电路的设计,我们也充分考虑了低功耗设计。在设计滤波电路时,我们用无源滤波,同样是出于低功耗的考虑。
用这款MCU制作数字电源挺不错的。这个IC的价格怎么样呢?
做数控直流电源的确挺不错的。
这是简单的数字电源。就是不知道阶跃响应如何?