OpenEdv-开源电子网

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

TIM3输出4路PWM的奇怪现象,疑惑

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2012-12-17
在线时间
0 小时
发表于 2013-10-15 22:00:37 | 显示全部楼层 |阅读模式

   最近要用到多路PWM,于是就调试了TIM3的四个PWM通道,遇到奇怪现象
定时器配置如下:
 RCC->APB1ENR|=1<<1;  //TIM3时钟使能
 RCC->APB2ENR|=1<<2;     //使能PORTA时钟    
 RCC->APB2ENR|=1<<3;     //使能PORTB时钟 

 GPIOA->CRL&=0X00FFFFFF; //PA6 CH1 PA7 CH2
 GPIOA->CRL|=0XBB000000; //复用功能输出
 GPIOB->CRL&=0XFFFFFF00; //PB0 CH3 PB1 CH4
 GPIOB->CRL|=0X000000BB; //复用功能输出     
   

 TIM3->ARR=arr;   //设定计数器自动重装值
 TIM3->SC=psc;   //预分频器


 TIM3->CCMR1|=7<<4;   //CH1 PWM2模式  
 TIM3->CCMR1|=1<<3;      //CH1预装载使能   
 TIM3->CCER|=1<<0;    //OC1 输出使能
     
 
 TIM3->CCMR1|=7<<12;   //CH2 PWM2模式  
 TIM3->CCMR1|=1<<11;  //CH2预装载使能   
 TIM3->CCER|=1<<4;    //OC2 输出使能
  

 TIM3->CCMR2|=7<<4;   //CH3 PWM2模式  
 TIM3->CCMR2|=1<<3;      //CH3预装载使能   
 TIM3->CCER|=1<<8;    //OC3 输出使能
   
  
 TIM3->CCMR2|=7<<12;   //CH4 PWM2模式  
 TIM3->CCMR2|=1<<11;  //CH4预装载使能   
 TIM3->CCER|=1<<12;    //OC4 输出使能

 TIM3->CCR1=1800;           
 TIM3->CCR2=3600;       

 TIM3->CCR3=2700;       

 TIM3->CCR4=5400;        
      
 TIM3->CR1|=1<<7;        //ARPE使能
 TIM3->CR1|=0x01;     //使能定时器3  
 
 主程序调用:TIM3_PWM_Init(7199,99); //100hz
      如上述配置。仿真得到下图波形,可以看出是频率100HZ,占空比也没错,是准确的


  可是接下来,当将上述红色部分改成下面,即通道1与2的值调换 通道3与4的值调换
  

TIM3->CCR1=3600;
TIM3->CCR2=1800;

TIM3->CCR3=5400;

TIM3->CCR4=2700;
    结果,仿真出来的波形就不对了,如下图,可以看出,CH1与CH2一样了,CH3与CH4的也一样了,搞不清楚!!!
         


       接下来我经过测试,发现只要TIM3->CCR1的值逼TIM3->CCR2的值大,就会出现错误,出来的波形占空比是按照TIM3->CCR2的值出来的,同样通道3与通道4也是这样,但通道1、2与通道3、4之间没影响,如果改成PWM1模式,情况刚好相反。
    不知道是怎么回事??仿真问题,还是我的测试方法出错了,收索出本站的PWM程序修改也会出现类似问题,是本来就是这样的么?由例程直接改的测试程序如附件
          

四路PWM输出测试.zip

44.75 KB, 下载次数: 1306

天道酬勤,奋斗定能改变一切!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-10-16 00:33:01 | 显示全部楼层
硬件实际测试下试试.
我觉得这个不会有影响才对.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-10-16 08:12:03 | 显示全部楼层
用示波器看看。
一直努力就很好。
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2012-12-17
在线时间
0 小时
 楼主| 发表于 2013-10-16 09:17:38 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
好的,我试下,这么晚了还回复了,谢谢了
天道酬勤,奋斗定能改变一切!!!
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2012-12-17
在线时间
0 小时
 楼主| 发表于 2013-10-16 09:46:46 | 显示全部楼层
回复【3楼】qq942266575:
---------------------------------
    用示波器测试过了,没问题,看来是仿真有点bug
天道酬勤,奋斗定能改变一切!!!
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2012-12-17
在线时间
0 小时
 楼主| 发表于 2013-10-16 09:47:35 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
    用示波器测试过了,没问题,看来软件仿真存在BUG
天道酬勤,奋斗定能改变一切!!!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-11-10
在线时间
0 小时
发表于 2016-11-10 17:30:56 | 显示全部楼层
我出现的问题更奇葩,调节TIM3->CCR3装载的数据可以影响到lCD屏的亮度!!!!怎么破PWM输出脚是PB0
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 03:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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