> 技术文档 > LP-MSPM0G3507学习--11ADC之二双通道高速DMA采样

LP-MSPM0G3507学习--11ADC之二双通道高速DMA采样

关键函数:

DL_DMA_setSrcAddr():

DL_DMA_setDestAddr():

DL_DMA_setTransferSize():

DL_DMA_enableChannel():使能DMA传输

1.概述

DMA(Direct Memory Access)直接存储器存取,是一种实现高速存取数据的方法,配置好后,外设寄存器的数据可以不经CPU,自动搬运到指定存储器位置;指定存储器位置的数据,也可以不经过CPU,自动搬运到外设寄存器。

外设传输至存储器,多为Fixed address to Block address

存储器传输至外设,多为Block address to Fixed address

另外通常读取ADC转换数据是从Conversion Memory中读取的,而ADC包含一个可选的先入先出(FIFO)缓冲区,提供了另外一种方法来存储ADC结果的方式

从上表中可以看出,对于高速重复序列来说,必须启用FIFO

1.配置

ADC转换器选ADC1--PinMux peripheral and Pin Configuration

ADC 时钟源设为32MHz

Conversion Mode选sequence 

两通道采用,因此Conversion Adderess设为1

使能repeat Mode--高速手动来不及

采样模式选自动

触发源选择software--通过精确计算采样时间,实现确定时间间隔采样,DMA会扮演触发的角色

Memory0配置为通道0/PA15,电压基准VDDA,采用时间源为 sampling Timer1

Memory1配置为通道0/PA156,电压基准VDDA,采用时间源为 sampling Timer1

高级配置中的分辨率设为12位,启动FIFO,掉电使能模式选择手动(Manual,选自动的话会自动掉电,导致无法实现高速度采样),期望采样时间分别为320ns、62.5ns,即采样率分别为1MHz,2MHz

采样率计算:

当时钟采用32MHz,选择12位模式时,转换阶段需要14个转换时钟周期,即转换时间为437.5ns,采样时间为62.5ns时,每一路总时长为500ns,即采样率为2MHz;当采样时间为320ns时,每一通道时长为757.5ns,约为1Mz;如采用1通道,想达到4MHz,必须提升频率,必然说时钟频率为80Mhz,则转换时间为175ns,采样时间可以为250-175=75ns

抖团网