硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4023|回复: 11
收起左侧

[HRTIM] HRTIM生成多脉冲问题

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2020-5-14 16:51:59 | 显示全部楼层 |阅读模式
在项目中想实现,3MHz的频率输出2~50%占空比调整并且输出脉冲个数可以设定。实现上准备采用REP中断模式,发现总使多输出几个脉冲。
将中断调整到优先级0,会好一些,但是在小占空比还好,大占空比还是存在问题,输出个数还是会多。
查找手册发现图上有rep输入到纵横开关,实际在寄存器里没有找到。

试了一下单发模式,只能输出一个。
自我感觉是中断响应时间限制了。我的配置是400MHz主频,H750VB。
问题是不能输出大的占空比,有能实现的希望一下思路。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-5-14 17:01:19 | 显示全部楼层
HRTIM的脉冲个数,我没有整过,DMAMUX的脉冲个数整过,简单易用。

http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2020-5-15 15:18:26 | 显示全部楼层
eric2013 发表于 2020-5-14 17:01
HRTIM的脉冲个数,我没有整过,DMAMUX的脉冲个数整过,简单易用。

http://www.armbbs.cn/forum.php?mod= ...

我看了一下原理,估计实现起来比较困难。我项目需要2.5ns的调节精度,3MHz的频率,1~1000个脉冲输出。
最后,还是采用的REP计数中断,再进中断后直接寄存器操作强制禁用输出,接下来再处理逻辑。
优化后可以达到10~150ns的输出,可以满足要求了。
话说回来,你的回复是真的快啊。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-5-15 16:23:52 | 显示全部楼层
gaaluu 发表于 2020-5-15 15:18
我看了一下原理,估计实现起来比较困难。我项目需要2.5ns的调节精度,3MHz的频率,1~1000个脉冲输出。
...

我这个方案是5ns的精度,如果是你说的10~150ns,没问题。

因为HRTIM是400MHz的,普通定时器是200MHz的。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2020-5-19 01:08:59 | 显示全部楼层
你需要配两个级联的定时器,上层的管脉冲个数,下层的做单脉冲输出管脉宽。手册有一章叫block interconnect, 从表里面选一个能和HRTIM级联的timer,然后把信号连对就行了。有点像FPGA里面把两个IP连起来
ST的资料中有专门讲timer的AN, 很复杂的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-5-19 01:17:08 | 显示全部楼层
affe 发表于 2020-5-19 01:08
你需要配两个级联的定时器,上层的管脉冲个数,下层的做单脉冲输出管脉宽。手册有一章叫block interconnect ...

这种方式没法满足全程400MHz控制了,不满足楼主的需求。
因为除了HRTIM,其它定时器都是200MHz。这种方式发挥不了HRTIM的400MHz威力了,欠妥,还没有DMAMUX来的顺溜,可以控制任意IO做脉冲输出。



回复

使用道具 举报

0

主题

77

回帖

77

积分

初级会员

积分
77
发表于 2020-5-19 01:27:32 | 显示全部楼层
eric2013 发表于 2020-5-15 16:23
我这个方案是5ns的精度,如果是你说的10~150ns,没问题。

因为HRTIM是400MHz的,普通定时器是200MHz的 ...

硬汉哥,你这个方案能输出高频率的PWM,但是不能带死区是吧?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-5-19 01:32:37 | 显示全部楼层
艾那的小强 发表于 2020-5-19 01:27
硬汉哥,你这个方案能输出高频率的PWM,但是不能带死区是吧?

没问题,几乎可以输出任意方波效果。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2020-5-20 18:07:02 | 显示全部楼层
比如说TIM1和HRTIM级联,输出脉冲个数可调,脉宽可调的信号。脉宽的粒度是HRTIM的频率决定的。TIM1是用来提供触发信号的。频率只要和PWM信号的频率一致,就可以了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-5-20 18:22:59 | 显示全部楼层
affe 发表于 2020-5-20 18:07
比如说TIM1和HRTIM级联,输出脉冲个数可调,脉宽可调的信号。脉宽的粒度是HRTIM的频率决定的。TIM1是用来提 ...

这种方法太挫了。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-9-17 17:44:21 | 显示全部楼层
请教楼主,像下图交错的pwm如何在HRTIM上实现。
普通的高级定时器有中心对齐模式,比较容易实现。
360截图20220917173945728.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-9-18 08:26:48 | 显示全部楼层
gurong60 发表于 2022-9-17 17:44
请教楼主,像下图交错的pwm如何在HRTIM上实现。
普通的高级定时器有中心对齐模式,比较容易实现。

可以使用HRTIM DMA,可以生成任意波形效果。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 23:53 , Processed in 0.196912 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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