PWM

直流电动机的PWM调压调速原理

直流电动机转速N的表达式为:N=U-IR/Kφ

由上式可得,直流电动机的转速控制方法可分为两类:调节励磁磁通的励磁控制方法和调节电枢电压的电枢控制方法。其中励磁控制方法在低速时受磁极饱和的限制,在高速时受换向火花和换向器结构强度的限制,并且励磁线圈电感较大,动态响应较差,所以这种控制方法用得很少。现在,大多数应用场合都使用电枢控制方法。

对电动机的驱动离不开半导体功率器件。在对直流电动机电枢电压的控制和驱动中,对半导体器件的使用上又可分为两种方式:线性放大驱动方式和开关驱动方式。

线性放大驱动方式是使半导体功率器件工作在线性区。这种方式的优点是:控制原理简单,输出波动小,线性好,对邻近电路干扰小;但是功率器件在线性区工作时由于产生热量会消耗大部分电功率,效率和散热问题严重,因此这种方式只用于微小功率直流电动机的驱动。绝大多数直流电动机采用开关驱动方式。开关驱动方式是使半导体器件工作在开关状态,通过脉宽调制PWM来控制电动机电枢电压,实现调速。

在PWM调速时,占空比α是一个重要参数。以下3种方法都可以改变占空比的值。

(1)定宽调频法

这种方法是保持t1不变,只改变t2,这样使周期T(或频率)也随之改变。

(2)调频调宽法

这种方法是保持t2不变,只改变t1,这样使周期T(或频率)也随之改变。

(3)定频调宽法

这种方法是使周期T(或频率)保持不变,而同时改变t1和t2。

前两种方法由于在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此这两种方法用得很少。目前,在直流电动机的控制中,主要使用定频调宽法。

直流电动机双极性驱动可逆PWM控制系统

双极性驱动则是指在一个PWM周期里,作为在电枢两端的脉冲电压是正负交替的。

双极性驱动电路有两种,一种称为T型,它由两个开关管组成,采用正负电源,相当于两个不可逆控制系统的组合。但由于T型双极性驱动中的开关管要承受较高的反向电压,因此只用在低压小功率直流电动机驱动。

另一种称为H型。

H型双极性驱动

1、电动机控制电路模块

H桥电动机驱动电路的工作原理:

A:当单片机的P0.0脚输出高电平,而P0.1脚输出低电平时,通过光电耦合器后仍然输出为高电平,使Q4管导通,此时Q1也处于导通状态,但Q2管的基极的电位被强行拉低,Q2管处于截止状态。由于单片机的P0.1脚输出低电平,

Q8处于截止状态,而此时Q7因为Q5的截止而处于导通状态,从而使电动机形成回路,电机正常工作。

B:同理可得,当P0.0脚输出低电平,而P0.1脚输出高电平时,三极管的状态与上述相反,电机同样处于正常工作状态。

C:当P0.0脚和P0.1同时为高电平或低电平,由于Q4与Q8和Q3与Q7的工作状态相同,同时处于导通或截止,使电机两断电位相同,无法使电机形成闭和回路,电机不工作,着就是所谓本设计所提及的刹车状态。

由于电路中在驱动功率管的发射极各添加了一个小电感,目的是为了使电机驱动电压更加稳定,得到较为平滑的驱动电压,从而增加了刹车时动作的准确性,减少电机的在起动和停止的瞬间产生过大的电压对功率管的冲击,导致功率管的损坏。同时也提高了电机的刹车控制可靠性和准确性,不至于因惯性而导致控制上产生较大的误差。

该桥的优点是电路的原理简单、易控制、功耗低带负载能力强、刹车的精度很高而且价格低廉。在驱动电路的控制信号输入断采用了光电隔离技术,减小H桥电机驱动电路对单片机的干扰,实现模拟电路与数字电路的隔离。在单片机的配合下,通过PWM调节脉宽的方法,实现了对驱动电机的轻松调速,通过键盘的配置可以对体的参数进行修改,可以使电机适应各种不同的工作状态,而实现智能控制的目的。正因为采取了PWM该技术,使我们完成基本要求的过程变得简单易行。

在电路中所采取的功率管为中功率管,其中将驱动功率管设计为灵活替换方式,可以根据实际驱动电路的需要,从而调整功率管的型号而不用另行更改电路,就可以满足电路控制的要求

2、软件模块部分

在速度控制方面,一般是能通过改变加在电机两端的电压来实现的,可以是连续改变(加直流电压),也可以是断续改变(加脉冲电压)。为了简单用,我们采用了脉宽调速,脉宽的变化可以通过硬件或软件来实现。

方案一 硬件实现是通过改变振荡电路中RC参数来调整充放电时间。若用硬件电路来实现,在稳定性方面得不到保证。

方案三 用软件的作法是通过设置高电平及低电平的保持时间来达到PWM的脉宽调制目的。

就比较而言,软件调整量化指标更高、调整更可靠、更方便、更准确。因此在设计时,常考虑方案二。

脉冲频率对电机转机也有影响,脉冲频率高连续性好,但带负载能力差,频率低则反之。经实验发现,脉冲频率在15━20HZ效果最佳。在本设计中采用了20HZ进行设计。

脉冲调速实质上是调节加在电机两端的平均功率,通过计算可发现电机的速度与脉宽成正比。

软件编程的考虑是设置脉宽这个变量。在P0.0,P0.1的输出控制信号来产生20HZ可调脉宽方波。

下面是51单片机的实验程序

