首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

深入了解PSoC5:DMA使用基础

深入了解PSoC5:DMA使用基础

关键字:PSoC5   DMA   ADC  

DMA配置原理与方法说明

由上一节简介可知,外设子系统间数据的DMA传输任务配置应该分为DMA通道配置与任务描述符TD配置两个方面。

① DMA通道配置

图3-1所示为DMA通道配置的主要内容和参数。




Burst Count(1 to 255):DMA传输一次数据称为一个burst。此参数定义了DMA每次待传输数据的宽度,单位为字节。传输开始后,DMA应将此参数定义的所有字节全部传输完,才能释放相应的spoke.

Request Per Burst (0 or 1): 若一个DMA任务需要传输的总数据量超过一个burst时,应分成多次发送。当此参数设为0时,所有后续的burst将会在其前一个burst完成后自动进行而不再需要单独的request请求。因此只有在第一个burst开始时需要唯一的request请求。当此参数设为1时,每个burst传输时都需要独立的request请求。
First TD of Channel: 每个DMA通道拥有1个TD或由多个TD构成的链表,此参数为指向单个TD,或多TD链表首个TD的指针。

Preserve TD (0 or 1): 在一个request请求完成后,下一个request请求开始时可能会需要其TD的一些信息。此参数为0不保存TD的实时信息,为1则在每request请求结束后保存TD的所有中间状态及配置信息。

② 任务描述符TD配置

图3-2所示为任务描述符TD配置的主要内容和参数。

Transfer Count(1 to 4095):此参数定义了一个DMA任务需要传输数据包含的总字节数。若待传输单个数据的宽度(由 Burst Count定义)为N,需要传输的数据个数(即burst数量)为M,那么Transfer Count参数应当为M * N。

TD Property:此参数包含多个配置项,如下所示:

Increment Source Address: 在每个burst传输结束后递增源数据地址。
Increment Destination Address: 在每个burst传输结束后递增目的数据地址。在DMA传输任务的源数据或目的数据地址超过1个时,这两个命令项必须被配置。
Swap Enable:此选项只针对PSoC3应用。由于PSoC3的外设寄存器采用小端(Little Endian)格式,而PSoC3应用程序的Keil编译器对存储器内的变量采用大端(Big Endian)格式。因此当DMA在外设寄存器与存储器间传输2字节或4字节数据时,DMA必须交换传输数据的高低字节。
Swap Size:当Swap Enable配置为1时,此选项有效。0表示2字节,1表示4字节。
Auto Executive Next TD:当DMA通道含有多个TD时,须配置此选项。1表示当前TD完成后,指针指向的下一个TD自动执行;0表示当前TD完成后,下一个TD的执行需要另外的独立request请求。
DMA Completion Event:当DMA通道含有多个TD时,须配置此选项。1表示当前TD完成后,指针指向的下一个TD自动执行;0表示当前TD完成后,下一个TD的执行需要另外的独立request请求。
Next TD:指向TD链表中相邻的后续TD的指针。
返回列表