k64 datasheet学习笔记21--Direct Memory Access Multiplexer (DMAMUX)

0.前言 

本章主要介绍DMA MUX的相关内容

1.简介

1.1 概述

用来路由DMA源到16DMA通道:

 

 

 

1.2 特性

1.52个外设slot10个常开slot可以路由到16DMA通道

2.16个独立的可选的DMA通道路由,其中前4个通道提供周期触发功能

3.每个DMA通道可以路由指定给52slot10个常开slot的任意一个

1.3 操作模式

1.disable模式

DMA通道被禁用

2.normal模式

一个DMA源被路由到一个特定的DMA通道

3.周期触发模式

一个DMA源只能请求一个DMA传输,周期性配置在PIT寄存器中配置,这种模式只适用于通道0~3

外部信号描述

无外部信号

内存映射/寄存器定义

通道配置寄存器(DMAMUX_CHCFGn):每个DMA通道可以独立的使能禁用,在改变触发或源设置前必须通过CHCFGn[ENBL]来禁用相关通道

功能描述

DMAMUX通道可以分为两类:

实现通常的路由功能+周期触发;

只实现通常路由功能

4.1 带有周期性触发功能的DMA通道

通过配置PIT来配置周期性触发。

 

 

只有触发事件到来外设的DMA请求才能gateDMA

 

 

 如果外设无DMA请求,triggering将被忽略

 

 

triggering可以用于任何支持DMA传输的外设,大部分包含两种类型:

(1) 通过总线周期性轮询外部设备

SPI可实现每隔5us自动将内存的数据通过DMA搬移到SPI中,也可以每隔5usSPI接收到的数据通过DMA搬移到内存中

(2)使用GPIO来驱动波形或采集波形

4.2 不带有触发功能的DMA通道

 

4.3 总是使能的DMA

除了外设DMA源,还有10路常开的DMA源,主要用于如下情形:

  1. DMA传输GPIO信息
  2. DMA传输从内存到内存
  3. DMA传输从内存到外部总线
  4. 允许软件激活的DMA传输

 

可以通过软件激活或DMAMUX来开始一个新的传输:

  1. 在单个的minor loop传输所有数据;
  2. 使用明确的软件激活
  3. 使用常开的DMA源,由MUX来完成再激活

初始化/应用信息

提供DMA初始化的信息

5.1 reset

reset后所有通道被禁用,使用前需要使能

5.2 使能配置源

为了使能带有周期触发的源,需要作如下操作:

1.决定DMA源采用哪个DMA通道(前4个才有周期触发功能);

2.通过清空CHCFG[ENBL] and CHCFG[TRIG] 禁用对应的DMA通道和DMA通道触发功能;

3.确保DMA通道在DMA相关寄存器中正确配置,此时DMA通道可以使能;

4.配置对应的定时器

5.选择与DMA通道关联的源,并使能DMA通道和DMA通道触发

转载于:https://www.cnblogs.com/smartjourneys/p/8489103.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 3-8译码器设计: 首先打开Logisim软件,新建一个电路,然后从左边的工具栏中选择“Wiring”中的“Pin”,将8个输入引脚和3个输出引脚分别拖到电路面板中。 接下来,从左边的工具栏中选择“Gates”中的“Multiplexer”,将它拖到电路面板中。 然后右键点击Multiplexer,选择“Edit Properties”,在“Number of inputs”中输入8,表示我们要将8个输入引脚连接到Multiplexer上。 接着,从左边的工具栏中选择“Wiring”中的“Pin”,将8个输入引脚依次连接到Multiplexer的8个输入端口上。 接下来,从左边的工具栏中选择“Gates”中的“Decoder”,将它拖到电路面板中。 然后右键点击Decoder,选择“Edit Properties”,在“Number of outputs”中输入8,表示我们要将Decoder的8个输出端口连接到Multiplexer上。 接着,从左边的工具栏中选择“Wiring”中的“Pin”,将3个输出引脚依次连接到Multiplexer的3个输出端口上。 最后,从左边的工具栏中选择“Gates”中的“NOT Gate”,将它拖到电路面板中,将Decoder的Enable端口连接到NOT Gate的输入端口上,将NOT Gate的输出端口连接到Multiplexer的Select端口上。 至此,3-8译码器的设计完成。 2. 一位二进制数据比较器设计: 首先打开Logisim软件,新建一个电路,然后从左边的工具栏中选择“Wiring”中的“Pin”,将2个4位二进制数的输入引脚和1个输出引脚分别拖到电路面板中。 接下来,从左边的工具栏中选择“Gates”中的“XOR Gate”和“AND Gate”,将它们分别拖到电路面板中。 然后将输入引脚依次连接到XOR Gate的两个输入端口上,将XOR Gate的输出端口连接到AND Gate的一个输入端口上。 接着,从左边的工具栏中选择“Gates”中的“NOT Gate”,将它拖到电路面板中,将其中一个输入引脚连接到NOT Gate的输入端口上,将NOT Gate的输出端口连接到AND Gate的另一个输入端口上。 最后,将AND Gate的输出端口连接到输出引脚上。 至此,一位二进制数据比较器的设计完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值