#include < reg51.h >
#include < intrins.h >
sbit  K1 =P1^4 ;                    //增加键
sbit  K2 =P1^5 ;                    //减少键
sbit  P00 =P0^1;
sbit  BEEP =P3^7 ;                //蜂鸣器
unsigned char PWM=0xe7;   //赋初值
void Beep();
void delayms(unsigned char ms);
void delay(unsigned char t);
/*********************************************************/
void main()
{
     P1=0xff;
    TMOD=0x21 ;
    TH0=0xff ;             //50us延时常数
    TL0=0xce ;            //频率调节
    TH1=PWM ;            //脉宽调节
    TL1=0 ;
     EA=1;
     ET0=1;
     ET1=1;
     TR0=1 ;
   while(1)
   {
     do{
            if(PWM!=0xff)
           {PWM++ ;delayms(10);}
           else Beep() ;
         }
     while(K1==0);
     do{
           if(PWM!=0xce)
          {PWM-- ;delayms(10);}
           else Beep() ;
          }
     while(K2==0);
   }
}
void timer0() interrupt 1
{
    TR1=0 ;
    TH0=0xff ;
    TL0=0xce ;
    TH1=PWM ;
    TR1=1 ;
    P00=0 ;      //启动输出
}
void timer1() interrupt 3
{
    TR1=0 ;
    P00=1 ;     //结束输出
}
/*********************************************************/
//蜂鸣器子程序
/*********************************************************/
void Beep()   
  {
      unsigned char i  ;
      for (i=0  ;i<100  ;i++)
        {
          delay(100)  ;
          BEEP=!BEEP  ;                //Beep取反
        }
     BEEP=1  ;                            //关闭蜂鸣器
     delayms(100);
  } 
/*********************************************************/
// 延时子程序
/*********************************************************/
void delay(unsigned char t)
 {
    while(t--)   ;
 }
/*********************************************************/
// 延时子程序
/*********************************************************/
void delayms(unsigned char ms)
{
    unsigned char i ;
    while(ms--)
     {
        for(i = 0 ; i < 120 ; i++) ;
     }
}
/*********************************************************/

转自:博客园 - Aaronfay

围观 5
19

做电源设计的应该都知道PWM 和PFM 这两个概念。

开关电源的控制技术主要有三种:
(1)脉冲宽度调制(PWM);
(2)脉冲频率调制(PFM);
(3)脉冲宽度频率调制(PWM-PFM).

PWM:(pulse width modulation)脉冲宽度调制

脉宽调制PWM是开关型稳压电源中的术语。这是按稳压的控制方式分类的,除了PWM型,还有PFM型和PWM、PFM混合型。脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。

PFM:(Pulse frequency modulation) 脉冲频率调制

一种脉冲调制技术,调制信号的频率随输入信号幅值而变化,其占空比不变。由于调制信号通常为频率变化的方波信号,因此,PFM也叫做方波FM

PWM是频率的宽和窄的变化,PFM是频率的有和无的变化, PWM是利用波脉冲宽度控制输出,PFM是利用脉冲的有无控制输出。

其中PWM是目前应用在开关电源中最为广泛的一种控制方式,它的特点是噪音低、满负载时效率高且能工作在连续导电模式,现在市场上有多款性能好、价格低的PWM集成芯片,如UCl842/2842/3842、TDAl6846、TL494、SGl525/2525/3525等;PFM具有静态功耗小的优点,但它没有限流的功能也不能工作于连续导电方式,具有PFM功能的集成芯片有MAX641、TL497等;PWM-PFM兼有PWM和PFM的优点。

DC/DC变换器是通过与内部频率同步开关进行升压或降压,通过变化开关次数进行控制,从而得到与设定电压相同的输出电压。PFM控制时,当输出电压达到在设定电压以上时即会停止开关,在下降到设定电压前,DC/DC变换器不会进行任何操作。但如果输出电压下降到设定电压以下,DC/DC变换器会再次开始开关,使输出电压达到设定电压。PWM控制也是与频率同步进行开关,但是它会在达到升压设定值时,尽量减少流入线圈的电流,调整升压使其与设定电压保持一致。

与PWM相比,PFM的输出电流小,但是因PFM控制的DC/DC变换器在达到设定电压以上时就会停止动作,所以消耗的电流就会变得很小。因此,消耗电流的减少可改进低负荷时的效率。PWM在低负荷时虽然效率较逊色,但是因其纹波电压小,且开关频率固定,所以噪声滤波器设计比较容易,消除噪声也较简单。

若需同时具备PFM与PWM的优点的话,可选择PWM/PFM切换控制式DC/DC变换器。此功能是在重负荷时由PWM控制,低负荷时自动切换到PFM控制,即在一款产品中同时具备PWM的优点与PFM的优点。在备有待机模式的系统中,采用PFM/PWM切换控制的产品能得到较高效率。

就DC-DC变换器而言目前业界PFM只有Single Phase,且以Ripple Mode的模式来实现,故需求输出端的Ripple较大。没有负向电感电流,故可提高轻载效率。由于是看输出Ripple,所以Transient很好,在做Dynamic的时候没有under-shoot。PWM有Single Phase &Multi-phase,多以Voltage Mode or Current Mode来实现,对输出Ripple没有要求,轻载时存在电感负向电流,故轻载效率较差,Compensation较Ripple相比较慢。将PWM于PFM结合使用,当侦测到电感负电流的时候,变出现Pulse Skipping,而不再受内部Clock控制。此时,controller will turnoff both h-mos & l-mos,Coss & L会出现阻尼振荡。

每位工程师接触的领域不一样,可能有的领域是用PFM比较多,有的是用PWM比较多,但从整个电源行业来说,相信目前还是PWM用的多.上世纪80年代至今,PWM开始了在电源变换领域的“王朝统治"地位,因为每种方式都有缺点和优点.关键还是看是否适合客户需要吧在论坛看到一位网友是这样写的,我觉得写的比较形象,他说如果把PFM与PWM的电源用车来比较的话,用PFM的=奔驰,用PWM的=大众。

PFM相比较PWM主要优点在于效率

1、对于外围电路一样的PFM和PWM而言,其峰值效率PFM与PWM相当,但在峰值效率以前,PFM的效率远远高于PWM的效率,这是PFM的主要优势。

2、PWM由于误差放大器的影响,回路增益及响应速度受到限制,PFM具有较快的响应速度

PFM相比较PWM主要缺点在于滤波困难

1、滤波困难(谐波频谱太宽)。
2、峰值效率以前,PFM的频率低于PWM的频率,会造成输出纹波比PWM偏大。
3、PFM控制相比PWM控制 IC 价格要贵。

PFM之所以应用没有PWM多最主要的一个原因就是另外一个原因就是PWM的巨大优点了:控制方法实现起来容易,PFM控制方法实现起来不太容易

来源:硬件十万个为什么

围观 6
12

  •  PWM 和PFM 是两大类DC-DC 转换器架构

  •  每种类型的性能特征是不一样的

  •  重负载和轻负载时的效率

  •  负载调节

  •  设计复杂性

  •  EMI / 噪声考虑

