mtbf 发表于 2020-5-8 22:48

lesheng002 发表于 2020-5-8 11:58
我不清楚你们是怎么做的,从目前的情况看,说不清楚到底是哪里的问题,不一定是DMA传输造成死机问题,可能 ...

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

aa642895350 发表于 2020-6-19 10:22

mtbf 发表于 2020-4-6 21:26
想ADC每1ms扫描采集10通道,每10ms处理一次数据,用DMA搬运数据,TC只能设置成0,即一次扫描采集完成,源地 ...

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

Sunriver_Yao 发表于 2020-6-19 10:39

“友商”的单片机DMA的优先级没有CPU高,DMA干活不会堵死CPU的。两者都在“见缝插针”,但CPU优先级还是高一些。

liaotian001 发表于 2020-6-29 23:32

Sunriver_Yao 发表于 2020-6-19 10:39
“友商”的单片机DMA的优先级没有CPU高,DMA干活不会堵死CPU的。两者都在“见缝插针”,但CPU优先级还是高 ...

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

zeshoufx 发表于 2020-7-1 18:07

应该不会吧,,,一次传16的话,,效率跟不用DMA提升的不明显

zeshoufx 发表于 2020-7-1 18:08

一次只能传16个,,,那DMA的效率没多大优势啊,,应该不至于吧

martinhu 发表于 2020-7-1 19:04

zeshoufx 发表于 2020-7-1 18:07
应该不会吧,,,一次传16的话,,效率跟不用DMA提升的不明显

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

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,既能满足数据传输效率,又能满足系统的实时响应。

baiheshu 发表于 2025-4-27 16:24

GZZXB 发表于 2019-5-5 09:03
比如我扫描采集3个AD通道0 1 2,一共采集255*3个数据到buff。 不使用DMA中断,你能实现? ...

为啥TC减到0以后不能能重新装载源地址,目的地址,BC,TC,开始一次新的DMA循环?????
怎么开始一次新的DMA循环?????

baiheshu 发表于 2025-4-27 17:05

感觉FAE太弱了

lidi911 发表于 2025-5-15 08:43

华大的DMA不能配置数据传输大小?

LinkMe 发表于 2025-5-17 10:37

可能是为了更快速的传输吧
页: 1 [2]
查看完整版本: 华大单片机的DMA为啥搞个块大小出来?一次最多只能16个数...