OpenEdv-开源电子网

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

TIM1输出3对PWM,软件仿真时有波形输出,下载后就没输出

[复制链接]

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2013-12-20
在线时间
94 小时
发表于 2014-5-31 17:15:52 | 显示全部楼层 |阅读模式
5金钱
用TIM1输出3对PWM,控制BLDC,折腾了几天,终于软件仿真出3路PWM

下载进测试板后又出问题

TIM1_CH1 TIM1_CH2 TIM1_CH3 (PA8 PA9 PA10)  桥路的3个高位控制端一直是低电平

TIM1_CH1N TIM1_CH2N TIM1_CH3N(PB13 PB14 PB15) 桥路的3路低位控制端一直是高电平

朋友们帮我分析分析吧

最佳答案

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

经过几天折腾,终于实现TIM1的PWM输出,控制直流无刷电机 上传一个基本初级版的程序 PA8 PA9 PA10 PB13 PB14 PB15是PWM输出口 PC5接个电位器调节速度 PB12电源指示灯 PB5正转指示 PB2反转指示 PB0按键开机 PB1按键正反转 宏定义DEBUG可以软件仿真(DEBUG用来开启相关变量,以及变换霍尔相序) 上传成果,以便后面的人少走弯路,大虾莫喷
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2013-12-20
在线时间
94 小时
 楼主| 发表于 2014-5-31 17:15:53 | 显示全部楼层
经过几天折腾,终于实现TIM1的PWM输出,控制直流无刷电机
上传一个基本初级版的程序
PA8 PA9 PA10 PB13 PB14 PB15是PWM输出口
PC5接个电位器调节速度
PB12电源指示灯
PB5正转指示
PB2反转指示
PB0按键开机
PB1按键正反转
宏定义DEBUG可以软件仿真(DEBUG用来开启相关变量,以及变换霍尔相序)
上传成果,以便后面的人少走弯路,大虾莫喷

BLDC.zip

6.85 MB, 下载次数: 16092

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-31 22:02:53 | 显示全部楼层
用示波器看看波形...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-2 21:03:57 | 显示全部楼层
谢谢分享……
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

39

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2014-1-9
在线时间
8 小时
发表于 2014-6-3 09:57:52 | 显示全部楼层
 谢谢,楼主,帮了我大忙了,谢谢,解决了。但楼主你呢过解释一下这个吗?我在仿真的时候,打开定时器的时候,查看寄存器的状态,可看到TIM1的第四路少几个控制位


向其他几路,都有CCXE,CCXP,CCXNE,CCXNP,可第四路只有CC4E和CC4P,而且CCER的值是0x1777,请问是MDK版本的事,还是其他的啊?我曾经在程序里赋值TIM1->CCER = 0X7777;,可硬件仿真的结果是TIM1->CCER = 0X3777;就是没有CC4NE的值
回复

使用道具 举报

17

主题

342

帖子

0

精华

高级会员

Rank: 4

积分
544
金钱
544
注册时间
2014-4-24
在线时间
20 小时
发表于 2014-8-18 19:19:33 | 显示全部楼层
回复【5楼】巫妖:
---------------------------------
TIM1通道4没有互补输出,只有前面3个通道才有。
回复

使用道具 举报

39

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2014-1-9
在线时间
8 小时
发表于 2014-8-22 17:26:18 | 显示全部楼层
额,谢谢。好久的问题了
回复

使用道具 举报

8

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2014-2-27
在线时间
0 小时
发表于 2014-8-26 15:27:49 | 显示全部楼层
回复【3楼】crossok:
---------------------------------
请问是因为什么问题而致使管脚没输出呢,我的也是。仿真有波形,但是管脚就是不输出PWM。
文可提笔控萝莉,武能床头定人妻,进可欺身压正太,退能提臀迎众基
回复

使用道具 举报

19

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2014-9-16
在线时间
11 小时
发表于 2014-11-22 20:43:33 | 显示全部楼层
回复【8楼】liucongwoshi:
---------------------------------
我也遇到同样的问题,请问你问题最后解决了么?
我用T3定时每10ms改变T1的ch1\ch2输出的PWM的脉宽,仿真时有波形输出,下载没任何输出,确定硬件没问题。
回复

使用道具 举报

8

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2014-2-27
在线时间
0 小时
发表于 2014-11-23 10:21:47 | 显示全部楼层
回复【9楼】laoguren1122:
---------------------------------
还是寄存器配置有问题,最后我把别人的配置复制过来,然后就有输出了,可能是一个很小的错误。你用的应该也是直接配置寄存器吧?这样容易出问题,并且不容易检查。你可以把别人同样配置的复制过来,也可以再仔细检查下寄存器的配置。
文可提笔控萝莉,武能床头定人妻,进可欺身压正太,退能提臀迎众基
回复

使用道具 举报

19

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2014-9-16
在线时间
11 小时
发表于 2014-11-24 16:22:36 | 显示全部楼层
回复【10楼】liucongwoshi:
---------------------------------
我的是库函数配置的,没有像我这样应用的程序。
回复

使用道具 举报

8

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2014-2-27
在线时间
0 小时
发表于 2014-12-1 14:01:16 | 显示全部楼层
回复【11楼】laoguren1122:
---------------------------------
库函数归根结底还是配置的寄存器。用库函数开发的还是比较多的,你再找下资料。或者我的程序里都有注释,你跟库函数对照一下。你参考一下。
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<0;  //TIM2时钟使能    
TIM2->ARR=arr; //设定计数器自动重装值 
TIM2->SC=psc; //预分频器不分频
TIM2->CCR2=arr/2;
TIM2->CCMR1|=7<<12;   //CH2 WM2模式
TIM2->CCER|=1<<4;    //OC2 输出使能  
TIM2->CCMR1|=1<<11;  //CH2预装载使能        
TIM2->CR1=0x0080;    //ARPE使能 
TIM2->CR2|=2<<4;     //主模式选择为更新模式
TIM2->SMCR|=1<<7;       //定时器2主模式使能  
//   TIM3->DIER|=1<<0;       //允许更新中断 



这是我输出PWM的定时器2配置,输出端口时钟在另一个函数里使能了。你对照下。
文可提笔控萝莉,武能床头定人妻,进可欺身压正太,退能提臀迎众基
回复

使用道具 举报

14

主题

164

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1860
金钱
1860
注册时间
2012-5-19
在线时间
286 小时
发表于 2015-1-30 16:26:39 | 显示全部楼层
谢谢分享 正在看pa8怎么不输出波形呢
回复

使用道具 举报

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2014-4-23
在线时间
21 小时
发表于 2015-2-5 16:55:24 | 显示全部楼层
你的控制程序 N通道输出的是PWM吧  为什么不直接用用高低电平呢
回复

使用道具 举报

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2013-12-20
在线时间
94 小时
 楼主| 发表于 2015-2-6 13:08:32 | 显示全部楼层
回复【14楼】feiyue:
---------------------------------
要控制速度啊,电机速度与电压有关,控制PWM变相改变供电电压,改变速度
回复

使用道具 举报

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2014-4-23
在线时间
21 小时
发表于 2015-2-10 20:10:41 | 显示全部楼层
回复【15楼】crossok:
---------------------------------
我说的是下桥,上桥是用PWM控制速度,下桥的开关
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-5-10
在线时间
0 小时
发表于 2015-5-10 16:51:21 | 显示全部楼层
楼主,为什么我把你的文件包下载,然后编辑通过mdk的软件仿真,porta 和 portb  没有波形输出是怎么回事
回复

使用道具 举报

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2013-12-20
在线时间
94 小时
 楼主| 发表于 2015-5-11 10:20:22 | 显示全部楼层
回复【17楼】我是新疆萌丹:
---------------------------------
宏定义DEBUG可以软件仿真(DEBUG用来开启相关变量,以及变换霍尔相序),你没定义DEBUG吧
回复

使用道具 举报

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2013-12-20
在线时间
94 小时
 楼主| 发表于 2015-5-11 10:25:28 | 显示全部楼层
回复【17楼】我是新疆萌丹:
---------------------------------
在main.h里面有个DEBUG要设置下
回复

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-4-24
在线时间
0 小时
发表于 2015-5-13 20:22:53 | 显示全部楼层
谢谢分享,学写了
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-5-10
在线时间
0 小时
发表于 2015-5-15 11:55:02 | 显示全部楼层
回复【18楼】crossok:
---------------------------------
谢谢回复,怎么宏定义DEBUG?
你的工程文件能编译调试通过,无错误,无警告。点击MDK上的放大镜D,然后进入软件仿真,使用逻辑分析仪,没有输出波形
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-5-10
在线时间
0 小时
发表于 2015-5-16 22:53:36 | 显示全部楼层
回复【19楼】crossok:
--------------------------------
现在可以出波形了,但是我还是有些问题不明白,方便留个qq或邮箱吗大神?
回复

使用道具 举报

14

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2015-4-9
在线时间
10 小时
发表于 2015-7-25 16:49:07 | 显示全部楼层
谢谢楼主,帮我大忙了,好人一生平安
从兴趣中学习知识
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2015-6-17
在线时间
0 小时
发表于 2015-8-20 14:13:00 | 显示全部楼层
 回复【3楼】 crossok :
---------------------------------
多谢crossok分享!我运行了一下仿真,一切正常,不过我注意到在换向时,Low-side常开的一相信号会有很窄的一个脉冲,可以请问一下是为什么吗?

回复

使用道具 举报

1

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2015-9-15
在线时间
16 小时
发表于 2015-12-11 13:05:11 | 显示全部楼层
回复【3楼】crossok:
---------------------------------
楼主头像萌死了
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-12-19
在线时间
0 小时
发表于 2015-12-19 20:27:15 | 显示全部楼层
回复【3楼】crossok:
---------------------------------
MDK软件仿真,使用逻辑分析仪,没有输出波形,还要设置什么吗?
回复

使用道具 举报

11

主题

179

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2016-7-19
在线时间
168 小时
发表于 2016-12-12 10:21:53 | 显示全部楼层
谢谢分享
回复

使用道具 举报

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2016-12-6
在线时间
40 小时
发表于 2017-3-27 13:39:56 | 显示全部楼层
谢谢分享
回复

使用道具 举报

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2014-11-27
在线时间
23 小时
发表于 2017-6-7 15:02:00 | 显示全部楼层
不错,学习一下
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2017-7-30
在线时间
1 小时
发表于 2017-7-30 11:17:57 | 显示全部楼层
首先,要确定软件仿真,此管脚是否真的有波形,避免IO口配置错误。确定真的软件仿真有波形,实际没有波形,就查看此管脚信息(STM32F103ZET6.PDF),看向Main function(3) (after reset)这一列。是否为这其中的信息JNTRST、JTDI、JTDO,如果是就需要关闭禁用JTAG功能。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);   /*使能SWD 禁用JTAG*/


此问题主要是,避免你选择的管脚是JTAG功能。如果是JTAG功能,一定要禁用,即可。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2019-5-5
在线时间
7 小时
发表于 2019-8-7 12:33:11 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-19
在线时间
23 小时
发表于 2019-9-10 16:19:01 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 15:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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