做电源设计的应该都知道PWM 和PFM 这两个概念

开关电源的控制技术主要有三种:
(1)脉冲宽度调制(PWM);
(2)脉冲频率调制(PFM);
(3)脉冲宽度频率调制(PWM-PFM).

PWM:(pulse width modulation)脉冲宽度调制

脉宽调制PWM是开关型稳压电源中的术语。这是按稳压的控制方式分类的,除了PWM型,还有PFM型和PWM、PFM混合型。脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。

PFM:(Pulse frequency modulation) 脉冲频率调制

一种脉冲调制技术,调制信号的频率随输入信号幅值而变化,其占空比不变。由于调制信号通常为频率变化的方波信号,因此,PFM也叫做方波FM

PWM是频率的宽和窄的变化,PFM是频率的有和无的变化,PWM是利用波脉冲宽度控制输出,PFM是利用脉冲的有无控制输出。

其中PWM是目前应用在开关电源中最为广泛的一种控制方式,它的特点是噪音低、满负载时效率高且能工作在连续导电模式,现在市场上有多款性能好、价格低的PWM集成芯片;PFM具有静态功耗小的优点,但它没有限流的功能也不能工作于连续导电方式。

PWM 和PFM

与PWM相比,PFM的输出电流小,但是因PFM控制的DC/DC变换器在达到设定电压以上时就会停止动作,所以消耗的电流就会变得很小。因此,消耗电流的减少可改进低负荷时的效率。PWM在低负荷时虽然效率较逊色,但是因其纹波电压小,且开关频率固定,所以噪声滤波器设计比较容易,消除噪声也较简单。

PWM 和PFM

PWM 和PFM

若需同时具备PFM与PWM的优点的话,可选择PWM/PFM切换控制式DC/DC变换器。此功能是在重负荷时由PWM控制,低负荷时自动切换到PFM控制,即在一款产品中同时具备PWM的优点与PFM的优点。在备有待机模式的系统中,采用PFM/PWM切换控制的产品能得到较高效率。

PWM 和PFM

PWM 和PFM

转自:硬件十万个为什么

围观 15
69

导读:在电动机FOC控制系统中,对电动机电流的采样是一个非常重要的环节,在低成本应用场合,为了降低成本,减小体积,根据母线电流和相电流关系而形成的单电阻电流采样及相电流重建方法具有很大的竞争优势。MagniV为单电阻设计提供了独特的硬件支持。

一、引言

电流采样对无感电机矢量控制是非常重要的,电流采样性能是其中一个关键的环节,往往直接影响到整个控制方案的性能好坏。

在实际使用中,三相电流采样常见类型有三电阻、双电阻以及单电阻采样技术。它们的实现方式不同,但共同的目标就是为得到真实的三相电流。本期小编主要介绍近期十分热门的单电阻电流重建技术以及MagniV系列芯片对于该技术特有的硬件支持。

二、单分流采样技术简介

相电流采样技术对于检测相电流以及通过其重构获取定子电流的全部三相信息是关键问题。当直流母线电压连接到电机时,如图1在八个电压矢量的其中六个中,流过分流电阻的相电流产生一个电压降,需要由AD转换器进行适当采样。

三分钟了解MagniV 双切换PWM技术
图1 电压矢量

图2显示了矢量101期间的电流测量示例,其中可以采集iSB电流。考虑一个对称三相系统,可以在任何时候使用基尔霍夫电流定律(iSA+iSB+iSC=0),因此在一个PWM周期内至少需要两个电流才能使所有三相电流可用于矢量控制。由于电压矢量的调制,在单个PWM周期内可以使用两个不同的非零电压矢量组合感测两个电流。然后基于基尔霍夫电流定律计算第三个电流。

三分钟了解MagniV 双切换PWM技术
图2 电流测量

三、单分流采样技术缺陷

技术是一把双刃剑,在单电阻分流测量期间,为了允许测量电流,需要对正弦调制模式进行修改,这种模式修改可能会产生一些电流纹波,由于模式修改以及对修改后的校正,算法的实现难度增加并且会占用更多的CPU资源。

在电流测量期间只有当两个电压矢量有效并保持足够的时间以捕获电流时,才能使用单分流三相电流重构。

如图3所示,当两个PWM边缘彼此靠近时,直流链路上的相电流信号脉冲变得太短而无法被捕获或“消失”。这使得这部分三相电流信息不可见,并且感测电路最终可能干扰相电流反馈。如果所有三相都足够接近,则不能从直流母线电流传感器恢复相电流信息。

三分钟了解MagniV 双切换PWM技术
图3 电压矢量调制举例

单分流采样有其明显的优势,也存在必然的缺陷,但MagniV系列的双切换PWM技术极大的增加了单分流采样方案优势。

四、双切换PWM技术

在不改变硬件的情况下,我们可以使用“移相PWM”的方式对三相电流进行重构,但其软件实现难度大,同时增加了芯片的资源的需求。

小编这里给伙伴们推荐另一种方式:MagniV系列芯片特有的“双切换PWM”技术。该技术是将重叠信号中的一个分成两部分,并在脉冲中间插入一个零脉冲,从而很好的解决了单分流采集技术的缺陷。

MagniV的“双切换PWM”技术除了将一个信号从另一个信号上移开之外,还能将其中一个重叠信号分成两个对称信号,这两个部分分开移动(图4左边的蓝色信号),因此信号的总长度是相同的。

但是,会有不同数量的开关操作。考虑到插入的死区时间不同,双开关阶段的输出电压较低。这种双重切换的另一个影响是不同的电压矢量被注入到电机中。这些干扰可能会导致通量的谐波失真和产生噪音。

三分钟了解MagniV 双切换PWM技术
图4 PWM双切换技术

为了降低双重切换过程中的噪声和损耗,所有的信号分成两部分,其中一个信号使另两信号以较长的时间间隔分开(图4右侧)。不必要的电压矢量(110)在包括零电压矢量的两个短时间段内切换,并且减少了双重切换的负面影响。

同时,由于双重切换的机制,我们在每个电流上可以有两个样本可用,附带的我们可以对样本取均值,一定程度上平滑采样数据。

五、总结

在一些低成本应用场合,为了降低成本,减小体积,根据母线电流和相电流关系而形成的单电阻电流采样及相电流重建方法具有很大的竞争优势。

