OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

12
返回列表 发新帖
楼主: 229382777@qq.co

对教程的补充:PWM互补输出及死区时间代码和详解(原创)

  [复制链接]

  离线 

1

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2016-5-19
在线时间
6 小时
发表于 2016-11-28 09:23:56 | 显示全部楼层
正点原子公众号

请问是哪里的问题呀?我也是STM32F103ZET6,怎么都没有输出
回复 支持 反对

使用道具 举报

  离线 

4

主题

120

帖子

1

精华

高级会员

Rank: 4

积分
756
金钱
756
注册时间
2014-8-7
在线时间
38 小时
发表于 2016-11-28 13:59:23 | 显示全部楼层
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2016-11-22
在线时间
0 小时
发表于 2016-11-28 15:57:22 | 显示全部楼层
大神大神,我下载了压缩包仿真之后能用。频率死区都可以改。
但是烧录到开发板中后,示波器观察没有死区,把死区调大好几倍之后,示波器里观察还是占空比50%,相当于没死区。而且用万用表测也是1.6V。板子上各路确实输出了各个不同占空比的信号,但是没有死区。
QQ图片20161128151846.png
回复 支持 反对

使用道具 举报

  离线 

1

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2016-11-21
在线时间
43 小时
发表于 2016-11-29 00:01:51 | 显示全部楼层
MARK一下 谢谢分享
回复 支持 反对

使用道具 举报

  离线 

3

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2016-6-2
在线时间
27 小时
发表于 2016-11-29 09:59:16 | 显示全部楼层
正点原子公众号
如梦悠悠 发表于 2016-11-28 09:23
请问是哪里的问题呀?我也是STM32F103ZET6,怎么都没有输出

贴代码来看看
回复 支持 反对

使用道具 举报

  离线 

5

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2015-9-7
在线时间
66 小时
发表于 2016-11-29 15:26:06 | 显示全部楼层
mark yixia
回复 支持 反对

使用道具 举报

  离线 

1

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2016-5-19
在线时间
6 小时
发表于 2016-11-30 09:27:49 | 显示全部楼层

现在解决了,完全按照楼主的代码,只是把芯片换成了ZET6,我看你的程序中用了PE2,PE6,不是TIM1-XN的通道,这样也行吗?
回复 支持 反对

使用道具 举报

  离线 

10

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
573
金钱
573
注册时间
2015-7-11
在线时间
89 小时
发表于 2016-12-18 21:16:14 | 显示全部楼层
赞学习一下!!!
回复 支持 反对

使用道具 举报

站台 该用户已被删除
发表于 2017-3-11 00:57:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

  离线 

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-11 14:00:42 | 显示全部楼层
学习中,加油
回复 支持 反对

使用道具 举报

  离线 

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2013-3-20
在线时间
11 小时
发表于 2017-3-31 10:59:53 | 显示全部楼层
请问你的Tds是怎么得到?
微博Sweeneycc
回复 支持 反对

使用道具 举报

  离线 

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2013-3-20
在线时间
11 小时
发表于 2017-3-31 12:32:41 | 显示全部楼层
本帖最后由 杨胡 于 2017-3-31 12:49 编辑

你的10k是计数器的时钟频率(CK_CNT)

这里应该要用定时器时钟(CK_INT)来计算吧,

定时器的时钟只跟系统时钟(SYSCLK)、AHB、APPB2有关


所以不知道你的为何会出现正确的结果?

你的10k是计数器的时钟频率(CK_CNT)

你的10k是计数器的时钟频率(CK_CNT)

这里应该要用定时器时钟(CK_INT)来计算吧,

这里应该要用定时器时钟(CK_INT)来计算吧,
3.png

定时器的时钟只跟系统时钟(SYSCLK)、AHB、APPB2有关

定时器的时钟只跟系统时钟(SYSCLK)、AHB、APPB2有关
回复 支持 反对

使用道具 举报

  离线 

13

主题

774

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2294
金钱
2294
注册时间
2015-7-26
在线时间
587 小时
 楼主| 发表于 2017-3-31 13:38:03 | 显示全部楼层
杨胡 发表于 2017-3-31 12:32
你的10k是计数器的时钟频率(CK_CNT)

这里应该要用定时器时钟(CK_INT)来计算吧,

很久之前的帖子,太久没操作具体的已经忘了
我的博客:http://blog.csdn.net/itdo_just
回复 支持 反对

使用道具 举报

  离线 

3

主题

