×
嵌入式 > 嵌入式开发 > 详情

由STC12C2052AD控制的改进型调压电路

发布时间:2021-03-25 发布时间:
|
1 引言

在ZXC10通信电源系统中,上位机输出的PWM调制信号的频率为1 kHz,而且系统要求电源能根据PWM信号的占空比进行调压。即对电源输出电压在40 Vdc~60 Vdc范围内通过此PWM信号进行线性调节。PWM信号5%占空比对应40±0.5 Vdc,95%的占空比对应60±0.5 Vdc。以前此功能是用带有D/A的单片机来实现.即把PWM调制信号输入单片机,通过单片机来计算PWM信号的占空比,再根据PWM信号的占空比与输出电压的关系,并通过D/A转换来产生用于调节输出电压的偏移量,最后通过此偏移量和电源输出反馈量的共同作用来实现调压。

2 单片机调压系统

通过带有D/A的单片机来实现调压系统的方框图如图1所示。但是,由于带有D/A的单片机比较贵,因而会增加产品成本。而如果把PWM调制信号的频率提高,再经过一个简单的二阶有源低通滤波器来产生调压偏移量,则可用不带D/A转换的单片机来实现调压,这样可以大大节省成本。其改进后的电路方框图如图2所示。

3STC12C2052AD的PCA/PWM工作原理

由于STC12C2052AD单片机是作于1个时钟/机器周期,且有增强型8051内核,故其速度比普通8051快8~12倍。该单片机有2路可编程计数器阵列(PCA)/PWM,其中PCA1模块用作捕获模式,可识别输入的PWM调制信号,PCA0模块用作脉宽调节模式(PWM),可实现频率转换。此外,由于该单片机价格比较便宜,故采用此单片机作为核心控制芯片。

3.1 STC12C2052AD单片机的PCA捕获模式

STC12C2052AD系列单片机中的PCA可编程计数器阵列含有一个特殊的16位定时器,它可与2个16位捕获/比较模块相连。每个模块可编程工作在4种模式下,即:上升/下降沿捕获、软件定时器、高速输出或可调制脉冲输出。设计时,可将模块0连接到P3.7(CEX0/PCA0/PWM0),模块1连接到P3.5(CEX1/PCA1/PWM1)。由于寄存器CH和CL的内容是正在自由递增计数的16位PCA定时器的值,因此,PCA定时器可作为2个模块的公共时间基准,并可通过编程工作在1/12振荡频率、1/2振荡频率、定时器0溢出或ECI脚的输入(P3.4)。定时器的计数源由CMOD SFR的CPS1和CPS0位来确定。

要使PCA模块工作在图3所示的捕获模式,寄存器CCAPMn中的CAPNn和CAPPn至少应有一位必须置1。对模块的外部CEXn输入(包括CEX0/P3.7、CEX1/P3.5、CEX2/P2.0、CEX3/P2.4口)的跳变进行采样时,若采样到有效跳变,其PCA硬件就将PCA计数器阵列寄存器(CH和CL)的值装载到模块的捕获寄存器中(CCAPnL和CCAPnH)。

3.2 STC12C2052AD的PCA脉宽调节模式

所有PCA模块都可按图4所示的工作模式用作PWM输出。其输出频率取决于PCA定时器的时钟源。由于所有模块均共用仅有的PCA定时器,所以,它们的输出频率相同。各个模块的输出占空比是独立变化的,与使用的捕获寄存器{EPCnL,CCAPnL}有关。当CL SFR的值小于{EPCnL,CCAPhL}时,输出为低,而当PCA CLSFR的值等于或大于{EPCnL,CCAPnL}时,输出为高。当CL的值由FF变为00溢出时,{EPCnH,CCAPnH}的内容将被装载到{EPCnL,CCAPnL}中。这样就可实现无干扰地更新PWM。使能PWM模式时,模块CCAPMn寄存器的PWMn和ECOMn位必须置位。由于PWM是8位的,所以可用下式来计算PWM的信号频率:

4 PWM信号的接收与转换


4.1 PWM调制信号接收模块

由于要用PCA1模块来把上位机输出的频率为1 kHz的PWM调制信号的频率提高(因为频率越高,越容易滤波),故将PCA定时器的时间基准置为1/2振荡频率。用PCA1 (P3.7)模块来识别接收的PWM调制信号时,应使PCA1工作在上升/下降沿捕获工作模式,并打开PCA中断。设计时,可首先设置PCA1工作在上升沿捕获工作模式,这样,当P3.7脚采样到上升沿跳变时,PCA0模块即可将PCA计数器阵列寄存器CH和CL的值装载到模块的捕获寄存器中{CCAP1H,CCAP1L}。然后在中断中把{CCAP1H,CCAP1L}的值存放到自定义的数据单元{UP_DATAH,UP_DATAL}中,并在中断中把PCA1工作模式设置为下降沿捕获工作模式,从而在P3.7脚采样到下降沿跳变时,PCA1模块硬件就可将PCA计数器阵列寄存器{CH,CL)的值装载到模块的捕获寄存器中{CCAP1H,CCAP1L}。之后,再在中断中把{CCAP1H,CCAP1L}的值存放在数据单元{DOWN_DATAH,DOWN_DATAL}中,并利用双字节无符号数减法得出PWM调制信号正脉冲时定时器的计数个数为:

N1={DOWN_DATAH,DOWN_DATAL)-{DOWN_DATAH,DOWN_DATAL}

由于PWM调制信号的频率为1 kHz,周期T为1 ms。因此,可设1 ms中PCA定时器的计数个数为N2,则PWM调制信号的占空比为:

4.2 PWM调制信号的频率转换

上位机输出的PWM调制信号的频率为1 kHz左右。由于该频率比较低,直接对其进行滤波后的纹波比较大,因此,在滤波之前,应先把接收的PWM调制信号转变成与占空比成线性比例的高频PWM调制信号,频率转换可通过PCA0 (P3.5)PWM功能模块来实现。由于选择的晶振为20MHz,故可选Fosc/2为PCA/PWM时钟输入源,这样,其PWM的频率为39.062 kHz。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
内核日志及printk结构浅析