单电阻电流重建的最重要原因之一就是降低成本,它将采样电路简化至一个分流电阻和一个差分放大器。该方案除了降低成本外,它检测全部三相时使用的电路相同,这对于全部测量,增益和偏移都是相同的,这将不再需要校准每相放大电路或者在软件中进行补偿。

MagniV系列芯片特有的“双切换PWM”技术。为单电阻FOC的实现提供了另一种崭新的思路,并通过硬件上的改变简化了单电阻FOC技术的设计。

转自:周立功单片机

围观 15
561

意法半导体的STCH03脉宽调制(PWM)控制器拥有很高的集成度,采用一次侧调整技术实现精确的恒流输出,帮助经济型手机充电器、电源适配器或辅助电源更好地满足能效法规对平均效率和待机功率的严格限制。

在负载较低时,为最大限度地提高能效,STCH03进入准谐振模式(ZVS),通过检测变压器退磁来控制零电压开关操作。检测电路还提供电压前馈控制功能,以确保恒流调整的精确度。STCH03将运行电流维持在变压器连续(CCM)和不连续(DCM)电流的工作边界,根据线路/负载条件将转换器的最高工作频率限制在167kHz,并且随着负载的降低实现波谷跳跃,以取得最高的能效。

节能功能包括零功率高压启动电路以及负载非常低或断开时的低静态电流和突发模式切换等,可将待机功率保持在10mW以下,以帮助充电器和适配器符合严格的法规要求,例如,即将发布的CoC Tier 2电源效率规范。低峰流可消除轻负载或无负载时的人耳可听噪声。在变压器辅助偏置电压值较低时,STCH03的自适应欠压锁定(UVLO)创新功能可确保目标应用连续稳定地工作。

凭借准确的一次侧恒流调整技术,STCH03不需额外的输出电流检测组件,从而减少了充电器物料清单(BOM)费用。内部集成的启动电路在不工作时不耗电,也可以节省外部组件。

STCH03还有很多有助于节省外部组件和BOM成本的功能,包括过热保护(OTP)和过压保护(OVP),这些保护功能都有自动重启功能,部分产品(STCH03L型号)还可选择保护锁定。 此外,软启动可防止启动时出现高峰值电流,在设备出现输出短路或在恒定电流控制下输出电压过低时,输出欠压保护功能确保设备安全运行。

STCH03采用开发人员熟悉的SO-8封装,现已投入生产。

详情访问 www.st.com/stch03

围观 9
1462

1 引言

PWM 开关稳压或稳流电源基本工作原理就是在输入电压变化、内部参数变化、外接负载变化的情况下,控制电路通过被控制信号与基准信号的差值进行闭环反馈,调节主电路开关器件的导通脉冲宽度,使得开关电源的输出电压或电流等被控制信号稳定。 PWM 的开关频率一般为恒定,控制取样信号有:输出电压、输入电压、输出电流 、输出电感电压、开关器件峰值电流。由这些信号可以构成单环、双环或多环反馈系统 ,实现稳压、稳流及恒定功率的目的,同时可以实现一些附带的过流保护、抗偏磁、均流等功能。现在主要有五种 PWM 反馈控制模式。下面以 VDMOS 开关器件构成的稳压正激型降压斩波器为例,说明五种PWM反馈控制模式的发展过程、基本工作原理、详细电路原理示意图、波形、特点及应用要点,以利于选择应用及仿真建模研究。

2 开关电源 PWM 的五种反馈控制模式

一般来讲,正激型开关电源主电路可用图1所示的降压斩波器简化表示,Ug表示控制电路的 PWM 输出驱动信号。根据选用不同的 PWM 反馈控制模式,电路中的输入电压 Uin、输出电压 Uout、开关器件电流(由 b 点引出)、电感电流(由 c 点引出或 d 点引出)均可作为取样控制信号。输出电压 Uout在作为控制取样信号时,通常经过图 2 所示的电路进行处理,得到电压信号 Ue,Ue 再经处理或直接送入 PWM 控制器。

图 2 中电压运算放大器(e/a)的作用有三:

①将输出电压与给定电压 Uref 的差值进行放大及反馈,保证稳态时的稳压精度。该运放的直流放大增益理论上为无穷大,实际上为运放的开环放大增益。

②将开关电源主电路输出端的附带有较宽频带开关噪声成分的直流电压信号转变为具有一定幅值的比较“干净”的直流反馈控制信号(Ue)即保留直流低频成分 ,衰减交流高频成分。因为开关噪声的频率较高,幅值较大,高频开关噪声衰减不够的话,稳态反馈不稳;高频开关噪声衰减过大的话,动态响应较慢。虽然互相矛盾,但是对电压误差运算放大器的基本设计原则仍是“低频增益要高,高频增益要低”。

③对整个闭环系统进行校正,使得闭环系统稳定工作

开关电源五种 PWM 反馈控制模式

输入电压、电流等信号在作为取样控制信号时,大多也需经过处理。由于处理方式不同,下面介绍不同控制模式时再分别说明。

2.1 电压模式控制 PWM (Voltage-mode Control PWM)

图 3(a)为 BUCK 降压斩波器的电压模式控制 PWM 反馈系统原理图。电压模式控制 PWM 是 60 年代后期开关稳压电源刚刚开始发展而采用的第一种控制方法。该方法与一些必要的过电流保护电路相结合,至今仍然在工业界很好地被广泛应用。电压模式控制只有一个电压反馈闭环,采用脉冲宽度调制法,即将电压误差放大器采样放大的慢变化的直流信号与恒定频率的三角波上斜坡相比较,通过脉冲宽度调制原理,得到当时的脉冲宽度,见图 3(a)中波形所示。逐个脉冲的限流保护电路必须另外附加。当输入电压突然变小或负载阻抗突然变小时,因为主电路有较大的输出电容 C 及电感L 相移延时作用,输出电压的变小也延时滞后,输出电压变小的信息还要经过电压误差放大器的补偿电路延时滞后,才能传至 PWM 比较器将脉宽展宽。这两个延时滞后作用是暂态响应慢的主要原因。

开关电源五种 PWM 反馈控制模式

