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

楼主: 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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版