F28335的ADC模块

这篇具有很好参考价值的文章主要介绍了F28335的ADC模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

F28335的ADC模块

标签: DSP

F28335的ADC模块

  • 具有双采样保持器的12位转换内核
  • 模拟输入电平:0~3V
  • 16个转换通道;ADC有16个输入引脚,即16个模拟转变输入通道,分为2组,一组为A,一组为B,其中ADCINA0~ ADCINA7都是属于A的,ADCINB0~ADCINB7都是B的。
  • 序列发生器可配置成两个独立8通道或者一个16通道;无论是级联工作模式还是双序列工作模式,其本质都是通过设定通道的读取顺序来进行通道的读取选择
  • 最快转换时钟频率12.5MHz(奈奎斯特定则,25MHz最高能采样12.5MHz的信号)
  • 有多种触发源启动模数转换;多触发源:软件、ePWM和GPIO
  • 灵活的中断控制;
  • 两种采样模式:级联和双通道模式
  • 16个采样通道采用分时复用模式进行采样
  • 序列发生器决定采样对象,是一个存储地址的寄存器
  • S/H-A和S/H-B是两个采样保持器
  • 16 个结果寄存器存放ADC 转换的结果,转换后的数字量表示为:数字值=4095*(输入模拟值-ADCLO)/3,输入模拟值在0-3V 之间

软件设置流程

(1)使能ADC 外设时钟及设置ADC 工作时钟
要使用ADC 外设则需开启相应时钟,开启ADC 外设时钟代码如下:

EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; // ADC
EDIS;
系统时钟150M 不能直接供ADC 工作时钟使用,需分频后才行
EALLOW;
SysCtrlRegs.HISPCP.all = 3; // HSPCLK = SYSCLKOUT/(2*3)=25MHz
EDIS;

(2)ADC 初始化设置,包括对ADCREFSEL 和ADCOFFTRIM寄存器设置等

void InitAdc(void);

(3)ADC 工作方式设置,包括采样方式、工作频率、采样通道数等。

例:
AdcRegs.ADCTRL1.bit.ACQ_PS = 0x0f;//采样窗口长度设置;控制soc脉冲的宽度,也确定了采样开关闭合的时间,soc脉冲的宽度是ACQ_PS加1个ADCLK周期数
AdcRegs.ADCTRL3.bit.ADCCLKPS = 1;//ADC 工作25M 下不分频;adc内核时钟分频器
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;// 1 通道模式
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;//A0 为采样通道
AdcRegs.ADCTRL1.bit.CONT_RUN = 1;//连续采样模式
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x0;//定义了自动转换序列中完成的最大转换通道数;最大采样通道数,因为只用到A0,所以只有1 个,即数值为0。

(4)选择ADC 触发方式,开启转换。

AdcRegs.ADCTRL2.all = 0x2000;//软件触发 Start SEQ1;序列发生器SEQ1或级联序列发生器SEQ的启动转换触发位

(5)读取ADC 转换值

Uint16 Read_ADCValue(void)
{
while (AdcRegs.ADCST.bit.INT_SEQ1== 0);//查询转换是否结束;SEQ1中断标志位,0代表无中断事件
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;//清除中断标志位
return AdcRegs.ADCRESULT0>>4;//将转换结果返回出去
}

工作模式可以分成两种:级联工作、双排序工作模式;每种模式下还有顺序采样、同步采样两种采样方式;

ADC转换模块

A/D转换器(ADC)将模拟量转换为数字量通常要经过四个步骤:采样、保持、量化和编码

采样:将一个时间上连续变化的模拟量转化为时间上离散变化的模拟量。
保持:将采样结果存储起来,直到下次采样,这个过程称作保持。一般,采样器和保持电路一起总称为采样保持电路。
量化:将采样电平归化为与之接近的离散数字电平,这个过程称作量化。
编码:将量化后的结果按照一定数制形式表示就是编码。

F28335 的 ADC 转换模块有 2 个独立的 8 状态排序器(SEQ1 与 SEQ2),这两个排序器还可以级联为 1 个 16状态的排序器(SEQ)。这里的状态是指排序器能够完成的A/D自动转换通道的个数。8状态排序器指的是能够完成8个A/D转换通道的排序管理。2个排序器可有两种操作方式,分别为单排序器方式(级联为1 个 16 状态排序器,即级联方式)和双排序器方式(2 个独立的8状态排序器),A/D转换模块每次收到触发源的开始转换(SOC)请求时,能够通过排序器自动完成多路转换,将模拟输入信号引入采样保持器与ADC内核,转换完成后,将转换结果存入结果寄存器。两种操作方式的最大差别在于,单排序器操作方式响应触发源是唯一的,双排序方式可以分别响应各自的触发源。单排序方式和双排序方式都可以进行顺序采样或者同步采样,顺序采样相当于串行模式,同步采样相当于并行模式,能保证信号的同时性,两个采样保持器,决定了最多能够进行2 路同步。