电压模式控制的优点:
①PWM 三角波幅值较大,脉冲宽度调节时具有较好的抗噪声裕量;
②占空比调节不受限制;
③对于多路输出电源,它们之间的交互调节效应较好 ;
④单一反馈电压闭环设计、调试比较容易;
⑤对输出负载的变化有较好的响应调节。

缺点:
①对输入电压的变化动态响应较慢;
②补偿网络设计本来就较为复杂,闭环增益随输入电压而变化使其更为复杂;
③输出 LC 滤波器给控制环增加了双极点,在补偿设计误差放大器时,需要将主极点低频衰减,或者增加一个零点进行补偿;
④在传感及控制磁芯饱和故障状态方面较为麻烦复杂。

改善加快电压模式控制瞬态响应速度的方法有二种:

一是增加电压误差放大器的带宽,保证具有一定的高频增益。但是这样容易受高频开关噪声干扰影响,需要在主电路及反馈控制电路上采取措施进行抑制或同相位衰减平滑处理;

另一方法是采用电压前馈模式控制 PWM 技术,原理如图 3(b)所示。用输入电压对电阻电容(RFF、CFF)充电产生的具有可变化上斜坡的三角波取代传统电压模式控制 PWM 中振荡器产生的固定三角波。此时输入电压变化能立刻在脉冲宽度的变化上反映出来,因此该方法对输入电压的变化引起的瞬态响应速度明显提高。对输入电压的前馈控制是开环控制,而对输出电压的控制是闭环控制,目的是增加对输入电压变化的动态响应速度。这是一个有开环和闭环构成的双环控制系统。

开关电源五种 PWM 反馈控制模式

2.2 峰值电流模式控制 PWM (Peak Current-mode Control PWM)

峰值电流模式控制简称电流模式控制。它的概念在 60 年代后期来源于具有原边电流保护功能的单端自激式反激开关电源。在 70 年代后期才从学术上作深入地建模研究 。直至 80 年代初期,第一批电流模式控制 PWM 集成电路(UC3842、UC3846)的出现使得电流模式控制迅速推广应用,主要用于单端及推挽电路。近年来,由于大占空比时所必需的同步不失真斜坡补偿技术实现上的难度及抗噪声性能差,电流模式控制面临着改善性能后的电压模式控制的挑战。如图 4 所示,误差电压信号 Ue 送至 PWM 比较器后,并不是象电压模式那样与振荡电路产生的固定三角波状电压斜坡比较,而是与一个变化的其峰值代表输出电感电流峰值的三角状波形或梯形尖角状合成波形信号 UΣ比较,然后得到 PWM 脉冲关断时刻。因此(峰值)电流模式控制不是用电压误差信号直接控制 PWM 脉冲宽度,而是直接控制峰值输出侧的电感电流大小,然后间接地控制 PWM 脉冲宽度。

电流模式控制是一种固定时钟开启、峰值电流关断的控制方法。因为峰值电感电流容易传感,而且在逻辑上与平均电感电流大小变化相一致。但是,峰值电感电流的大小不能与平均电感电流大小一一对应,因为在占空比不同的情况下,相同的峰值电感电流的大小可以对应不同的平均电感电流大小。而平均电感电流大小才是唯一决定输出电压大小的因素。在数学上可以证明,将电感电流下斜坡斜率的至少一半以上斜率加在实际检测电流的上斜坡上,可以去除不同占空比对平均电感电流大小的扰动作用,使得所控制的峰值电感电流最后收敛于平均电感电流[1]。因而合成波形信号UΣ要有斜坡补偿信号与实际电感电流信号两部分合成构成。当外加补偿斜坡信号的斜率增加到一定程度,峰值电流模式控制就会转化为电压模式控制。因为若将斜坡补偿信号完全用振荡电路的三角波代替,就成为电压模式控制,只不过此时的电流信号可以认为是一种电流前馈信号,见图 4所示。当输出电流减小,峰值电流模式控制就从原理上趋向于变为电压模式控制。当处于空载状态,输出电流为零并且斜坡补偿信号幅值比较大的话,峰值电流模式控制就实际上变为电压模式控制了。

峰值电流模式控制 PWM 是双闭环控制系统,电压外环控制电流内环。电流内环是瞬时快速按照逐个脉冲工作的。功率级是由电流内环控制的电流源,而电压外环控制此功率级电流源。在该双环控制中,电流内环只负责输出电感的动态变化,因而电压外环仅需控制输出电容,不必控制 LC 储能电路。由于这些,峰值电流模式控制 PWM 具有比起电压模式控制大得多的带宽。

峰值电流模式控制 PWM 的优点:
①暂态闭环响应较快,对输入电压的变化和输出负载的变化的瞬态响应均快;
②控制环易于设计;
③输入电压的调整可与电压模式控制的输入电压前馈技术相妣美;
④简单自动的磁通平衡功能;
⑤瞬时峰值电流限流功能 ,即内在固有的逐个脉冲限流功能;
⑥自动均流并联功能。

缺点:
①占空比大于 50%的开环不稳定性,存在难以校正的峰值电流与平均电流的误差;
②闭环响应不如平均电流模式控制理想;
③容易发生次谐波振荡,即使占空比小于 50%,也有发生高频次谐波振荡的可能性。因而需要斜坡补偿;
④对噪声敏感,抗噪声性差。因为电感处于连续储能电流状态,与控制电压编程决定的电流电平相比较,开关器件的电流信号的上斜坡通常较小,电流信号上的较小的噪声就很容易使得开关器件改变关断时刻,使系统进入次谐波振荡;
⑤电路拓扑受限制;
⑥对多路输出电源的交互调节性能不好。

2.3 平均电流模式控制 PWM (Average Current-mode Control PWM)

平均电流模式控制概念产生于 70 年代后期。平均电流模式控制 PWM集成电路出现在 90 年代初期,成熟应用于 90 年代后期的高速 CPU 专用的具有高 di/dt 动态响应供电能力的低电压大电流开关电源。图 5(a)所示为平均电流模式控制 PWM 的原理图[1]。将误差电压 Ue 接至电流误差信号放大器(c/a)的同相端,作为输出电感电流的控制编程电压信号 Ucp(Ucurrent- program)。带有锯齿纹波状分量的输出电感电流信号 Ui 接至电流误差信号放大器(c/a)的反相端,代表跟踪电流编程信号 Ucp 的实际电感平均电流。Ui 与 Ucp 的差值经过电流放大器(c/a)放大后,得到平均电流跟踪误差信号 Uca 。再由 Uca 及三角锯齿波信号 UT 或 Us 通过比较器比较得到 PWM 关断时刻。Uca 的波形与电流波形 Ui 反相,所以,是由 Uca的下斜坡(对应于开关器件导通时期)与三角波 UT 或 Us 的上斜坡比较产生关断信号。显然,这就无形中增加了一定的斜坡补偿。为了避免次谐波振荡,Uca 的上斜坡不能超过三角锯齿波信号 UT 或 Us 的上斜坡。

