PWM波发生电路解析

标签:
multisimpwm波it |
分类: electronic |
1.三角波产生电路。
该电路我们采用NE5532 及高速精密电压比较器LM311来实现,电路图如图9所示。NE5532具有较宽的频带,而且可以在较低的电压下满幅输出,保证能产生线性良好的三角波。
载波频率的选定既要考虑抽样定理,又要考虑电路的实现,选择 150 kHz 的载波,使用四阶 Bultterworth LC 滤波器,输出端对载频的衰减大于 60dB,满足设计的要求,所以我们选用载波频率为150 kHz。
电路参数的计算:在 5V单电源供电下,我们将运放 5 脚和比较器3 脚的电位用R8调整为 2.5 V,同时设定输出的对称三角波幅度为 1 V(Vp-p=2V)。若选定R10为 100 kΩ,并忽略比较器高电平时R11上的压降,则剩下参数可以求解,不再赘述。
2.比较器电路
---------------------------------------------------------------------------------------------
下面是使用cortex_m3开发板产生PWM波的代码
c) 初始化函数定义:
void
TIM_Configuration(void);
d) 初始化函数调用:
TIM_Configuration();
e) 初始化函数,不同于前面模块,TIM的初始化分为两部分——基本初始化和通道初始化:
void TIM_Configuration(void)//TIM初始化函数
{
//TIM3初始化
//TIM3通道初始化
}
f) RCC初始化函数中加入TIM时钟开启:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM3, ENABLE);
g) GPIO里面将输入和输出管脚模式进行设置。信号:AF_PP,50MHz。
h) 使用中断的话在NVIC里添加如下代码:
//打开TIM2中断
中断代码:
void TIM2_IRQHandler(void)
{
TIM_ClearITPendingBit(TIM2,
TIM_IT_CC4);
GPIO_WriteBit(GPIOB, GPIO_Pin_11,
(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,
GPIO_Pin_11)));//变换LED色彩
IC4value =
TIM_GetCapture4(TIM2);
}
i) 简单应用:
//改变占空比
TIM_SetCompare4(TIM3, 变量);
j) 注意事项:
管脚的IO输出模式是根据应用来定,比如如果用PWM输出驱动LED则应该将相应管脚设为AF_PP,否则单片机没有输出。