ADC关键指标

分辨率:指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2^n的比值。分辨率又称为精度,通常以数字信号的位数来表示。通俗的解释分辨率是决定采样最小值,比如基准电压为1V,8位的采样,最小值是1/256,10为采样的最小值是1/1024,分辨率越高,采样越精确。

转换速率:也可以称为AD采样率,是AD转换一次所需要的时间的倒数。单位时间内,完成从模拟转换到数字的次数

采样时间:是指两次转换的间隔,为了保证转换的正确完成,采样速率必须小于或等于转换速率。

量化误差:由于AD的有限分辨率而引起的误差,即有限分辨率AD的阶梯状转移特性曲线与无限分辨率AD的转移特性曲线之间的最大偏差。通常1个或半个最小数字量的模拟变化量,表示为1LSB、1/2LSB。

举例说明讲解以上四个指标:

例如F28335的AD转换模块是12位的,AD的最大时钟频率为25MHz,采样速率12.5Msps。

如果要对一个1V电压进行采样,分辨率=1/2的12次方=1/4096,

转换速率:在程序中根据自己需求设置的,

最大采样速率=1/12.5M=80ns(也可通过设置时钟设置)

量化误差:每个代码之间的电压变换就代表1/4096V
,无法采到1/8192V电压。换言之,产生指定代码的实际电压与代表该码的电压两者之间存在误差。

时钟频率:就像人的心脏跳动一样,如果没有时钟频率,那么ADC模块将运作不起来。

采样频率:每隔多长时间启动一次采样。

转换时间:ADC模块转换一个通道或者一个序列所需要的时间。

级联排序方式下的顺序采样和同步采样:

级联排序器顺序采样模式:

通过控制寄存器CONVxx的4位值确定输入引脚,其中,最高位确定采用哪个采样保持缓存器,其他3位定义具体的输入引脚。2个采样保持器对应各自的8选1多路选择器和8个输入通道。

级联排序器同步采样模式:

级联模式下,可以实现两个通道的同步采样,要求 2 个输入必须有同样的采样和保持偏移量(比如 ADCINA4 和 ADCINB4,不能是 ADCINA7 和 ADCINA6),为了让 ADC 模块工作在同步采样模式,必须设置 ADCTRL3 寄存器中的 SMODE_SEL=1。在同步采样模式下,CONVxx 寄存器的最高位不起作用,CONVxx 寄存器最高位用于确定采用哪个采样保持缓冲器(S/H-A或S/H-B)CONVxx 寄存器的后3位起作用,确定引脚进行采样,例如:CONVxx 寄存器的值是 0110b,ADCINA6 就由采样保持器 A 采样,ADCINB6 有采样保持器 B 采样,和1110b 的效果是一样的。

采样保持两路可以同步进行,因为有两个采样保持器,但是转换不可能同时进行。转换器首先转换采样保持器 A中锁存的电压量,然后转换采样保持器 B 中锁存的电压量,采样保持器 A 转换的结果保存到当前的 ADCRESULTn 寄存器(如果排序器已经复位,SEQ1 的结果放到ADCRESULT0),采样保持器 B 转换的结果保存到下一个(顺延)ADCRESULTn 寄存器(如果排序器没有复位,SEQ1 的结果放到 ADCRESULT1),结果寄存器指针每次增加 2。

级联排序器操作方式下,双通道同时采样,8对(16个通道)模拟量均由SEQ1排序控制。
为什么只用开SEQ1中断而不开SEQ2中断?

这是因为在级联模式下,SEQ1的8状态排序和SEQ2的8状态排序公用一个触发源,所以只用开SEQ1的中断就够了。

2个采样保持器复用一个A/D转换模块,16个输入通道复用2个采样保持器

尽管只有一个A/D模块,但是2个采样保持器保证了F28335的ADC转换模块也能够同时采样2个输入通道,同时采样,但并不同步转换,但最终结果来看就等效为同步转换。

双排序器方式下的顺序采样和同步采样:

双排序器下的顺序采样:

双排序器下的同步采样:
在同步采样模式下,双排序器和级联排序器相比,主要区别在于:

在双排序器中每个排序器分别控制4个转换8个通道,共构成16通道;而在级联排序器的同步采样模式下,实际上只用了SEQ1作为排序器,控制8个转换16个通道。

单排序操作方式(级联方式)响应触发源是唯一的,可双排序的方式可以分别响应各自的触发源

配置了三种模式

单次模式,连续模式和DMA传输

单次模式是调用一次采集函数,在指定的某一个AD端口采集,用到的时候在去采样

连续模式是连续转换多个通道,采用级联模式,采用16路AD通道的值

DMA传输时AD采样的值直接通过DMA传输到内存中,不需要要CPU干预,持续采样,放到内存,需要用到数据的时候去读取相应的存储区即可。文章来源地址https://www.toymoban.com/news/detail-410058.html

