浅谈PWM调制技术和PWM输出正余弦波

发布者:第二眼帅哥最新更新时间:2022-06-09 来源: elecfans关键字:PWM输出 手机看文章 扫描二维码
随时随地手机看文章

一、PWM

PWM调制技术---------包含调节占空比以及频率。

PWM用途------在电源输出以及电机驱动方面用途广泛。

电源输出:调节不同频率或同一频率的电压输出,以及控制电流输出等等。

电机驱动----网上找了好多资料,大部分用的驱动芯片,这样的话就不需要太复杂的时序,但是有些电机可以直接用单片机进行驱动,根本用不着驱动芯片以及驱动器,提高成本,希望下面的介绍对希望直接驱动电机的有所帮助。


二、利用PWM输出相位差为任意值的波形

1、可以用普通定时器输出。这个方法我感觉有点,不做介绍。

2、用PWM寄存器输出。设PWM输出比较模式。

PWM模式包含:输出比较,PWM模式,强制输出等

PWM频率确定由PSC和ARR确定。CCR确定占空比。

PWM输出比较模式里CCR确定的其实是相位,PWM模式CCR确定的则是 占空比。

poYBAGKgVF-AJkNhAAHQKKT3Rw0986.png

输出这样几路波形,其实PWM模式设为比较输出,且为翻转模式,再设置CCR值其实就可以输出了。

void TIM3_Init(u16 arr,u16 psc)

{

TIM3-》ARR=arr;

TIM3-》PSC=psc;

TIM3-》CCMR1|=1《《3;

TIM3-》CCMR1|=3《《4;

。。。。。。。。。。。。。。

}

main函数:

TIM3_Init(1000-1,72-1);

TIM3-》CCR1=250-1;

TIM3-》CCR2=500-1;

TIM3-》CCR3=750-1;

TIM3-》CCR4=1000-1;

输出结果相位差45,度,占空比则50。CNT从0计数,当CNT=CCR,波形翻转,CNT溢出重新从0计数,再计数到CCR,此时再次翻转,相位差就形成了。


三、PWM输出正余弦波

PWM输出余弦波,先生成PWM余弦规律变化的数字,然后设成对应的占空比。生成正余弦数字,可以利用c语言在线编译工具生成,在里面写入函数,然后写入你单片机程序的数组,如果你的数是固定的,函数如下:

void get_sin_tab1( unsigned int point, unsigned int maxnum )

{

unsigned int i = 0, j = 0, k = 0;

float hd = 0.0; //弧度

float fz = 0.0; //峰值

unsigned int tem = 0;

j = point / 2;

hd = PI / j;

k = maxnum / 2; //最大值一半

for( i = 0; i 《 point; i++ )

{

fz = k * sin( hd * (i) ) + k;

tem = ( unsigned int )(fz * 1)//通过系数可以调整输出有效值大小

sinData[i] = tem;

printf(“%d,”,tem);

}

printf(“rn”);

}

将数字写入单片机占空比就可以生成各种不同相位的函数,可以调函数中fz数值。

poYBAGKgVG-AeD1UAACFbyZpxXs464.png


关键字:PWM输出 引用地址:浅谈PWM调制技术和PWM输出正余弦波

上一篇:三电平DTC原理介绍和仿真分析
下一篇:基于IR2127的电机驱动芯片

推荐阅读最新更新时间:2024-10-31 10:56

模拟PWM发生器设计电路图:5V 500kHz PWM输出
描述   此验证设计利用三角波发生器和比较器来生成脉宽调制 (PWM) 波形,这种波形的占空比与输入电压成反比。运算放大器和比较器生成三角波形,随后该波形将传递到比较器的一个输入。通过将输入电压传递到其他比较器输入,将生成 PWM 波形。PWM 波形对错误放大器的负反馈用于确保输出的高精度和线性。此设计中运用了 OPA2365 运算放大器、TLV3502 比较器和 REF3325 基准进行构建。   特性   利用三角波发生器和比较器来生成 PWM 波形   单电源解决方案   -2V 至 2V 输入,直流耦合   5V,500kHz PWM 输出   0.22% 测量增益误差   0.108% 测量偏压误差  
[模拟电子]
模拟<font color='red'>PWM</font>发生器设计电路图:5V 500kHz <font color='red'>PWM</font><font color='red'>输出</font>
pwm互补输出 死区设置
void TIM8_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; NVIC_InitTypeDef NVIC_InitStructure; TIM_BDTRInitTypeDef TIM_BDTRInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE);// 使能定时器时钟
[单片机]
<font color='red'>pwm</font>互补<font color='red'>输出</font> 死区设置
STM32笔记之十:工作工作,PWM输出
a) 目的:基础PWM输出,以及中断配合应用。输出选用PB1,配置为TIM3_CH4,是目标板的LED6控制脚。 b) 对于简单的PWM输出应用,暂时无需考虑TIM1的高级功能之区别。 c) 初始化函数定义: void TIM_Configuration(void); //定义TIM初始化函数 d) 初始化函数调用: TIM_Configuration(); //TIM初始化函数调用 e) 初始化函数,不同于前面模块,TIM的初始化分为两部分 基本初始化和通道初始化: void TIM_Configuration(void)//TIM初始化函数
[单片机]
用DSP56F805 PWM模块输出高频正弦
针对Motorola DSP56F805的PWM模块中不能产生高频正弦波的缺点,根据SPWM原理,由直接面积等效法,计算出对应脉冲的起始点和终点,然后编程实现,经调试发现调制出的正弦波具有良好的特性。 DSP56F805是一种专门用来控制电机的微处理器,内部具有各种功能模块,例如,A/D转换模块、PWM模块、定时器模块等,为开发基于DSP的系统提供了很大便利。针对开发系统,Motorola为我们提供了相应的软件开发工具CodeWarrior及SDK,使得我们开发基于Motorola DSP的系统更加方便快捷。 1 问题的描述 Motorola的嵌入式SDK(Software Development Kit)是一个API、
[嵌入式]
STC单片机实现可调PWM输出的C51程序
//以下是源程序,只需修改定义IO口就可以使用,#include reg52.h #include intrins.h sbit K1 =P3^2 ; //增加键 sbit K2 =P3^3 ; //减少键 sbit BEEP =P3^1 ; //蜂鸣器 sbit pp =P3^7 ; unsigned char PWM=0x7f ; //赋初值 void Beep(); void delayms(unsigned char ms); void delay(unsigned char t); /***********************************************
[单片机]
玩转STM32CubeMX | PWM输出
1.PWM简介 脉冲宽度调制(PWM,Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。即对脉冲宽度的控制,PWM原理如下图示: 图中我们假定定时器是工作在向上计数PWM模式,且当CNT CCRx时输出0,当CNT = CCRx时输出1,那么就可以得到如上的PWM示意图:当CNT CCRx时,IO口输出低电平;当CNT = CCRx时,IO口输出高电平;当CNT值达到ARR的时候,重新归零,然后重新向上计数,依次循环。改变CCRx的值就可以改变PWM输出的占空比,改变ARR的值就可以改变PWM输出的频率 输出模式有两种:PWM1和PWM2
[单片机]
玩转STM32CubeMX | <font color='red'>PWM</font><font color='red'>输出</font>
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved