你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

楼主: zero99

[活动] (已公布)狂欢节答题(附加题)

 关闭 [复制链接]

48

主题

3559

回帖

429

蝴蝶豆

论坛元老

最后登录
2020-12-9
发表于 2017-12-4 13:17:05 | 显示全部楼层
nyszx 发表于 2017-11-29 21:46
题目分析:自行选择一个STM32,为啥不来点干脆的,直接指定型号,毕竟STM32产品线上有11个系列,将近800个 ...

很好,最佳答案,名副其实。
回复 支持 反对

使用道具 举报

74

主题

1368

回帖

194

蝴蝶豆

版主

最后登录
2020-5-12
发表于 2017-12-4 14:51:16 | 显示全部楼层
本帖最后由 wolfgang2015 于 2017-12-4 15:38 编辑

ST官方其实在AN4776中都介绍了控制脉冲的方式

控制方式 大致方式可以分为以下几种图:
DMA+RAM数组方式
DMA Timer.jpg

主/从定时器方式一:
Timer Timer.jpg

主从定时器方式二:
Timer Timer回环.jpg

脉宽调制时的RAM+DAC的模式
DAC RAM.jpg


当然这些控制模式都是针对脉冲变化而来,针对本题的脉冲计数只是一个方向性提示,附上ST原文供大家参考
en.DM00236305.pdf (1.95 MB, 下载次数: 2)
回复 支持 反对

使用道具 举报

35

主题

423

回帖

93

蝴蝶豆

版主

最后登录
2020-9-9
发表于 2017-12-4 15:47:01 | 显示全部楼层
wolfgang2015 发表于 2017-12-4 12:27
说到脉冲可控,控制的方法很种类很多,频率、数量、脉宽等等,从脉冲控制方式诞生的开始就有多种技术来实 ...

其实你一开始是这样回答,那样的话你可以得到名次的,可惜了!不过无论如何,机会还是有很多的!
回复 支持 反对

使用道具 举报

21

主题

1052

回帖

442

蝴蝶豆

论坛元老

最后登录
2020-7-12
发表于 2017-12-4 15:49:13 | 显示全部楼层
F334 HRTIM。配置有点烦,但完成之后就 for(;;); 就可以了。
回复 支持 反对

使用道具 举报

13

主题

718

回帖

164

蝴蝶豆

金牌会员

最后登录
2020-5-24
发表于 2017-12-4 16:01:29 | 显示全部楼层
本帖最后由 nyszx 于 2017-12-4 19:49 编辑

之前也考虑过使用DMA+定时器方案,此方案也能设计出四路高速脉冲,但因为四路输出,同时开启DMA的话势必会影响到AHB总线占用,继而影响CPU,不符合题目要求因此放弃选择此方案,选择主从定时器,这样每通道每次发送脉冲只触发一次中断且不占用总线(APB之间通过桥接器通信,不经过AHB)。
修改原因:HPB-->APB
回复 支持 反对

使用道具 举报

74

主题

1368

回帖

194

蝴蝶豆

版主

最后登录
2020-5-12
发表于 2017-12-4 16:08:55 | 显示全部楼层
本帖最后由 wolfgang2015 于 2017-12-4 16:15 编辑
Inc_brza 发表于 2017-12-4 15:47
其实你一开始是这样回答,那样的话你可以得到名次的,可惜了!不过无论如何,机会还是有很多的! ...

这只是说明和思路,在这个思路的影响下才有回答的方案选择。

说道 AHB 的影响,总线可有几十M,按照400kHz的*8路(翻倍), 3.2Mhz 这个利用的DMA通道复用,对CPU影响有限。
反观Timer中断,看看中断向量表呢?
如果在优先级相同,DMA的中断向量表比 Timer的向量表靠前,有优先顺序,在外设通过DMA传递数据与Timer中断共同作用下的时候。Timer中断会有延迟,这势必影响到脉冲的输出数量和精度。

回复 支持 反对

使用道具 举报

74

主题

1368

回帖

194

蝴蝶豆

版主

最后登录
2020-5-12
发表于 2017-12-4 16:25:23 | 显示全部楼层
本帖最后由 wolfgang2015 于 2017-12-4 20:13 编辑
nyszx 发表于 2017-12-4 16:01
之前也考虑过使用DMA+定时器方案,此方案也能设计出四路高速脉冲,但因为四路输出,同时开启DMA的话势必会 ...

要算影响CPU,是使CPU能控制的部分,传输直接从内存到外设,CPU不参与运算,没有寄存器的读写判断,这块的影响也忽略不计。没有过MCU,内部的操作影响也有限。

的确APB通信不经过AHB,但是一旦AHB上有中断,这不是让APB的中断优先等级太靠后而不能及时相应,当需要触发脉冲或停止脉冲时就会受到其中断的影响。何况主从定时器级联需要控制脉冲的时间很短,65535个时钟周期,对于长短脉宽不同的脉冲,数量控制精度有差别吧。

回复 支持 反对

使用道具 举报

74

主题

1368

回帖

194

蝴蝶豆

版主

最后登录
2020-5-12
发表于 2017-12-4 19:02:40 来自手机 | 显示全部楼层
本帖最后由 wolfgang2015 于 2017-12-4 19:16 编辑

既然选择DMA是满足题目要求的,那是不是这个答案应该跟其他正确答案一视同仁的评判呢?

回复 支持 反对

使用道具 举报

13

主题

718

回帖

164

蝴蝶豆

金牌会员

最后登录
2020-5-24
发表于 2017-12-4 19:49:01 | 显示全部楼层
wolfgang2015 发表于 2017-12-4 16:25
要算影响CPU,是使CPU能控制的部分,传输直接从内存到外设,CPU不参与运算,没有寄存器的读写判断,这块的 ...

纠正下笔误:HPB-->APB。超过65535的可以在软件上进行分段处理,在中断中设置下一次的ARR值。极端情况下,四路完全独立,四路同时使用,速度非常高,且不能把四个定时器优先级设为最高,那解决方案应该是关闭UIE,使能UDE,通过DMA来关闭主定时器,这样就不需要中断来处理,且传输数据量小,对CPU影响最小,有条件的坛友可以验证一下是否可行。
回复 支持 反对

使用道具 举报

13

主题

718

回帖

164

蝴蝶豆

金牌会员

最后登录
2020-5-24
发表于 2017-12-4 20:05:37 | 显示全部楼层
因为我一开始也不确定,担心中断延迟会导致计数不准,所以直到我亲自验证了不会,才决定使用主从定时器方案。DMA+Timer 方案不是不行,只是相比主从定时器来说,前者代码简单,运行可靠,消耗资源相对较少,后者DMA方案,4路独立,65535计数情况下消耗太多内存和总线占用,此时DMA与DMA,DMA与CPU直间都会产生竞争总线,而主从定时器没有这个缺陷,反而由于使用的是STM32,而定时器STM32很多,也算是其一特色,综合比较来说主从定时器更优一些。我也没有实际测试过,不知道我理解的对不对,若有不对请大家指出。
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版