国民技术

代理品牌

国民技术Nationz单片机DMA与通道映射关系-代理商技术支持、数据手册、免费样品、正品现货

国民技术Nationz单片机DMA与通道映射关系-代理商技术支持、数据手册、免费样品、正品现货

产品分类:国民技术

  • 产品说明

国民技术Nationz单片机DMA与通道映射关系

DMA(Direct Memory Access)直接存储器访问,是MCU的一个外设,它的主要功能是在不占用CPU资源的状况下搬运数据,通过DMA来传输数据,CPU可同时在处理其它数据,类似于CPU的多线程原理,DMA功能可以大大提升单片机的运行效率。

国民技术单片机集成了1-2个2个灵活的通用DMA(直接存储器读取)控制器,每个DMA控制器支持8个通道,可以管理存储器到存储器、外设到存储器和存储器到外设的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道。可通过软件单独设置每个通道的传输的长度、传输的源地址和目标地址。DMA可以用于主要的外设:SPI、I2C、USART,高级/通用/基本定时器TIMx,DAC、I2S、SDIO、ADC、DVP、QSPI。 

本文档分别对N32G03X/N32G43X、N32G457的DMA通道映射关系进行说明,便于开发者快速理解DMA与通道映射关系,更多的详细配置请参阅应用手册及SDK文档。

更多国民技术单片机的开发资料、开发板、技术支持、免费样品、芯片订购事宜,请联络国民技术代理绿都电子,联络方式:0755-83777478,18688790400,philip.yf@szlvdu.com

N32G030系列MCU:N32G030F6U7, N32G030F6S7, N32G030K6L7, N32G030K6Q7, N32G030K6Q7-1, N32G030K8L7, N32G030C8L7, N32G030C8T7, N32G030F8S7

N32G031系列MCU:N32G031F6U7, N32G031F6S7, N32G031K6L7, N32G031K6Q7, N32G031K6Q7-1, N32G031F8U7, N32G031F8S7, N32G031K8L7, N32G031K8Q7, N32G031K8Q7-1, N32G031C8L7

N32G430系列MCU:N32G430C6L7, N32G430K6L7,N32G430C6Q7, N32G430K6Q7, N32G430G6Q7, N32G430F6Q7, N32G430F6S7, N32G430F6S7-1,N32G430C8L7, N32G430K8L7,N32G430C8Q7, N32G430K8Q7, N32G430G8Q7, N32G430F8Q7,N32G430F8S7, N32G430F8S7-1

N32G457系列MCU:N32G457RCL7, N32G457REL7, N32G457MCL7, N32G457MEL7, N32G457VCL7, N32G457VEL7, N32G457QEL7, N32G457RBL7, N32G457MBL7, N32G457VBL7, N32G457CBL7, N32G457CCL7, N32G457CEL7

1 N32G03x/G43x的DMA功能介绍

N32G03x:系统总共有 35个DMA外设请求。可从外设(TIMx[x=1、8、3、6]、 ADC、 SPI/I2S、 SPI2、I2Cx[x=1、 2]、LPUART 和 USARTx[x=1、2])获得。DMA 控制器有5个独立的通道,每个通道对应外设的请求可配置。通过配置 DMA 通道 x 通道选择寄存器来实现。当某个通道 CH_CHSEL[5:0]=NUM,则该通道选择 Ch [NUM] 对应的外设请求。N32G43x:DMA 控制器接收到从外设产生的63个请求,每个请求都有对应的响应握手信号。外设的DMA 请求,可以通过设置相应外设寄存器中的控制位,被独立地开启或关闭。不同外设的请求通过用户配置输入到 DMA 某个通道,具体见寄存器描述。选择 DMA 通道时,可与外设随意对应,注意除了正常 DMA 初始化操作,还需要加 DMA_RequestRemap。 

1.2 功能


1.2.1 仲裁器

N32G03x 的 DMA 控制器有 5 个通道,N32G43x 的 DMA 控制器有 8 个通道。每个通道对应不同的外设的DMA 请求。虽然每个通道可以接收多个外设的请求,但是同一时间只能接收一个,不能同时接收多个。通道默认情况下几个通道软件优先级相同,优先级都为 0,硬件逻辑通道号越小优先级越高。仲裁器根据通道请求的优先级来启动外设/存储器的访问。优先权管理分 2 个阶段:

-软件:每个通道的优先权可以在 DMA_CHCFGx 寄存器中设置,有 4 个等级:

    .最高优先级

    .高优先级

    .中优先级

    .低优先级

-硬件:如果 2 个请求有相同的软件优先级,则较低编号的通道比较高编号的通道有较高的优先权。例如,通道 2 优先于通道 4。

1.2.2 通道配置过程

下面是配置 DMA 通道 x 的过程(x 代表通道号):

1. 在 DMA_PADDRx 寄存器中设置外设寄存器的地址。发生外设数据传输请求时,这个地址将是数据传输的源或目标。

2. 在 DMA_MADDRx 寄存器中设置数据存储器的地址。发生外设数据传输请求时,传输的数据将从这个地址读出或写入这个地址。

3. 在 DMA_TXNUMx 寄存器中设置要传输的数据量。在每个数据传输后,这个数值递减。