开关电源五种 PWM 反馈控制模式

平均电流模式控制的优点是:

①平均电感电流能够高度精确地跟踪电流编程信号 ;
②不需要斜坡补偿;
③调试好的电路抗噪声性能优越;
④适合于任何电路拓扑对输入或输出电流的控制;⑤易于实现均流。

缺点是:

①电流放大器在开关频率处的增益有最大限制;
②双闭环放大器带宽、增益等配合参数设计调试复杂。

图 5(b)为增加输入电压前馈功能的平均电流模式控制,非常适合输入电压变化幅度大、变化速度快的中国电网情况。澳大利亚 R-T 公司的 48 V/100A 半桥电路通信开关电源模块实际上采用图 5(b)的控制方式。

2.4 滞环电流模式控制 PWM (Hysteretic Current-mode Control PWM)

滞环电流模式控制 PWM 为变频调制,也可以为定频调制[2]。图 6 所示为变频调制的滞环电流模式控制 PWM。将电感电流信号与两个电压值比较,第一个较高的控制电压值 Uc(Uc=Ue)由输出电压与基准电压的差值放大得到,它控制开关器件的关断时刻;第二个较低电压值 Uch 由控制电压 Uc减去一个固定电压值 Uh 得到,Uh 为滞环带,Uch 控制开关器件的开启时刻。滞环电流模式控制是由输出电压值 Uout、控制电压值 Uc 及 Uch 三个电压值确定一个稳定状态,比电流模式控制多一个控制电压值 Uch,去除了发生次谐波振荡的可能性,见图 6 右下示意图。因为 Uch1=Uch2,图 6右下示意图的情况不会出现。

开关电源五种 PWM 反馈控制模式

滞环电流控制模式的优点:
①不需要斜坡补偿;
②稳定性好,不容易因噪
声发生不稳定振荡。

缺点:
①需要对电感电流全周期的检测和控制;
②变频控制容易产生变频噪声。

2.5 相加模式控制 PWM (Summing-mode Control PWM)

图 7 所示为相加模式控制 PWM 的原理图。与图 3 所示的电压模式控制有些相似,但有两点不同[3]:
一是放大器(e/a)是比例放大器,没有电抗性补偿元件。控制电路中电容 C1 较小,起滤除高频开关杂波作用。主电路中的较小的 Lf、Cf 滤波电路(如图中虚线所示,也可以不用)也起减小输出高频杂波作用。若输出高频杂波小的话,均可以不加。因此,电压误差放大没有延时环节,电流放大也没有大延时环节;
二是经过滤波后的电感电流信号 Ui 也与电压误差信号 Ue 相加在一起构成一个总和信号 UΣ与三角锯齿波比较,得到 PWM 控制脉冲宽度。相加模式控制 PWM 是单环控制,但它有输出电压、输出电流两个输入参数。如果输出电压或输出电流变化,那么占空比将按照补偿它们变化的方向而变化。

开关电源五种 PWM 反馈控制模式

相加控制模式的优点是:动态响应快(比普通电压模式控制快 3~5 倍),动态过冲电压小,输出滤波电容需要较少。相加模式控制中的 Ui 注入信号容易用于电源并联时的均流控制。缺点是:需要精心处理电流、电压取样时的高频噪声抑制。

3 结论

1)不同的 PWM 反馈控制模式具有各自不同的优缺点,在设计开关电源选用时要根据具体情况选择合适的 PWM 的控制模式。

2)各种控制模式PWM反馈方法的选择一定要结合考虑具体的开关电源的输入输出电压要求、主电路拓扑及器件选择、输出电压的高频噪声大小、占空比变化范围等。

3)PWM 控制模式是发展变化的,是互相联系的,在一定的条件下是可以互相转化的 。

转载出处:电源网

围观 35
1275

电机控制单电阻采样机制是在一个 PWM 波形内采集两相电流 ADC 数据,但某些扇区边界条件下只能获得一路电流 ADC 数据, 需要对 PWM 波形进行变形用于构造电流采样区域。

背景介绍

根据电机控制拓扑结构,单电阻采样在一个 PWM 控制周期内可以取得两相电流数据:

电机控制单电阻采样 PWM 变形信号产生

电机控制单电阻采样 PWM 变形信号产生

在扇区边沿无法获得两相电流信号。
电机控制单电阻采样 PWM 变形信号产生

波形产生

ST 专利的方法是在波形的中间部分产生变形波形,在变形后的波形上就可以得到两相电流 ADC 数据;

电机控制单电阻采样 PWM 变形信号产生

当然还有目前比较流行的波形移位方法也可以做到相同效果。 波形如下:
电机控制单电阻采样 PWM 变形信号产生

STM32 系列单片机 Timer 有足够的功能,可以产生上面两种波形,机制如下:

PWM 波中间变形

电机控制单电阻采样 PWM 变形信号产生

1. 设定 CCR4 的 DMA 通道,并且设定此时 Timer1 的 preload 为禁止状态;

TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Disable);

2. 在 CCR4 比较值部分产生 DMA 事件;

DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&(TIM1->CCR1));
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)(uint32_t)(hDmaBuff2);
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = 2u;
….
TIM_DMACmd(TIM1,TIM_DMA_CC4,ENABLE);

3. 在 1 点上将 CCR1 数据直接修改为周期数据+1;

4. 在 2 点上将 CCR1 数据修改为 CCR1’的数据;

5. 时间计算上按照上面的图示设定,中间凹陷时间为两边补充波形时间之和。

波形移位变形

电机控制单电阻采样 PWM 变形信号产生

1. 设定 Timer1 的 update 事件的 DMA 通道

DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&(TIM1->CCR1));
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)(uint32_t)(hDmaBuff2);
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = 2u;
……
TIM_DMACmd(TIM1,TIM_DMA_Update,ENABLE);

2. 在 1 点上更新 CCR1 数据为 CCR1 数据;

3. 在 2 点上更新 CCR1 数据为 CCR1’数据;

4. 保证前后的移位时间相同。

来源:ST意法半导体

围观 12
1650

一. TIMER分类:

STM32中一共有11个定时器,其中TIM6、TIM7是基本定时器;TIM2、TIM3、TIM4、TIM5是通用定时器;TIM1和TIM8是高级定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick。

定时器

计数器分辨率

计数器类型

预分频系数

产生DMA请求

捕获/比较通道

互补输出

TIM1

TIM8

16位

向上,向下,向上/向下

1-65536之间的任意数

可以

4

TIM2

TIM3

TIM4

TIM5

16位

向上,向下,向上/向下

1-65536之间的任意数

可以

4

没有

TIM6

TIM7

16位

向上

1-65536之间的任意数

可以

0

没有

其中TIM1和TIM8是能够产生3对PWM互补输出,常用于三相电机的驱动,时钟由APB2的输出产生。TIM2-TIM5是普通定时器,TIM6和TIM7是基本定时器,其时钟由APB1输出产生。

二、PWM波形产生的原理:

产生波形原理来源:http://www.ndiy.cn/thread-31081-1-1.html
通用定时器可以利用GPIO引脚进行脉冲输出,在配置为比较输出、PWM输出功能时,捕获/比较寄存器TIMx_CCR被用作比较功能,下面把它简称为比较寄存器。
这里直接举例说明定时器的PWM输出工作过程:若配置脉冲计数器TIMx_CNT为向上计数,而重载寄存器TIMx_ARR被配置为N,即TIMx_CNT的当前计数值数值X在TIMxCLK时钟源的驱动下不断累加,当TIMx_CNT的数值X大于N时,会重置TIMx_CNT数值为0重新计数。
而在TIMxCNT计数的同时,TIMxCNT的计数值X会与比较寄存器TIMx_CCR预先存储了的数值A进行比较,当脉冲计数器TIMx_CNT的数值X小于比较寄存器TIMx_CCR的值A时,输出高电平(或低电平),相反地,当脉冲计数器的数值X大于或等于比较寄存器的值A时,输出低电平(或高电平)。
如此循环,得到的输出脉冲周期就为重载寄存器TIMx_ARR存储的数值(N+1)乘以触发脉冲的时钟周期,其脉冲宽度则为比较寄存器TIMx_CCR的值A乘以触发脉冲的时钟周期,即输出PWM的占空比为 A/(N+1) 。

三、STM32产生PWM的配置方法:

1、配置GPIO口:

配置IO口的时候无非就是开启时钟,然后选择引脚、模式、速率,最后就是用结构体初始化。不过在32上,不是每一个IO引脚都可以直接使用于PWM输出,因为在硬件上已经规定了用某些引脚来连接PWM的输出口。下面是定时器的引脚重映像,其实就是引脚的复用功能选择:

a.定时器1的引脚复用功能映像:

STM32之PWM波形输出配置总结

b.定时器2的引脚复用功能映像:
STM32之PWM波形输出配置总结

c.定时器3的引脚复用功能映像:
STM32之PWM波形输出配置总结

d.定时器4的引脚复用功能映像:
STM32之PWM波形输出配置总结

根据以上重映像表,我们使用定时器3的通道2作为PWM的输出引脚,所以需要对PB5引脚进行配置,对IO口操作代码:

GPIO_InitTypeDef GPIO_InitStructure;//定义结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);//使能GPIO外设和AFIO复用功能模块时钟
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //选择Timer3部分重映像
//选择定时器3的通道2作为PWM的输出引脚TIM3_CH2->PB5 GPIOB.5
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //TIM_CH2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽功能
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化引脚

2、初始化定时器:

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//定义初始化结构体
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3时钟
//初始化TIM3
TIM_TimeBaseStructure.TIM_Period = arr; //自动重装载寄存器的值
TIM_TimeBaseStructure.TIM_Prescaler =psc; //TIMX预分频的值
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据以上功能对定时器进行初始化

3、设置TIM3_CH2的PWM模式,使能TIM3的CH2输出:

TIM_OCInitTypeDef TIM_OCInitStructure;//定义结构体
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//选择定时器模式,TIM脉冲宽度调制模式2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//比较输出使能
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//输出比较极性低
TIM_OC2Init(TIM3, &TIM_OCInitStructure);//根据结构体信息进行初始化
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能定时器TIM2在CCR2上的预装载值

4、使能定时器3:

TIM_Cmd(TIM3, ENABLE); //使能定时器TIM3

经过以上的操作,定时器3的第二通道已经可以正常工作并输出PWM波了,只是其占空比和频率都是固定的,我们可以通过改变TIM3_CCR2,则可以控制它的占空比。修改占空比的函数为:TIM_SetCompare2(TIM3,n); n不同,占空比不同。

5、修改pwm波形的占空比:

编写一个函数:void TIM3_PWM_Init(u16 arr,u16 psc);将以上所有的代码都加进来这个函数中,只要在main函数中调用该函数进行初始化,然后使用TIM_SetCompare2()函数修改PWM的占空比就可以在PB5脚得到需要的PWM波形了。关于频率以及占空比的计算方法有以下例子:

int main(void)
{
  TIM3_PWM_Init(9999,143);//频率为:72*10^6/(9999+1)/(143+1)=50Hz
  TIM_SetCompare2(TIM3,4999);//得到占空比为50%的pwm波形
  while(1);
}

可参考:http://www.cnblogs.com/wangh0802PositiveANDupward/archive/2012/12/29/283...

转自:粥巴坨

围观 31
1474

有客户需要用到高精度的DAC模块,MM32L0系列产品内部没有集成DAC模块,考虑到外接DAC芯片会增加成本,所以在本实验中将为大家介绍使用PWM输出,经过简单的变换电路即可实现DAC,这将大量降低电子设备的成本、减少体积,并提高精度。本实验在PWM到DAC转换关系的理论分析基础上,设计出输出为0~5V电压的DAC。

