瑞萨RA6M4系列DMAC和ADC的详细介绍(1)

描述

 

 

概述

ADC在产品设计中是非常常用的MCU外设模块,当在某些复杂的应用下需要非常快的采样速度时,使用DMA进行数据搬运,可以更便捷的来实现对数据的高效搬运,结合本例在FSP上轻松配置您的所需,同时也让我们了解一下瑞萨RA6M4系列DMAC和ADC的详细介绍。

DMAC简介

DMAC (Direct Memory Access Controller)称为直接存储访问控制器/直接内存访问控制器, 可以在不占用 CPU 总线资源的情况下,将数据从一个内存位置传输到另一个内存位置。

1.1 DMAC特性

RA6M4包括一个8通道直接内存访问控制器(DMAC),无需CPU干预即可传输数据。当产生DMA传输请求时,DMAC将存储在传输源地址的数据传输到目标地址。

mcu

点击可查看大图

1.2 DMAC框图

  mcu

点击可查看大图

1.3 DMAC激活源

● 软件触发

● 外设模块的中断请求

● 外部中断请求

DMAC激活源需在DMTMD寄存器的 DCTG[1:0] 位进行设置。

1.3.1 软件触发DMAC

可以通过软件启动DMA传输

1.3.2 来自片上外设模块或外部中断请求激活DMAC

可以将片上外设模块的中断请求或外部中断请求设置为DMAC的激活源。可以通过ICU的DELSRn寄存器的 DELS[8:0]位 (n = 0~7) 为每个通道单独选择激活源。

1.3.3 DMAC中断优先级

程序执行中存在多个DMA传输请求时,DMAC来决定每个具有DMA传输请求的通道的优先级。通道优先级固定如下:

通道 0 > 通道 1 > 通道 2 > 通道 3… > 通道 7

其中通道 0: 优先级最高

如在数据传输期间产生DMA传输请求时,在数据已传输之后再进行通道仲裁,优先级较高的通道的DMA优先传输。

1.3.4 事件链接

每个DMAC通道在每次完成数据传输或块数据传输时,都会输出一个事件链接请求信号(DMACn_INT)。 

当传输目的地是外部总线时:在写入缓冲区操作被接受时会产生一个事件链接请求信号。

如果写入传输的最后数据时发生总线错误,则会发生传输结束事件和错误响应检测中断(DMA_TRANSERR)。

1.4 DMAC传输模式

正常模式 (Normal Mode):

在正常模式下,每次DMAC通道接收到配置的ELC事件时,都会传输单个数据单元。数据单元可以是1字节、2字节或4字节。源地址和目标地址可以是固定的、递增的、递减的,或者在每次传输后向下一个数据单元添加偏移量。每次传输后,16位计数器递减。当计数器达到0时,ELC事件将不再触发传输,并且可以中断CPU以指示所有传输已完成。

重复模式 (Repeat Mode):

重复模式的工作方式与普通模式相同,但长度限制为范围[1,1024] 内的整数。当传输计数器达到0时,计数器将重置为其配置的值,重复区域(源或目标地址)将重置为其起始地址,剩余的块计数将减少1。当块计数达到0时,ELC事件将不再触发传输,并且CPU可能会中断以指示所有传输已完成。

块模式 (Block Mode):

在块模式下,每个中断传输的数据单元量可以设置为范围 [1,1024] 中的整数。要传输的块数也可以配置为16位数字。每次块传输后,重复区域(源地址或目标地址)将重置为原始地址,另一个地址将递增或递减到下一个块。

重复-块模式 (Repeat-Block Mode): 

1个DMA传输请求的1个块数据传输,最大可设置块大小:1024,块传输可以重复,最大可设置重复大小:64K,可选择的自由运行功能。

支持三种位长:8、16、32位

如果是8位时块大小为0xFFFF

如果是16位时块大小为0x7FFF

如果是32位时块大小为0x3FFF

ADC简介

ADC即模拟数字转换器,ADC英文全称(Analog-to-digital converter),用于将模拟电压的连续信号转换为离散的数字信号。可以将我们生活中的温度、压力、声音这样的模拟信号通过ADC转化为可以通过单片机处理的数字信号,方便检测。

2.1 ADC特性

12、14或16位最大分辨率,具体取决于MCU

配置扫描包括:

多个模拟通道

温度传感器通道

电压传感器通道

可配置的扫描启动触发器:

软件扫描触发器

硬件扫描触发器(例如定时器溢出)

来自ADTRGn端口引脚的外部扫描触发器

可配置扫描模式:

单次扫描模式,其中每个触发器启动一次扫描

连续扫描模式,连续扫描所有通道

组扫描模式,其中通道分为组A和组B。可以为组分配不同的启动触发器,并且可以将组A优先于组B。当组A优先于组B时,组A触发器将挂起正在进行的组B扫描。

支持添加加法/平均转换后的样本

扫描完成时的可选回调

支持采样保持

双触发

带中断和事件输出的硬件比较器

2.2 ADC框图

  mcu

点击可查看大图

mcu

点击可查看大图

2.3 工作模式

驱动程序支持三种操作模式:单次扫描、连续扫描和组扫描模式。在每种模式下,模拟通道按通道号的升序进行转换,然后扫描温度传感器和电压传感器(如果它们包含在要扫描的通道模板中)。

单次扫描模式

在单次扫描模式下,每个触发器扫描一次一个或多个指定通道。

连续扫描模式

在连续扫描模式下,需要单个触发器才能启动扫描。扫描将继续,直到调用 R_ADC_ScanStop()。

组扫描模式

组扫描模式允许应用程序将通道分配给两个组(A和B)之一。当收到该组的指定ELC启动触发器时,转换开始。

使用优先级配置参数,您可以选择将组A置于组B之上。如果组A优先于组B,则当发生组A扫描触发时,组B扫描将中断。当组A具有优先级时,组B存在以下选项:

在组A扫描完成后重新启动中断的组B扫描。

等待另一个组B触发器和放弃被中断的扫描。

持续扫描组B并仅在收到组A触发器时暂停扫描组B。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分