4. 在 DMA_CHCFGx 寄存器的 PRIOLVL[1:0]位中设置通道的优先级。

5. 在 DMA_CHCFGx 寄存器中设置数据传输的方向、循环模式、外设和存储器的增量模式、外设和存储器的数据宽度、传输一半产生中断或传输完成产生中断。

6. 设置 DMA_CHCFGx 寄存器的 CHEN 位,启动该通道。

一旦启动了 DMA 通道,它即可响应连到该通道上的外设的 DMA 请求。当传输一半的数据后,半传输标志(HTXF)被置 1,当设置了允许半传输中断位(HTXIE)时,将产生一个中断请求。在数据传输结束后,传输完成标志(TXCF)被置 1,当设置了允许传输完成中断位(TXCIE)时,将产生一个中断请求。 

1.2.3 初始化配置通道映射

除去 DMA 正常的初始化外,还需添加下面的函数,将 DMA 通道与外设连接起来,以 N32G03x 为例。

其 中 选 择 使 用 的 外 设 时 , 进 入 n32g031_dma.h 即可看到 所 有 的 映 射 外 设 。

使用例子:

配置外设对应到 DMA 的哪个通道是 DMA 初始化、DMA_RequestRemap 中的 xxx_DMA_CHANNEL 参数位置,定义如下,自行选择 DMA 通道。 

2 N32G45x

2.1 映射请求

2.1.1 DMA1

DMA1 控制器的 8 个通道可从外设(TIMx[x=1、 2、 3、 4]、 ADCx[x=1、 2]、 SPI1、 SPI/I2S2、I2Cx[x=1、2、 3]、 UART5 和 USARTx[x=1、 2、 3])获得的 8 个独立的请求,通过逻辑或输入到 DMA1 控制器,参见下图的 DMA1 请求映像。根据通道优先级,同一时间只有一个请求有效。通过配置对应外设的寄存器,每个外设的 DMA 请求均可以独立的开启或关闭。下表为外设对应的输入请求通道:


2.1.2 DMA2

DMA2 控制器的 8 个通道可从外设(TIMx[x=5、 6、 7、 8]、 ADCx[x=3、 4]、 SPI/I2S3、 UARTx[x=4、6、 7]、QSPI、 DVP、 DAC 通道 1、 2 和 SDIO)获得的 8 个独立的请求,通过逻辑或输入到 DMA2 控制器,参见下图的 DMA2 请求映像。根据通道优先级,同一时间只有一个请求有效。通过配置对应外设的寄存器,每个外设的 DMA 请求均可以独立的开启或关闭。

2.2 功能

2.2.1 仲裁器

DMA 仲裁器用来处理多个通道同时发起访问请求的情况,根据每个通道的优先级来决定响应哪一个通道请求。优先等级判断包括软件和硬件两种方式:

 -软件方式:有 4 个等级,每个通道优先级可以通过 DMA_CHCFGx 寄存器设置:

     .最高优先级

     .高优先级

     .中优先级

     .低优先级

 -硬件方式:当请求通道的软件优先级相同,则编号低的通道优先级高。例如:通道 1 和通道 2 配置为相同的软件优先级,则通道 1 的优先级更高。

2.2.2 通道配置过程

下面是配置 DMA 通道 x 的过程(x 代表通道号):

1. 在 DMA_PADDRx 寄存器中设置外设寄存器的地址。

2. 在 DMA_MADDRx 寄存器中设置数据存储器的地址。

3. 在 DMA_TXNUMx 寄存器中设置要传输的数据量。在每个数据传输后,这个数值递减。

4. 在 DMA_CHCFGx 寄存器中设置数据传输的方向、循环模式、外设和存储器的增量模式、外设和存储器的数据宽度、传输一半产生中断或传输完成产生中断。

5. 在 DMA_CHCFGx 寄存器的 PRIOLVL[1:0]位中设置通道的优先级。

6. 设置 DMA_CHCFGx 寄存器的 CHEN 位,启动该通道。

一旦启动了 DMA 通道,它即可响应连到该通道上的外设的 DMA 请求。传输过程中,当数据传输一半时HTXF 被置一,当数据传输完成后 TXCF 被置一,当传输错误时 ERRF 被置一。这三个标志可通过开启对应中断使能共用一个独立中断资源。

2.2.3 初始化配置通道映射代码

由于 N32G457 通道与外设是一一对应关系,使用时只要配置好 DMA 模块与通道即可。

选择通道时注意通道对应的外设,多个外设不要同时配置到同一个通道。

1、N32G03x/N32G43x 请求号不是通道号,请求号仅对应外设接口,配置 DMA 时通道可任意与请求号对应。

2、N32G45x 中相同 DMA 同一个通道不可同时使用,比如 DMA1 中,通道 2 内功能不可同时使用。

3、代码中使能 DMA 通道的顺序也算作一个配置优先级。

4、同一个通道同时配置了多个外设,系统会以最后一次配置为准。

5、此应用笔记有配套 Excel 表,可快速查找外设对应通道号。 

更多国民技术单片机的开发资料、开发板、技术支持、免费样品、芯片订购事宜,请联络国民技术代理绿都电子,联络方式:0755-83777479,18688790400,philip.yf@szlvdu.com