首页 > 其他分享 >FPGA实验8:PWM信号发生器的设计

FPGA实验8:PWM信号发生器的设计

时间:2024-07-26 17:01:08浏览次数:14  
标签:STD FPGA CLK -- 发生器 LCNT8 LOGIC PWM

一、实验目的与要求

1、熟悉Quartus Ⅱ软件的基本使用方法;

2、熟悉EDA实验开发系统的基本使用方法;

3、学习VHDL程序中数据对象、数据类型、顺序语句和并行语句的综合使用。

二、实验原理

设计并调试好一个脉宽数控调制信号发生器,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高/低电平脉宽可分别由两组8位预置数进行控制。用EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。

三、实验内容

1.系统设计思路

PWM即脉冲宽度调制,就是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM从处理器到被控系统信号都是数字式的,无需进行数/模转换。让信号保持为数字形式可将噪声影响降到最小,因此广泛应用在测量、通信和功率控制与变换的许多领域中。

图17-1是一种PWM(脉冲宽度调制)信号发生器的逻辑图,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高、低电平脉宽可分别由两组8位预置数进行控制。

 

如果将初始值可预置的加法计数器的溢出信号作为本计数器的初始预置加载信号LD,则可构成计数初始值自加载方式的加法计数器,从而构成数控分频器。图中,D触发器的一个重要功能就是均匀输出信号的占空比,提高驱动能力,这对驱动,诸如扬声器或电动机十分重要。

2VHDL源程序

 1) 8位可自加载加法计数器的源程序LCNT8.VHD

LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    ENTITY LCNT8 IS 				--8位可自加载加法计数器
      PORT(CLK, LD: IN STD_LOGIC; 		--工作时钟/预置值加载信号
            D: IN INTEGER RANGE 0 TO 255; 	--8位分频预置数
            CAO: OUT STD_LOGIC); 		--计数溢出输出
    END ENTITY LCNT8;
    ARCHITECTURE ART OF LCNT8 IS 
      SIGNAL COUNT: INTEGER RANGE 0 TO 255; 	--8位计数器设置 
BEGIN
      PROCESS(CLK) IS
        BEGIN
        IF CLK'EVENT AND CLK='1' THEN
          IF LD='1' THEN COUNT<=D;  	--LD为高电平时加载预置数
          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; 

2) PWM信号发生器的源程序PWM.VHD

LIBRARY IEEE; 				--PWM信号发生器顶层文件
    USE IEEE.STD_LOGIC_1164.ALL;
    ENTITY PWM IS 
      PORT(CLK: IN STD_LOGIC; 		--计数时钟
            A,B: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --8位计数预置数
            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)  --程序没问题,我将这里重输了一下,编译就没问题了。
        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;  

标签:STD,FPGA,CLK,--,发生器,LCNT8,LOGIC,PWM
From: https://blog.csdn.net/lengmei1/article/details/140652516

相关文章

  • 《安富莱嵌入式周报》第340期:开源便携RF信号发生器,六自由度3D鼠标,开源USB PD Sniffer,C
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV18w4m1k7NF/目录1、开源便携RF信号发生器,支持12.5MHz-6.4GHz2、关于ThreadX被移交Eclipse后,使用FileX的exFAT功能版权问题3、......
  • 泰凌微8258学习日记-5:五路PWM调光
            为了追求更加多样的色彩变化,由RGB三路PWM调光衍生出RGBWY五路PWM调光。与RGB一样,都是要配置相应的PWM,其实非常简单,如果你不需要用到手机APP或者tl-ble-phone-mesh来控制的话,那么你只需要配置好五个PWM,然后照着官方给的SDK代码,照葫芦画瓢地写一个light-adjust-C......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-05 FPGA流水灯实验
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑!1概述流水灯以及Helloworld实验是......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载- [米联客-安路飞龙DR1-FPSOC] FPGA基础篇
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑! 1概述前面实验中我们完成了基......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-03安路TD结合modelsim仿真
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑!1概述FPGA开发中对设计的代码功能......
  • XILINX FPGA Debug 工具ILA和VIO
    原因在需要观测、调试FPGA内部逻辑时,2个工具ILA和VIO是非常有用的工具,ILA是内部逻辑分析仪,用于分析信号抓取波形,VIO是虚拟IO,用于手动修改FPGA内部变量,可以大大方便调试。https://docs.amd.com/r/en-US/ug908-vivado-programming-debuggingILA集成逻辑分析器(ILA)是一项强大的工......
  • STM32F429IGT6 STMCubeMX PWM 控制 180 舵机
    设置PWM对应引脚PA2![[QQ_1721613625998.png]]定时器2受APB1控制![[QQ_1721613709674.png]]配置时钟为72MHZ![[QQ_1721613757231.png]]HAL库定义PWM/*TIM2initfunction*/voidMX_TIM2_Init(void){/*USERCODEBEGINTIM2_Init0*//*USERCODEENDTI......
  • 基于FPGA的秒表计时系统设计--第一版--郝旭帅电子设计团队
    欢迎各位朋友关注“郝旭帅电子设计团队”,本篇为各位朋友介绍基于FPGA的秒表计时系统设计--第一版--郝旭帅电子设计团队。 功能说明:  1.利用六个数码管显示。 2.以10ms为精度显示 3.以秒为单位进行显示 4.记录最大为999.99 5.第一个数码管在运行时不显示......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-02使用安路TD开发工具创建FPGA工程
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑!1概述本实验以FPGA芯片DR1M9......
  • FPGA DNA 获取
    FPGADNADNA是FPGA芯片的唯一标识,FPGA都有一个独特的ID,也就是DeviceDNA,这个ID相当于我们的身份证,在FPGA芯片生产的时候就已经固定在芯片的eFuse寄存器中,具有不可修改的属性。在xilinx7series和7series以前,ID都是57bit的,但是在Xilinx的Ultraslace架构......