[软件资料] 如何利用DMA如何降低MCU功耗

[复制链接]
377|9
 楼主| forgot 发表于 2025-7-22 11:35 | 显示全部楼层 |阅读模式
利用DMA(直接内存访问)降低MCU功耗的核心在于最小化CPU介入,通过硬件自动完成数据传输任务,使CPU能尽可能长时间处于休眠状态。

CPU休眠时间最大化
DMA接管数据搬运(如外设↔内存、内存↔内存),CPU无需轮询或参与传输过程。
CPU可在DMA传输期间进入Sleep模式(关闭时钟)或Stop模式(关闭核心电压),显著降低动态功耗。
传输完成后,DMA通过中断唤醒CPU进行后续处理(而非持续运行)。

避免软件轮询开销
传统无DMA方案:CPU需循环检查外设状态(如UART接收标志、ADC转换完成标志),消耗大量周期。
DMA方案:硬件自动检测外设事件并触发传输,消除轮询功耗。

中国龙芯CDX 发表于 2025-7-22 21:51 | 显示全部楼层
利用DMA(直接内存访问)降低MCU功耗的核心在于最小化CPU介入
穷得响叮当侠 发表于 2025-7-25 21:35 | 显示全部楼层
非常同意,DMA确实可以显著减少CPU的介入,从而降低功耗。在设计时,合理配置DMA通道和中断,可以进一步提高效率。

评论

是的  发表于 2025-7-27 17:46
旧时光放映机 发表于 2025-7-28 08:28 | 显示全部楼层
非常赞同,DMA确实可以显著减少CPU的功耗。在设计时,合理配置DMA通道和中断,可以进一步优化功耗表现。
野玫瑰 发表于 2025-8-18 16:13 | 显示全部楼层
利用 DMA 降低 MCU 功耗的核心是减少 CPU 干预:数据传输由 DMA 独立完成,CPU 可进入低功耗模式(如休眠)。DMA 处理外设与内存、内存间数据交互,仅在传输完成时通过中断唤醒 CPU,大幅减少 CPU 运行时间,降低时钟和运算功耗,尤其适用于高频数据传输场景。
guijial511 发表于 2025-8-18 19:23 来自手机 | 显示全部楼层
DMA主要是减少CPU干预,这样可以CPU可以在DMA产生中断前进行休眠。
daichaodai 发表于 2025-8-18 19:43 来自手机 | 显示全部楼层
DMA的优势就是降低CPU的干预时间
雨下纪事 发表于 2025-8-19 15:05 | 显示全部楼层
利用 DMA 降低 MCU 功耗的方法:DMA 可独立完成数据传输,无需 CPU 介入,使 CPU 进入低功耗模式(如休眠);减少 CPU 唤醒频率和数据搬运时间,降低高频运行时长;避免 CPU 因等待外设数据而空耗,提升能效。
szt1993 发表于 2025-8-19 15:43 | 显示全部楼层
DMA提高数据传输速率
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2112

主题

14683

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部