单片机驱动CPLD的PWM正弦信号发生器设计

时间:2022-03-17作者:佚名

脉宽调制PWM(Pulse Width Modulation)是利用数字输出信号对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

一、PWM原理

PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON) 或断(OFF) 的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。

只要带宽足够,任何模拟值都可以使用PWM 进行编码。

如图1 所示,用一系列等幅不等宽的脉冲来代替一个正弦半波,正弦半波N 等分,看成N 个相连的脉冲序列,宽度相等,但幅值不等;用矩形脉冲代替,等幅,不等宽,中点重合,面积(冲量)相等,宽度按正弦规律变化。

图1 用PWM波代替正弦半波

SPWM 波形——脉冲宽度按正弦规律变化而和正弦波等效的PWM 波形。

二、基于CPLD的PWM方案

一个PWM发生器必须包括计数器,数据比较器,另外就是配置PWM 参数的时钟分频寄存器和占空比寄存器,结构框图如图2 所示,这些电路都可以用CPLD 来实现。

图2 PWM控制器结构框图

高频时钟信号经分频器驱动计数器,计数器如图3 所示,总是从Bottom 到Top 的循环计数,计数器的输出和占空比寄存器里的数据经数据比较器比较,输出PWM 信号,当计数器输出小于占空比设定值时输出低电平(0),否则输出高电平(1),如图3(b)(c)所示。

图3 PWM信号发生器时序波形图

从图中还可以看出,计数器的周期就是PWM 信号的周期,通过修改占空比寄存器从而实现对输出PWM 信号高低电平比例控制,图3(b)是占空比为P1 的PWM输出,图3(c)是占空比为P2 的PWM 输出,它们周期相同,高低电平的比例不同。

下面用硬件描述语言来设计CPLD 的内部电路,这里给出VerilogHDL 版本的参考代码。

module Mini51b_PWM(P0,ALE,P27,WR,PWM);// 模块电路命名和端口说明。

input [7:0]P0;// 数据输入接MCU 数据P0 口

input ALE,P27,WR;// 几个MCU 读写控制引脚

output PWM;//PWM 信号输出

wire [7:0]addr;// 内部地址线

reg [7:0]daPWMc,daPWMs;// 定义计数器和占空比设定寄存器

reg [3:0]divPWM,divPWMc;// 分频控制变量

reg PWM;// 输出锁存器

assign addr = ALE?P0 : addr; // 低八位地址锁存

always @(negedge WR)// 在MCU 写信号有效时执行寄存器设定

begin

case({P27,addr[4:0]}) // 根据地址选择寄存器

6'b10_1000: daPWMs <= P0;// 写带地址的寄存器

6'b10_1001: divPWM <= P0[3:0];// 写带地址的寄存器

default:begin// 其它地址则让寄存器保持不变

daPWMs <= daPWMs;

divPWM <= divPWM;

end

endcase

end

always @(posedge ALE) begin// 这里利用MCU 的ALE 做时钟信号

if(divPWMc == divPWM) begin // 与分频系数比较

divPWMc<=0;

if(daPWMc<100) daPWMc <= daPWMc 1; //PWM 调整精度1%

else daPWMc <= 0;

if(daPWMs < daPWMc) PWM <= 0;//PWM 发生器

else PWM <= 1;

end

else divPWMc <= divPWMc 1;// 时钟分频

end

endmodule

关于单片机与CPLD 之间的接口请读者参考本刊前几期笔者撰写的文章。

与之对应的MCU 测试程序为:

#include

#include

#define PWM XBYTE[0xffe8]

#define DIV XBYTE[0xffe9]

void main()

{

DIV = 15; //PWM 信号频率计算晶振22.1184M/6/100/

(DIV 1)=2.30K(实测2.281K)

PWM=50; // 设定占空比50%,前面计数器范围为0~99

while(1) ;

}

执行单片机程序,选择不同的分频系数和占空比值,从CPLD 的引脚输出PWM信号示波器截图如图4所示。

图4 不同占空比的PWM信号示波器截图

三、SPWM

如果将占空比按正弦规律随着时间变化,就可以得到正弦调制的PWM 信号,也就是SPWM。如图5 所示,该信号经过阻容滤波可以得到正弦模拟信号,这里的运放做电压跟随器用,对信号驱动能力进行放大。实际得到的正弦信号示波器截图效果如图6 所示。