MM32L0系列产品包含1个高级控制定时器、5个通用定时器(1个32 位定时器和5个16 位定时器),以及 2个看门狗定时器和1个系统嘀嗒定时器。

每个定时器都有 PWM 输出或单脉冲模式输出,所以MM32L0系列产品任意一款型号都可以用PWM做DAC输出功能。

PWM波形的分段函数:

MM32 基于PWM做DAC输出设计

其中:k为谐波次数,N是PWM波一个周期的计数脉冲个数,T是单片机中计数脉冲的基本周期,即MCU每隔T时间记一次数(计数器的值增加或者减少1),t为时间, n是PWM波一个周期中高电平的计数脉冲个数,VH和VL分别是PWM波中高低电平的电压值。

PWM的高低电平分别为VH和VL,理想的情况VL等于0,但是实际中一般不等于0,所以用户在处理PWM的VL时需注意,出现较大误差一般都是因为这个地方。

将上述函数展开成傅里叶级数得到:

MM32 基于PWM做DAC输出设计

从上式可以看出,上式中第1个方括弧为直流分量,第2项为1次谐波分量,第3项为大于1次的高次谐波分量。上式中的直流分量与n成线性关系,并随着n从0到N,直流分量从VL到VL+VH之间变化,这正是电压输出的DAC所需要的。因此,如果能把式中除直流分量的谐波过滤掉,则可以得到从PWM波到电压输出DAC的转换,即:PWM波可以通过一个低通滤波器进行解调。式中的第2项的幅度和相角与n有关,频率为1/(NT),该频率是设计低通滤波器的依据。如果能把1次谐波很好过滤掉,则高次谐波就应该基本不存在了。

在DAC的应用中,分辨率是一个很重要的参数,傅里叶级数公式中的分辨率计算直接与N和n的可能变化有关:

MM32 基于PWM做DAC输出设计

从上式中可看出:
N越大DAC的分辨率越高,但是NT也越大,即 PWM的周期或者傅里叶级数公式中的1次谐波周期也越大,相当于1次谐波的频率也越低,需要截止频率很低的低通滤波器,DAC输出的滞后也将增加。为了使T减少,即减少单片机的计数脉冲宽度(这往往需要提高单片机的工作频率),达到不降低1次谐波频率的前提下提高精度。

MM32L0系列产品最高工作频率可达 48MHz,TIM2是32位的定时器,PWM频率计算公式:
Fpwm = 48M / ((arr+1)*(psc+1))(单位:Hz)
公式中psc就是分频系数,arr就是计数值。预分频器可以将计数器的时钟频率按 1 到 65536 之间的任意值分频。计数值可以从1-4294967295(2的32次方减1)中任意选取。

本次实验采用两阶RC滤波,使用两个电阻和两个电容组成一个具有DAC功能的引脚,PB10是32位的定时器TIM2_CH3通道,PA3和PA4两个通道分别去采集1阶RC滤波和2阶RC滤波后的电压值。

MM32 基于PWM做DAC输出设计

R29和C10的具体参数可根据傅里叶级数公式的第2部分的一次谐波频率来选择,实际应用中一般选择阻容滤波器的截止频率为傅里叶级数公式的基波频率的1/4左右。

RC滤波器的截止频率计算公式:

f = 1/(2πRC)

滤波器是频率选择电路,只允许输入信号中的某些频率成分通过,而阻止其他频率成分到达输出端。在电路中需要考虑到芯片引脚输出端到RC滤波电路之间的存在阻值等问题,上图中的电阻和电容值需要根据实际情况计算调整。

PB10引脚能将不同占空比的PWM信号转换为不同电压值的模拟信号。为了能更准确的获取DAC转换值,电路中还使用了2个ADC通道用来检测DAC转换值。在转换过程中PWM信号频率越快DAC输出的电压值越稳定,PWM位数越高DAC输出的电压值精度越高,32位PWM比16位PWM精度高。

实验程序:

TIM2定时器配置:
u32 OutCnt;

void InitTIM2_PWM(u16 t1, u16 t2, u16 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //TIM2_CH3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //TIM2_CH4
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_PinAFConfig(GPIOB, GPIO_PinSource10,GPIO_AF_2);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource11,GPIO_AF_2);

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Prescaler =psc;
TIM_TimeBaseStructure.TIM_Period = t1;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

TIM_OC3Init(TIM2, &TIM_OCInitStructure);
TIM_OC4Init(TIM2, &TIM_OCInitStructure);

TIM_OCInitStructure.TIM_Pulse = t2;
TIM_OC3Init(TIM2, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);

TIM_OCInitStructure.TIM_Pulse = t2;
TIM_OC4Init(TIM2, &TIM_OCInitStructure);
TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);

TIM_ARRPreloadConfig(TIM2, ENABLE);
TIM_Cmd(TIM2, ENABLE);
}

获取 SysTick 计数器的值:
u32 GetSysTickCount(void)
{
return SysTick_Count;
}

设置 SysTick 重装载值:
void SysTick_Configuration(void)
{
SysTick_Config(48000);
}

SysTick中断配置:
u32 pwm = 150;
void SysTick_Handler(void)
{
if (SysTick_Count ++ > 500)
{
SysTick_Count = 0;
InitTIM2_PWM(1024, pwm, 1);
}
}

主函数:
int main(void)
{
SystemInit();
SysTick_Count = 0;
SysTick_Configuration();
while(1)
{
}
}

操作方法:按照上述硬件搭建实验环境后,上电接上调试器,进入Debug状态,在IAR的Live watch窗口修改pwm值可以实现占空比可调。

实验结果:

MM32 基于PWM做DAC输出设计MM32 基于PWM做DAC输出设计

根据实验现象:
从PWM到DAC输出的信号处理有许多电路实现方法,上述电路实现方法DAC输出的负载能力比较差,适合具有高输入阻抗的后续电路连接,对精度和负载能力要求较高的场合,建议增加基准电压、负载驱动等电路。在MCU的应用中还可以通过软件的方法进行精度调整和误差的进一步校正。

PWM 外设结合本电路所实现DAC 有非常好的差分非线性(DNL)、线性度(INL),8位分辨率的情况下,PWM 频率为50KHz,实测精度在 0.5LSB 以内,适合于输出低频、高精度的模拟信号。

转自: 灵动微电子

围观 56
1335

页面

订阅 RSS - PWM