发新帖我要提问
12
返回列表
打印
[技术问答]

华大单片机的DMA为啥搞个块大小出来?一次最多只能16个数...

[复制链接]
楼主: GZZXB
手机看帖
扫描二维码
随时随地手机跟帖
21
mtbf| | 2020-5-8 22:48 | 只看该作者 回帖奖励 |倒序浏览
lesheng002 发表于 2020-5-8 11:58
我不清楚你们是怎么做的,从目前的情况看,说不清楚到底是哪里的问题,不一定是DMA传输造成死机问题,可能 ...

启动定时器就触发ADC转换,不需要再启动ADC转换。

使用特权

评论回复
22
aa642895350| | 2020-6-19 10:22 | 只看该作者
mtbf 发表于 2020-4-6 21:26
想ADC每1ms扫描采集10通道,每10ms处理一次数据,用DMA搬运数据,TC只能设置成0,即一次扫描采集完成,源地 ...

...请问问题有解决吗。。

使用特权

评论回复
23
Sunriver_Yao| | 2020-6-19 10:39 | 只看该作者
“友商”的单片机DMA的优先级没有CPU高,DMA干活不会堵死CPU的。两者都在“见缝插针”,但CPU优先级还是高一些。

使用特权

评论回复
24
liaotian001| | 2020-6-29 23:32 | 只看该作者
Sunriver_Yao 发表于 2020-6-19 10:39
“友商”的单片机DMA的优先级没有CPU高,DMA干活不会堵死CPU的。两者都在“见缝插针”,但CPU优先级还是高 ...

我们也是CPU优先级最高,然后DMA次之,你看一下我前面回复的,虽然DMA效率可能没有友商的高,但是系统的实时响应性能是最高的。

使用特权

评论回复
25
zeshoufx| | 2020-7-1 18:07 | 只看该作者
应该不会吧,,,一次传16的话,,效率跟不用DMA提升的不明显

使用特权

评论回复
26
zeshoufx| | 2020-7-1 18:08 | 只看该作者
一次只能传16个,,,那DMA的效率没多大优势啊,,应该不至于吧

使用特权

评论回复
27
martinhu| | 2020-7-1 19:04 | 只看该作者
zeshoufx 发表于 2020-7-1 18:07
应该不会吧,,,一次传16的话,,效率跟不用DMA提升的不明显

最大传输次数是65536,这当中传输一次的最大block是16个字节,所以启动一回最大是传输是65536*16

使用特权

评论回复
28
liaotian001| | 2020-7-2 08:56 | 只看该作者
本帖最后由 liaotian001 于 2020-7-2 09:02 编辑
zeshoufx 发表于 2020-7-1 18:08
一次只能传16个,,,那DMA的效率没多大优势啊,,应该不至于吧

一次传16次,这16个cycle,CPU被hold住,不会竞争总线。
16个cycle之后,DMA,CPU竞争一次,满足系统的实时响应。
CPU如果没有竞争的话,DMA继续传下面的数据,但每过16个cycle,都需要考虑CPU的响应,对于用户而言看到的是65536*16次。

你们所看到的一次性传多少个多少个数据,如果客户仔细查看的话,
要么每传一个,就跟CPU竞争一次总线,满足系统的实时响应,降低DMA效率
要么一下子传很多数据,不让CPU响应,这样DMA效率高了,系统就丢失了实时响应。
我们经过严谨的推算,最后设计了65536*16,既能满足数据传输效率,又能满足系统的实时响应。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则