OpenEdv-开源电子网

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

请问如何在互补PWM的死区中产生一个中断?

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-6-8
在线时间
10 小时
发表于 2018-6-11 21:07:35 | 显示全部楼层 |阅读模式
1金钱
请问如何在互补PWM的死区中产生一个中断?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-6-12 00:58:01 | 显示全部楼层
看硬件有没有这个功能,没有的话,就没办法。
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-6-12 09:22:34 | 显示全部楼层
单脉冲触发中断,中断中再开启单脉冲。这样?
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-6-8
在线时间
10 小时
 楼主| 发表于 2018-6-12 09:34:53 来自手机 | 显示全部楼层
正点原子 发表于 2018-6-12 00:58
看硬件有没有这个功能,没有的话,就没办法。

官方f3的应用用的就是这种方法。不过没有找到具体函数
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-6-8
在线时间
10 小时
 楼主| 发表于 2018-6-12 09:35:39 来自手机 | 显示全部楼层
a3748622 发表于 2018-6-12 09:22
单脉冲触发中断,中断中再开启单脉冲。这样?

互补的pwm。不是单脉冲触发
回复

使用道具 举报

31

主题

265

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
金钱
413
注册时间
2018-1-9
在线时间
65 小时
发表于 2018-6-12 10:23:10 | 显示全部楼层
死区位置,不就是PWM的翻转位置吗?直接在哪里中断不就好了,一个周期有两个死区一个上升沿,一个下降沿。你什么用途,居然有这种需求??
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-6-12 10:47:29 | 显示全部楼层
Gscsd 发表于 2018-6-12 09:35
互补的pwm。不是单脉冲触发

你不是用高级定时器输出吗?

高级定时器输出互补PWM设置完两通道就可以自动互补输出啊。

跟你触发方式没关系吧。你可PWM输出方式,也可以toggle输出。

脉冲计数模式我没试过,你要是没别的办法,可以尝试下
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-6-8
在线时间
10 小时
 楼主| 发表于 2018-6-12 11:22:31 | 显示全部楼层
jinfeihan57 发表于 2018-6-12 10:23
死区位置,不就是PWM的翻转位置吗?直接在哪里中断不就好了,一个周期有两个死区一个上升沿,一个下降沿。 ...

做电源,为了获取没有受到纹波影响的ADC值,在死区中产生一个中断获取adc值,使用的ADC芯片,不是32的ADC。问题是怎么直接在死区里中断呢?
回复

使用道具 举报

31

主题

265

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
金钱
413
注册时间
2018-1-9
在线时间
65 小时
发表于 2018-6-13 10:42:24 | 显示全部楼层
Gscsd 发表于 2018-6-12 11:22
做电源,为了获取没有受到纹波影响的ADC值,在死区中产生一个中断获取adc值,使用的ADC芯片,不是32的ADC ...

你看一下,PWM在边沿翻转的时候可不可以触发中断,可以的话。你就用这个中断就可以。死区时间很窄的,你的是多少?所以你可以认为边沿就是死去时间的位置。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-6-8
在线时间
10 小时
 楼主| 发表于 2018-6-14 10:17:29 | 显示全部楼层
jinfeihan57 发表于 2018-6-13 10:42
你看一下,PWM在边沿翻转的时候可不可以触发中断,可以的话。你就用这个中断就可以。死区时间很窄的,你 ...

没有找到这个中断,换了另一种方法,打开另外一个定时器,同时使能,用计数器的值对应pwm波的时刻。PWM应该也是采用的计数值,不过没有找到pwm的计数值是存在那个寄存器里的
回复

使用道具 举报

31

主题

265

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
金钱
413
注册时间
2018-1-9
在线时间
65 小时
发表于 2018-6-14 14:39:51 | 显示全部楼层
Gscsd 发表于 2018-6-14 10:17
没有找到这个中断,换了另一种方法,打开另外一个定时器,同时使能,用计数器的值对应pwm波的时刻。PWM应 ...

如果没有我说的中断触发模式的话,你的这个做法也不保险啊!
可以使用捕捉功能,就是飞一条线从PWM的输出脚到有捕捉功能的gpio上,用这个捕捉管脚捕捉上升下降沿。每一次边沿跳变就是你死区的时间。触发中断。就可以啦!!
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-6-14 17:23:26 | 显示全部楼层
你的PWM频率是多少?你确定死区时间进中断然后再去AD采集数据来的急?另外你是要采集死区的那一瞬间AD值,还是死区时间到了再去采AD值,如果要采死区那一瞬间的AD值,那你就要看开你程序执行的速度够不够,能不能达到同步的效果。
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6552
金钱
6552
注册时间
2018-6-27
在线时间
551 小时
发表于 2019-3-8 08:06:40 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 21:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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