到了这里,关于F28335的ADC模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机——ADC采样

            ADC是指将模拟信号转换成数字信号的过程。通俗理解ADC采样就是采集电路中的电压,通过数值的方式表现出来。以STM32F103系列为例,它可以反应0~4095,换句话说,它采集的电压数值上表现为0~4095,也就是12位ADC(2^12)。         以STM32F103芯片为例,供电电压是3.3V,

    2024年02月04日
    浏览(50)
  • STM32实现ADC采样

    功能:在单片机上对声音和光强进行采样,通过串口输出其采样值。 工具:实验用到CubeIDE和Cubeprogrammer两个软件,串口调试助手APP,以及STM32L431RCT6单片机。 1、配置使能串口: 2、ctrl+s生成代码。 3、在usart.h中添加头文件。 4、在usart.c中实现printf。  编译代码。可以在main.c文

    2024年02月09日
    浏览(52)
  • STM32ADC同步采样

    本文主要讲解如何实现STM32ADC同步采样。 所需工具: 开发板:STM32F103RCT6 STM32CubeMX IDE: Keil-MDK 同步采样可以让多个ADC同时采集它们各自的输入信号,并且保留它们之间的相位关系,这有助于更有效地捕捉信号的动态变化,特别是对于相位频率分析来说,它具有重要的应用价值。

    2023年04月14日
    浏览(43)
  • STM32-ADC过采样实验

    我们之前已经有过一些关于STM32-ADC的笔记和实验代码了,链接如下: 关于ADC的笔记1_Mr_rustylake的博客-CSDN博客 STM32-ADC单通道采集实验_Mr_rustylake的博客-CSDN博客 STM32-单通道ADC采集(DMA读取)实验_Mr_rustylake的博客-CSDN博客 STM32-ADC多通道输入实验_Mr_rustylake的博客-CSDN博客 首先简单

    2024年02月10日
    浏览(39)
  • STM32--ADC数值采样/附ADC采集热敏传感器使用

    目录 一丶ADC介绍 二丶ADC工作原理及管脚分布 三丶代码部分详解 (一)库函数介绍 (二)代码部分整合         ADC模块中文名为模拟/数字转换器,是12位逐次逼近型的模拟数字转换器,一般用于数值的采样   可以将引脚上连续变化的模拟电压转换为内存中存储的数字变

    2024年02月03日
    浏览(45)
  • STM32 多路ADC同时扫描采样

    在项目实际应用中,刚好有需求需要使用多路ADC同时采样,这里就选择STM32 ADC多路ADC同时采样,这里简单说明下配置过程,以及使用步骤 如下图所示,使用四路ADC输入 ADC_Voltage - 电压信号的采样,外部输入信号,交流电的输入信号,正选信号 ADC_Current - 电流电流的采样,外部

    2024年02月06日
    浏览(43)
  • stm32教程之三重ADC交错采样

    ps:本文基于stm32F407ZGT6单片机         stm32F4单片机单通道采集的最大采样率为2.4M,所以有时会难以满足较高频率的采样,于是查阅芯片手册,发现stm32F4支持多重ADC采集,利用每个通道的转换时间,错位采样,从而提高采样率,最大把采样率开到2.4*3=7.2M.  (去年初学AD

    2024年02月12日
    浏览(41)
  • MSP430 ADC12 最高采样率测试

    使用的MSP430型号为 MSP430F5529LP (Lauchpad) MSP430x5xx and MSP430x6xx Family User\\\'s Guide 给出: 其内置12位ADC的 最高采样率约为200ksps 下面详述ADC设置过程。 目录 1.设置ADC转换模式为Repeat-single-channel; 2.设置ADC的转换时钟sample-and-hold source (SHI) 3.设置定时器A为输出模式 4.设置输入通道

    2023年04月08日
    浏览(44)
  • STM32F3系列 ADC采样单端采样模式(基于LL库)

    芯片型号:STM32f303RBT6 开发软件:MDK5 CubeMX VS Code 目录 STM32F3系列 ADC 单端采样(基于LL库) 目录 引言 1 基础知识 1.1ADC转换基本流程 1.2 时钟树 1.3 关键参数 1.3.1 位数 1.3.2 触发信号 1.3.3 采样时间 1.3.4 转换时间 2 CubeMx 配置步骤 2.1 确定输入通道 2.2 配置ADC 2.3 输出设置 2.4 MD5 设置

    2024年02月08日
    浏览(37)
  • 基于STM32的ADC采样序列频谱分析

      本文主要介绍对ADC采集得到的数字序列进行FFT频谱分析。   确定采样率除了要遵守奈奎斯特采样定律意外还需要考虑一些问题。在数字系统中,我们只能进行一些有限的离散的运算,对于有限长的序列,我们不可能拿它去做DTFT,只能做DFT。这就需要 把有限长序列也当

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包