FIFO (First Input First Output 先进先出队列)

举例:1号先进入通道,2号再进入通道,3号最后进入通道;1号先出通道,2号再出,3号最后出。

说明

在配置ADC的时候,有0-11总共12个Memory。

在不使用FIFO的情况下,假如配置了四个通道,Ch1 —— MEM0、Ch2 —— MEM1、Ch3 —— MEM2、Ch4 —— MEM3。

打开FIFO后,将12个FIFO整合成了一个FIFO,在其中将两个16bits的MEM组合成一个32bits的MEM,即从16位的存储空间变为了32位的存储空间。原本有12个16bits的MEM,现在变为了6个32bits的MEM,此时ADC将会先采样6个数据,填充满这6个32bits的MEM后,再触发DMA转运将数据送出去,故FIFO的意义在于:

  1. 有缓冲保护,数据丢失风险降低。
  2. DMA请求频率降低了。
  3. 中断的次数减少,CPU的干预少。
  4. 突发传输优化,总线利用率增高。

启用FIFO后的DMA配置修改

  1. DMA Samples Count:原本为 1,由于开启了FIFO,12个MEM合并成了6个MEM,并且将6个MEM填充满后才会触发DMA转运,故将其修改为6。
  2. Enable DMA Triggers:原本为 "MEM0 result loaded interrupt",由于将12个16bits的MEM合并成了6个32bits的MEM,但是ADC采样的数据仍然是16bits的数据,在最后一个32bit的MEM中,填充到前面一位的MEM10看作完成填充,触发DMA进行转运最好。
  3. Source / Destination Length:原本都为Half Word,由于12个16bits的MEM,合并成了6个32bits的MEM,故将DMA转运数据长度改为Word(4 Bytes -> 32 bits)。
  4. Transfer Size:原本为1000,由于传输16bits变为了传输32bits,故除以二得到500。

FILO (First Input Last Output 先进后出栈)

举例:1号先进入通道,2号再进入通道,3号最后进入通道;3号先出通道,2号再出,1号最后出。

【MSPM0G3507系列】FIFO模式DMA转运的更多相关文章

  1. 转:FIFO和DMA

    FIFO SPI端口增加了FIFO,使得传输数据有了缓冲区间. FIFO存储器是一个先入先出的双口缓冲器,即第一个进入其内的数据第一个被移出,其中一个存储器的输入口,另一个口是存储器的输出口.主要有三 ...

  2. 6. oracle学习入门系列之六 模式

    oracle学习入门系列之六 模式 上篇咱们学习记录了ORACLE数据库中的数据库结构.内存结构和进程等.篇幅 蛤蟆感觉偏多了.这次要休整下,每次笔记不宜太多,不然与书籍有何差别. 我们要保证的是每次 ...

  3. RENIX板卡V2-100G系列工作模式速率切换——网络测试仪实操

    本文主要介绍了RENIX板卡V2-100G系列工作模式速率切换相关操作.全文分为五部分内容.文章开头对V2-100G系列板卡进行了概述,之后分别详细介绍了100G工作模式.40G工作模式.25G工作模 ...

  4. USB小白学习之路(10) CY7C68013A Slave FIFO模式下的标志位(转)

    转自良子:http://www.eefocus.com/liangziusb/blog/12-11/288618_bdaf9.html CY7C68013含有4个大端点,可以用来处理数据量较大的传输, ...

  5. Android设计模式系列--模板方法模式

    模板方法,和单例模式是我认为GOF的23中最简单的两种模式.但是我个人对模板方法的经典思想特别推崇,虽然模板方法在大对数情况下并不被推荐使用,但是这种通过父类调用子类的方法,使用继承来改变算法的一部分 ...

  6. Android设计模式系列--原型模式

    CV一族,应该很容易理解原型模式的原理,复制,粘贴完后看具体情况是否修改,其实这就是原型模式.从java的角度看,一般使用原型模式有个明显的特点,就是实现cloneable的clone()方法.原型模 ...

  7. Android设计模式系列-组合模式

    Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用.在android UI设计,几乎所有的widget和布局类都依靠这两个类.组合模式,Compos ...

  8. zabbix系列~ 监控模式

    一 简介:讲讲监控相关的东西 二 监控模式 Active(主动式)agent —>常用    在Active agent模式下,Zabbix agent启动后,由agent端初始化和Zabbix ...

  9. Java设计模式系列 — 构造器模式

    想象下你有一个类,像下图所示有许多属性.假设你想让你的类不可变(顺便说一下,除非有一个好的理由不这样做,否则你应该坚持.但是我们会以另一种方式来达到要求.) public class User { p ...

  10. PHP 设计模式系列 —— 资源库模式(Repository)

    1.模式定义 Repository 是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提供给领域层进行领域对象的访问.Repo ...

随机推荐

  1. git回退到指定commit并同步到线上

    查看commit id git log 本地回退到指定commitid git reset --hard 6acd0f4cfc78302c5563facc1ebc7c84384aef3e 推送到远程 ...

  2. 开发工具系列005-Hexo + gitub搭建个人博客教程

    1.0 说明 其实,搭建个人博客的技术方案有很多. 其实,你能找到的使用Hexo + Github搭建个人博客的教程也有很多. 所以,其实这是一篇没必要的文章,但因为种种原因我还是写了这篇简单的教程. ...

  3. K8s 自定义调度器 Part1:通过 Scheduler Extender 实现自定义调度逻辑

    本文主要分享如何通过 Scheduler Extender 扩展调度器从而实现自定义调度策略. 1. 为什么需要自定义调度逻辑 什么是所谓的调度? 所谓调度就是指给 Pod 对象的 spec.node ...

  4. Day12 备战CCF-CSP练习

    Day 12 题目描述 西西艾弗岛上共有 \(n\) 个仓库,依次编号为 \(1∼n\). 每个仓库均有一个 \(m\) 维向量的位置编码,用来表示仓库间的物流运转关系. 具体来说,每个仓库 \(i\ ...

  5. ETL常见的数据转换方式

    -.什么是数据转换? 数据转换就是把数据从一种格式或结构变换成另一种格式或结构.它借助一系列转换操作,让数据变得更整洁.规范,方便理解和使用.数据转换是 ETL(即数据抽取.转换.加载)流程里十分关键 ...

  6. POLIR-Society-Organization-Communication: 交流: 组织/社会化的沟通: 首先确定对方姓名+Role/身份+判断其目的、立场和认知

    要用适合沟通对方的Role/身份,容易理解和舒服的方式,达成我们的目标 POLIR-Society-Organization-Communication: 交流: 组织/社会化的沟通: 首先确定对方 ...

  7. 最简洁的泛型c#消息机制

    using System;using System.Collections;public class EventSystem { public delegate void ListenerDelega ...

  8. C++迭代器iterator详解

    https://blog.csdn.net/QIANGWEIYUAN/article/details/89184546?utm_medium=distribute.pc_relevant.none-t ...

  9. shading-jdbc数据库读写分离

    官方文档 1. ShardingSphere 1.1 ShardingSphere简介 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC. ...

  10. zpool import 和 zpool export命令管理

    zpool import 和 zpool export 是 ZFS 存储池管理中的核心命令,用于在不同系统间迁移存储池或临时解除池的访问.以下详解其功能.用法及典型应用场景: ⚙️ ​​zpool e ...