FM33A048B DMA

该文介绍了嵌入式系统中的DMA(DirectMemoryAccess)机制,包括7通道外设PDMA支持的Peripheral<RAM传输,1通道存储器MDMA支持的Flash<RAM传输。DMA工作由外设请求触发,不影响CPU运行,支持不同数据类型的传输,并具有半程和全程中断功能。通道优先级配置允许在外设冲突时进行管理,而总线仲裁处理DMA与CPU对同一外设的访问冲突。此外,详细说明了Flash到RAM的编程要求和DMA传输的配置选项,如RAM指针的递增/递减以及中断标志设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述
⚫ 7 通道外设 PDMA ,支持 Peripherals<>RAM 传输
⚫ 1 通道存储器 MDMA ,支持 Flash<>RAM 传输
⚫ 外设 DMA 传输由外设请求触发, DMA 工作期间不影响 CPU 运 行
⚫ 外设通道最大传输长度 8192 次 ,支持 byte/half word/word 传输
⚫ Flash -->RAM 通道最大传输长度 8192 次 ,只支持 word 传输
⚫ 支持 Flash 连续编程( RAM -->Flash ),需要预先进行擦除,一次编程固定为 256 字节
⚫ RAM 指针递增、递减
⚫ 可产生半程中断和全程中断
⚫ 通道优先级可配置( 4 级优先级)
⚫ 接入外设可选择为 SPIx 、 UARTx 、 I2C 、 U7816 x 、 ADC 、 AES 、 CRC 、 TIMERx

工作原理
外设DMA 为 Peripheral<>RAM 通道,采用外设请求触发方式进行数据传输 ,每个外设通道都可以支持外设 -->RAM 或者 RAM 外设的数据传输,并且根据目标外设类型的不同,自适应选择byte/half word/word 传输方式。 DMA 作为 Master ,在收到 request 后将发起 AHB transactions 进行数据操作,外设目标地址根据通道接入选择自动定位, RAM 目标地址则根据寄存器配置定位。

每个channel 可以从多个外设中选择一个作为 source 或 destination ,同时软件可以设置通道优先级当两个通道同时要访问 RAM 时,由优先级决定谁先访问,另一个通道将被挂起 ,直到优先通道访问完毕。

外设请求可以是发送完成(RAM -->Peripheral )或接收完成 Peripheral -->RAM ),数据传输通过 AHB总线完成,当 DMA 访问外设时, CPU 对同一个外设的访问将引起冲突,哪个 Master 访问被挂起取决于 BusMatrix 设置的仲裁优先级。这里需要注意的是,由于大部分外设都被挂在 APB 总线上, APB映射到 AHB 仅为一个 slave ,因此当 DMA 访问 APB 中任意外设时, CPU 即使访问 APB 下的其他外设,也同样会引起总线仲裁。

软件可设置DMA 的 RAM 指针,用于配置 DMA 传输的起始地址,可以选择指针递增或递减方式。另有 TRFLEN 寄存器配置传输次数,根据起始地址和传输次数,计算得到终止地址,当 RAM 指针指向终止地址时,本次传输结束,关闭通道。

当channel 被使能后, DMA 就准备好接受通道所选中的外设请求。当配置传输长度一半的字节被传输后,一个 HTIF Half transfer interrupt flag )中断置位;当配置传输长度全部完成后 TCIF Transfercomplete interrupt flag )中断置位。上述中断都可以被相应的中断使能寄存器屏蔽 。

在DMA 一个完整 transfer block 完成之前,软件随时可以关闭 channel 使能,此时 DMA 将被挂起,如果软件此后重新使能通道,则 DMA 继续执行之前挂起的操作。当接入外设为SPI/I2C时,DMA传输长度应大于等于2个字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小菜鸡叶不凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值