OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4304|回复: 4

关于PWM输出波形有毛刺

[复制链接]

11

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2016-11-16
在线时间
24 小时
发表于 2016-11-21 20:59:14 | 显示全部楼层 |阅读模式
1金钱
按照原子哥程序写的PWM程序,输出为125K的矩形波,发现每次沿跳变时会有一个抖动,哪位大神告知一下是什么原因造成的,有什么消除的办法。

波形图片附上,
程序如下:
主函数:
   time14_pwm_init(7,83);
   TIM_SetCompare1(TIM14,4);

pwm初始化:

void time14_pwm_init(uint32_t arr, uint32_t psc){
  GPIO_InitTypeDef GPIO_InitStruct;
  TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
  TIM_OCInitTypeDef TIM_OCInitStruct;

   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);

  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_7;          // PA7
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
   GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;   
   GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;        
   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;   
   GPIO_Init(GPIOA, &GPIO_InitStruct);  
   
   GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_TIM14);  

  TIM_TimeBaseInitStruct.TIM_Prescaler=psc;  
  TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
  TIM_TimeBaseInitStruct.TIM_Period=arr;   
  TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
  TIM_TimeBaseInit(TIM14,&TIM_TimeBaseInitStruct);
  
  TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;
  TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_Low;
  TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;
  TIM_OC1Init(TIM14,&TIM_OCInitStruct);
  
  TIM_OC1PreloadConfig(TIM14,TIM_OCPreload_Enable);
  TIM_ARRPreloadConfig(TIM14,ENABLE);
  TIM_Cmd(TIM14,ENABLE);
}

scope_0.png

最佳答案

查看完整内容[请看2#楼]

这个和STM32无关,这是方波过冲现象,如果想要好点,可以串联一个电阻进去,就可以改善。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-11-21 20:59:15 | 显示全部楼层
这个和STM32无关,这是方波过冲现象,如果想要好点,可以串联一个电阻进去,就可以改善。
回复

使用道具 举报

20

主题

297

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1830
金钱
1830
注册时间
2013-7-29
在线时间
276 小时
发表于 2016-11-22 08:14:50 | 显示全部楼层
对,是过冲了,得用电阻。
回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
发表于 2016-11-22 10:34:28 | 显示全部楼层
学到了
回复

使用道具 举报

11

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2016-11-16
在线时间
24 小时
 楼主| 发表于 2016-11-24 22:19:57 | 显示全部楼层
正点原子 发表于 2016-11-21 20:59
这个和STM32无关,这是方波过冲现象,如果想要好点,可以串联一个电阻进去,就可以改善。

嗯,加个电阻就好了,但是小电阻不管用,大电阻会看到明显的上升,下降时间。学问还真是大。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 16:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表