一、PWM
PWM调制技术---------包含调节占空比以及频率。
PWM用途------在电源输出以及电机驱动方面用途广泛。
电源输出:调节不同频率或同一频率的电压输出,以及控制电流输出等等。
电机驱动----网上找了好多资料,大部分用的驱动芯片,这样的话就不需要太复杂的时序,但是有些电机可以直接用单片机进行驱动,根本用不着驱动芯片以及驱动器,提高成本,希望下面的介绍对希望直接驱动电机的有所帮助。
二、利用PWM输出相位差为任意值的波形
1、可以用普通定时器输出。这个方法我感觉有点,不做介绍。
2、用PWM寄存器输出。设PWM输出比较模式。
PWM模式包含:输出比较,PWM模式,强制输出等
PWM频率确定由PSC和ARR确定。CCR确定占空比。
PWM输出比较模式里CCR确定的其实是相位,PWM模式CCR确定的则是 占空比。
输出这样几路波形,其实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数值。
上一篇:三电平DTC原理介绍和仿真分析
下一篇:基于IR2127的电机驱动芯片
推荐阅读最新更新时间:2024-10-31 10:56
- EVALPFC2-ICE2PCS02、300W PFC 评估板,带有 CCM PFC 控制器 ICE2PCS02
- LT8390IUFD 98% 效率、48W、12V/4A 微型降压-升压稳压器的典型应用电路
- 在 DDR 终端中使用 LTC3612MPFE 降压稳压器的典型应用,具有 VDD 的比率跟踪,1MHz
- 便携点焊机2.1
- SC1117 0.8 安培正固定稳压器的典型应用
- 使用 STM32F10x 智能卡接口的 STM32F10xxx USART 应用示例
- 2021年全国电子设计大赛-F送药小车
- L7806A 光控制器稳压器的典型应用 (Vo(min) = Vxx+VBE)
- LT1086IM-3.3 电池后备稳压电源的典型应用
- 【航顺训练营】hk32-RGBDevBoard