10

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2017-7-14
在线时间
11 小时
发表于 2017-7-20 17:12:15 | 显示全部楼层
zhanghan4310 发表于 2015-11-14 08:07
写的很好啊,用库方式更加容易理解一点,期待楼主的更多分享!

请问哪里可以找到库函数版本?
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2017-7-25
在线时间
0 小时
发表于 2017-7-25 15:44:57 | 显示全部楼层
杨胡 发表于 2017-3-31 12:32
你的10k是计数器的时钟频率(CK_CNT)

这里应该要用定时器时钟(CK_INT)来计算吧,

大家注意一下,62楼是正解,原楼主在计算死区时间时计算错误,导致示波器看结果的时候没有死区,其实是有的大约277ns。72MHZ不分频的情况下死区计算如下
DTG[7:5]=0xx => DT=DTG[7:0] * Tdtg,Tdtg = TDTS;  0-1764ns
DTG[7:5]=10x => DT=(64+DTG[5:0]) * Tdtg,Tdtg = 2 * TDTS;  1777.9ns~3528.88ns
DTG[7:5]=110 => DT=(32+DTG[4:0]) * Tdtg,Tdtg = 8 * TDTS;  3555.84ns~7000.56ns
DTG[7:5]=111 => DT=(32+DTG[4:0]) * Tdtg,Tdtg = 16 * TDTS; 7111.68ns~14001.12ns
TIM1->BDTR|=0xCD;      //72Mhz, 13.89nsX(32+DTG)*8=5us
回复 支持 反对

使用道具 举报

  离线 

3

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-7-29
在线时间
18 小时
发表于 2017-7-29 15:47:11 | 显示全部楼层
强,学习了, 不错
回复 支持 反对

使用道具 举报

  离线 

3

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-7-28
在线时间
16 小时
发表于 2017-8-2 22:03:50 | 显示全部楼层
佩服楼主用直接操作寄存器的方式来写,,,
回复 支持 反对

使用道具 举报

  离线 

2

主题

6

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2017-8-4
在线时间
4 小时
发表于 2017-8-5 20:37:54 | 显示全部楼层
楼主你好,那么请问TIM8的三个互补输出通道是哪些引脚呢?我的原理图当中并没有给出标注。
回复 支持 反对

使用道具 举报

  离线 

1

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2017-8-21
在线时间
16 小时
发表于 2017-8-21 11:35:34 | 显示全部楼层
真的很不错
回复 支持 反对

使用道具 举报

  离线 

15

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2017-8-29
在线时间
33 小时
发表于 2017-9-13 13:14:08 | 显示全部楼层
现在用stm32f334的高精度定时器,正好有死区时间的概念。帮助我理解了
回复 支持 反对

使用道具 举报

  离线 

3

主题

30

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1442
金钱
1442
注册时间
2016-9-22
在线时间
29 小时
发表于 2017-10-28 22:05:25 | 显示全部楼层
谢谢楼主
回复 支持 反对

使用道具 举报

  离线 

3

主题

5

帖子

0

精华

新手入门

积分
48
金钱
48
注册时间
2015-9-1
在线时间
0 小时
发表于 2018-1-11 14:35:50 | 显示全部楼层
楼主总结的不错,点赞!不过对于死区时间的设置和计算,62楼和65楼是正解!加油!
回复 支持 反对

使用道具 举报

  离线 

15

主题

252

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1263
金钱
1263
注册时间
2017-7-6
在线时间
185 小时
发表于 2018-4-27 22:10:56 | 显示全部楼层
我有一个疑问,楼主说TDTS是系统时钟周期,你系统周期肯定是72M(以F103为例),怎么是分频后的10K呢
回复 支持 反对

使用道具 举报

  离线 

2

主题

324

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2012-5-8
在线时间
182 小时
发表于 2018-5-23 07:47:16 | 显示全部楼层
总结的很到位
回复 支持 反对

使用道具 举报

  离线 

2

主题

324

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2012-5-8
在线时间
182 小时
发表于 2018-5-23 07:58:39 | 显示全部楼层
总结的很好
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-6-4
在线时间
1 小时
发表于 2018-6-4 11:46:11 | 显示全部楼层
原子哥,TIM8互补输出,怎么控制电机的正反转,我试过控制一个IO口为高,一个为低,可这样不行。我是通过你给的程序稍微修改配置的
回复 支持 反对

使用道具 举报

  在线 

6

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2018-2-1
在线时间
20 小时
发表于 2018-6-4 11:56:17 | 显示全部楼层
0IN%F%0(@6~%TSS)6}_8BL9.png
你这个MDK怎么还能看到波形的?
回复 支持 反对

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-6-20 09:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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