实验三:PWM信号发生器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:PWM信号发生器
1.实验目的
(1)学习Quartus II 8.0 软件的基本使用方法。
(2)学习GW48-CK EDA实验开发系统的基本使用方法。
(3)学习VHDL程序中数据对象,数据类型,顺序语句和并行语句的综合使用。
2.实验内容
设计并调试好一个脉宽数控调制信号发生器,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的信号的高低电平脉宽可分别由两组8位预置数进行控制。
3.实验条件
(1)开发软件:Quartus II 8.0。
(2)实验设备:GW48-CK EDA实验开发系统。
(3)拟用芯片:EPM7128S-PL84。
4.实验要求
(1)画出系统原理框图,说明系统中各主要组成部分的功能。
(2)编写各个VHDL源程序。
(3)根据系统功能,选好测试用例,画出测试输入信号波形或编好测试文件。
(4)根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。
(5)记录系统仿真、逻辑综合及硬件验证结果。
(6)记录实验过程中出现的问题及解决办法。
5.实验过程
(1)PWM即脉冲宽度调制,就是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM从处理器到被控制系统信号都是数字式的,无需进行数/模转换。
让信号保持为数字形式可将噪声影响降到最小,因此广泛应用在测量、通信和功率控制与变换的许多领域中。
下图是一种PWM信号发生器的逻辑图,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高、低电平脉宽可分别由两组8位预置数进行控制。
如果将初始值可预置的加法计数器的溢出信号作为本计数器的初始预置值加载信号LD,则可构成计数器初始值自加载方式的加法计数器,从而构成数控分频器。图中D 触发器的一个重要功能就是均匀输出信号的占空比,提高驱动能力,这对驱动,诸如扬声器或电动机十分重要。
(2)VHDL源程序
①8位可自加载加法计数器的源程序LCNT8.VHD
--LCNT8.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY LCNT8 IS
PORT(CLK,LD:IN STD_LOGIC;
D:IN INTEGER RANGE 0 TO 255;
CAO:OUT STD_LOGIC);
END ENTITY LCNT8;
ARCHITECTURE ART OF LCNT8 IS
SIGNAL COUNT:INTEGER RANGE 0 TO 255;
BEGIN
PROCESS(CLK)IS
BEGIN
IF CLK'EVENT AND CLK='1'THEN
IF LD='1'THEN COUNT<=D;
ELSE COUNT<=COUNT+1;
END IF;
END IF;
END PROCESS;
PROCESS(COUNT)IS
BEGIN
IF COUNT=255 THEN CAO<='1';
ELSE CAO<='0';
END IF;
END PROCESS;
END ARCHITECTURE ART;
②PWM信号发生器的源程序PWM.VHD
--PWM.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY PWM IS
PORT(CLK:IN STD_LOGIC;
A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
PWM:OUT STD_LOGIC);
END ENTITY PWM;
ARCHITECTURE ART OF PWM IS
COMPONENT LCNT8 IS
PORT(CLK,LD:IN STD_LOGIC;
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CAO:OUT STD_LOGIC);
END COMPONENT LCNT8;
SIGNAL CAO1,CAO2:STD_LOGIC;
SIGNAL LD1,LD2:STD_LOGIC;
SIGNAL SPWM:STD_LOGIC;
BEGIN
U1:LCNT8 PORT MAP(CLK=>CLK,LD=>LD1,D=>A,CAO=>CAO1);
U2:LCNT8 PORT MAP(CLK=>CLK,LD=>LD2,D=>B,CAO=>CAO2);
PROCESS(CAO1,CAO2)IS
BEGIN
IF CAO1='1'THEN SPWM<='0';
ELSIF CAO2'EVENT AND CAO2='1'THEN SPWM<='1';
END IF;
END PROCESS;
LD1<=NOT SPWM;LD2<=SPWM;PWM<=SPWM;
END ARCHITECTURE ART;
(3)仿真结果验证
PWM.VHD的时序仿真结果
(4)逻辑综合结果
6.实验总结
经过本次实验,我学会了Quartus II 8.0 开发系统的基本操作,并对它有了一定的了解和认识。
信号的连接如果错误,将得不到想要的实验结果。
电科1101 杨杰