当前位置: 首页 > news >正文

【TI MSPM0】ADC进阶学习

一、学习内容

二、ADC配置讲解

转换时钟来源于本地的80mhz的振荡器,使得高速的12bits的转换可以达到4mhz的采样率

ADC转换过程分两个步骤,一是采样,二是转换

因此,配置中的是采样时钟

 真正决定采样速率的是conversion clock 决定

 转换时钟并不能手动配置,是由80mhz的振荡器来获取时钟的

所以不必担心采样时钟的采样率,维持默认设置即可


 对于start和enable的配置,syscong 工具配置完成后,会将enable置1,然后转换一次后置零


 模式一 单通道单词转换

第一个是置1,第二个是置0

对应配置如下

 


模式二 单通道连续转换

这种模式下,enable始终为1,start在触发转换后会被置0,但是,通道内部在转换之后会提供触发信号,从而会连续转换

 模式三 多通道单次转换

模式四 多通道连续转换 

Sampling Mode

自动模式 

 sample window 由定时器控制,通过设置定时器时间来决定采样多长时间。

手动模式

不再由定时器决定,需要再设置开始和结束时间

Trigger Source 

触发方式

 软件触发和事件触发(通过定时器控制)

Conversion Data Format 

1无符号二进制右对齐(默认使用)

2有符号二进制左对齐(补码)

 ADC Conversion Memory Configurations

下面可以对不同通道设置不同引脚和时钟

共有两个采样时钟0和1

这里可以对不同时钟进行配置,从而达到不同采样时间


Advanced Configuration

可以对转换精度进行配置,一般用12bits ,这样更加精准


Mannul模式下会耗电更多

 但是电赛对这个要求不多,可以配置在改模式下

 


三、DMA 讲解

通过中断触发DMA,因此不使用中断去读取数据,中断选择不做处理

如果是单通道,就每次传1个,我们就用MEM0结果读进来就会触发DMA 


此种场景下,选择第二种

第一种使用场景:ADC读取值,DAC 输出值

第三种使用场景:串口DMA,有一串数组,将数组传给另一个数组

后面几种不常用,这里不做介绍


因为是存储在16位的寄存器中,均选择半字节


递增数组第0个开始递增

递减从大向小递减


勾选并输入每次要搬运的数据个数

 


然后可以使能一个中断

当DMA 传输完成后进行的中断


  • 第一个是采集1000个数一次传一个
  • 第二个是采集1000个数一次传1个传1000次,使得数组里1000个位置都是这一个数

repeat 是传输完以后再进入继续传输,符合设想要求


这里的是传输起点的递增,不是过程

 

这里不需要改动

四、DMA使用

配置方面


代码编写 

第一步

  • 设置存放结果的寄存器的地址(即DMA要传输 的起始地址)

  • 然后开辟新的数组空间存放DMA传输的数据,设置终点地址

 查看寄存器地址的方法

点击register,出现相关寄存器地址的值

 

第二步

使能DMA中断 

开启ADC

第三步

DMA中断服务程序

 

另外,由于选用repeat模式,还会不断进行DMA 传输,可能导致数组发生变化,因此调用函数关闭ADC通道

第四步

编写数据处理函数

 

第五步

打开ADC中断

开启ADC

 

 

 五、FIFO学习

先进先出

 

先进后出


使用FIFO 的意义是可以降低对DMA和中断调用的频率,提升资源利用率,优化系统性能 

六、FIFO的使用

勾选FIFO

 

  更改DMA触发方式和传输数据个数

 

更改 数据格式

 

代码更改

 

七、多通道使用

 

多通道连续采集模式下是强制使用FIFO 的

 

八、使用定时器实现可控采样率

ADC配置

改为事件触发

 

使用DMA中断

 关闭自动触发

选择第二个

定时器配置

 

定时器通道和事件

 

这是在ADC里面 

代码编写

不需要start ADC

九、实现最高4mhz采样率

软件触发

DMA传输

 采样时间

 

相关文章:

  • 家政小程序预约系统框架设计
  • 计算斐波那契数列
  • 天梯赛L1-22-25
  • SpringBoot 与 Vue3 实现前后端互联全解析
  • 日常记录-CentOS 9安装java17
  • GitLab-获取token(访问令牌)
  • 用css给div列表加个序号
  • uniapp的h5,打开的时候,标题会一闪而过应用名称,再显示当前页面的标题
  • uniapp 自定义tabbar
  • D1084低功耗LDO稳压器:技术解析与应用设计
  • 各证券公司QMT的本地VSCode开发环境配置指南
  • CRUD3
  • Bad Request 400
  • 什么是 矩阵号 ?为什么要做海外矩阵?
  • Axure高保真AI算法训练平台
  • SQL2API 核心理念:如何重构数据服务交付范式
  • github配置ssh,全程CV
  • chain_type=“stuff 是什么 ? 其他方式有什么?
  • 用户管理和权限管理
  • FnOS安装
  • 打造“朋友圈”,“淘书乐”为旧书找“新朋友”
  • 受贿超8.22亿元,新疆维吾尔自治区党委原副书记李鹏新一审被判死缓
  • 伊朗外长访华将会见哪些人?讨论哪些议题?外交部回应
  • 庆祝中国印尼建交75周年招待会暨万隆会议70周年纪念活动在京举行
  • 尹锡悦涉嫌发动内乱案第二次庭审举行
  • 延安市委副书记马月逢已任榆林市委副书记、市政府党组书记