图5 SPWM阻容滤波电路

图6 正弦信号示波器截图

正弦信号发生器MCU 演示程序:

#include

#include

#define PWM XBYTE[0xffe8]

unsigned char code sine_dot[32]={49,59,68,77,84,90,95,98,99,98,95,90,84,77,68,59,49,40,30,22,14,8,4,1,0,1,4,8,14,22,30,40};// 正弦表

相关阅读

塔的照明需求

(1)照明要塑造塔的整体性 塔体通常由基座、塔身、塔顶等几个基本部分组成,它们构成了一个和谐的整体。建筑师在进行照明设计 时赋予了每个部分相应的含意。它们都有着相应的作用...
2022-07-15

为什么高端红外系统要看MRTD? 从NETD、空间分辨率到真实目标识别能力一次讲清楚

红外热像仪到底选短焦、中焦还是长焦? 视场角、距离和空间分辨率一次讲清楚 红外镜头为什么这么贵? 锗、硫系玻璃、F数、镀膜和无热化设计一次讲清楚 很多人评价红外热像仪,喜...
2026-07-04
为什么高端红外系统要看MRTD? 从NETD、空间分辨率到真实目标识别能力一次讲清楚

欧洲LED照明市场解读

2000年,高功率LED和白光LED产品出现,进入户外照明 市场。2009年,白炽灯逐步退出欧洲市场,节能照明产品开始进入欧洲消费者购买清单,LED照明产品大量进入市场。2012年9月,欧盟能...
2022-07-15

灯光工程怎么展现酒店夜间形象?

酒店灯光工程运用灯光渲染夜景,对于树立酒店夜间形象,展现建筑的现代性和活力有着重要的作用。 灯光工程要符合酒店特色的设计风格,可以选择简洁、美观、节能的灯具来装饰酒...
2022-11-11
灯光工程怎么展现酒店夜间形象?

桥梁灯光亮化设计,让夜晚成为一道美丽的风景线

近些年桥梁景观和灯光设计充足的运用到了一起,并且还变成了许多 城市的一些必要性的标志,另外 桥梁灯光亮化设计 也变成考量一个城市在整体规划水准的一个重要规范,在城市化...
2022-10-08
桥梁灯光亮化设计,让夜晚成为一道美丽的风景线

热销商品

舒氏九头鸟电老虎橡胶绝缘胶带耐高温电气高压电工防水胶布自粘带

该电老虎橡胶绝缘胶带是专为电气高压及电工领域设计的胶布产品,具备优异的耐高温性能,可有效抵御高温环境下的电气强度衰减,保障用电安全。其采用的舒氏九头鸟优质橡...
¥ 2.5

国标铜芯软线RVV多芯控制信号线2-70芯0.3-0.5-0.75平方信号线

国标铜芯软线RVV多芯控制信号线是一种专为电子控制系统设计的电缆,具备多种规格以满足不同设备的信号传输需求。该电缆采用优质铜材作为导体,能够承受较大的电流负...
¥ 0.93

公牛led筒灯嵌入式75mm开孔家用天花灯孔灯客厅吊顶过道筒灯

公牛LED筒灯嵌入式75mm开孔款,专为家用吊顶设计,适用于客厅、过道、玄关等空间。采用优质LED光源,光线柔和均匀,显色指数高,有效还原真实色彩,营造舒适明亮的居家氛围。...
¥ 19.71

硅胶发泡圆条硅胶发泡条耐高温密封条海绵条 1mm/2/3/4/5/8/10/12

硅胶发泡圆条(又称硅胶发泡条、耐高温密封条、海绵条)是一种高性能密封材料,采用优质硅胶发泡工艺制成,具有优异的耐高温、耐老化、阻燃及弹性恢复性能。产品常见规格...
¥ 1.44

超亮led射灯嵌入式cob天花灯家用孔灯服装店店铺商用筒灯4寸5寸

超亮LED射灯嵌入式COB天花灯,专为家用及商用空间设计,适用于服装店、展厅、商铺等场所。采用高品质COB芯片,光线均匀柔和、显色指数高,真实还原物品色彩,提升空间质感...
¥ 5.94

网站栏目