文章目录

  • 第11章 模数转换器ADC
  • **11.1 F28335内部的ADC模块**
  • **11.1.1 ADC模块的特点**
  • **11.1.2 ADC的时钟频率和采样频率**
  • **11.2 ADC模块的工作方式**
    • **11.2.1 双序列发生器模式下顺序采样**
    • **11.2.2 双序列发生器模式下并发采样**
    • **11.2.3级联模式下顺序采样**
    • **11.2.4 级联模式下并发采样**
    • **11.2.5 序列发生器连续自动序列化模式和启动/停止模式**
  • **11.3 ADC模块的中断**
  • **11.4 参考电压的选择**
  • **11.5 ADC模块的寄存器**
  • **11.6 ADC采样的例程**

第11章 模数转换器ADC

  • 现实世界很多量都是模拟量,在DSP中,所有的量都是数字量。
  • Analog-to-Digital converter=ADC模数转换器
  • 将模拟量转化为数字量,通常需要4步:
    • 采样:将一个时间上连续变化的模拟量转化为时间上离散变化的模拟量
    • 保持:将采样结果存储起来,直到下次采样
    • 量化:将采样电平归化为与直接进的离散数字电平
    • 编码:将量化后的结果按照一定数制形式表示
  • ADC的关键指标:
    • 分辨率:数字量变化一个最小量时,模拟信号的变化量
    • 转换速率
    • 量化误差
    • 偏移误差
    • 满刻度误差
    • 线性度

11.1 F28335内部的ADC模块

  • F28335内部12位分辨率的、具有流水线结构的模数转换器
  • 由16个采样通道,分为两组ADCINA0ADCINA7、ADCINB0ADCINB7
  • A组通道采用采样保持器A,即S/H/A
  • B组通道采用采样保持器B,即S/H/B
  • 虽然有多通道输入,内部只有一个转换器,同一时刻只能对一路输入信号进行转换
  • 当有多路输入信号需要转换时,ADC模块通过前端模拟多路复用器analog mux进行控制,同一时刻,只允许让一路信号输入到ADC的转换器中。
  • 通过控制analog mux中的开关闭合,使得选择的通道信号进入转换器中
  • 用户可以通过编程为序列发生器指定需要转换的通道顺序
  • F28335的ADC模块有2个8状态的序列发生器SEQ1和SEQ2,分别对应两个通道,此时ADC工作于两个独立的8通道模块之上。当ADC级联成一个16通道的模块时,SEQ1和SEQ2也级联成一个16状态的序列发生器SEQ。
  • F28335共有16个结果寄存器ADCRESULT0~ADCRESULT15

11.1.1 ADC模块的特点

  1. 16个模拟量输入引脚,ADCINA0ADCINA7、ADCINB0ADCINB7

  2. 具备12位的ADC内核,内置两个采样保持器S/H-A、S/H-B

  3. ADC模块的时钟频率最高可配置为25MHz,采样频率最高为12.5MSPS,即每秒最高完成12.5个百万次的采样。Million samples per second

  4. ADC模块的自动序列发生器可以按两个独立的8状态序列发生器来运行,也可以按一个16为序列发生器来运行,每个通道都允许系统对同一个通道进行多次采样。

  5. ADC采样输入的范围为03V,电压过高或者为负电压都会烧毁DSP,通常输入的采样信号先经过调理电路,使其输入电压范围03V。

  6. ADC的参考电压是影响AD转换精度的重要因素,需要注意ADC参考源的电压纹波处理。

  7. F28335可以通过寄存器来选择使用内部参考电压还是外部参考电压

  8. ADC对一个序列的通道进行转换需要有一个启动信号,或者触发信号,当启动信号到来时,相应的序列发生器就开始对其内部预先指定的通道进行转换。

  9. ADC模块共有16个结果寄存器,每个结果寄存器都是16位。采用左对齐,低4位被忽略。

  10. 模拟输入电压为3V,结果寄存器中数字量是0xFFF0,即65520;模拟输入电压为0V,结果寄存器中数字量是0x0000,即0,ADC转换特性为线性关系。则ADResult = ((Vinput-ADCLO)/3.0)*65520,ADResult是结果寄存器中的数字量,Vinput是模拟电压输入值,ADCLO是ADC转换的参考电平,通常将其与AGND接在一起,即ADCLO的值为0。

  11. 模拟输入电压为3V,将ADResult中的值右移4位,值为OxFFF,即4095,(ADResult>>4) = ((Vinput-ADCLO)/3.0)*4095,实际中都是读取ADResult中的值,然后求得实际输入的模拟电压值。

11.1.2 ADC的时钟频率和采样频率

  • ADC模块的时钟ADCLK:

    • XCLKIN指外部输入的时钟,就是外部晶振产生的时钟

      • m≠0 : SYSCLKOUT = OSCCLK*m/2
      • m=0 : SYSCLKOUT = OSCCLK
    • HSPCLK指高速外设时钟
      • n≠0 : HSPCLK = SYSCLKOUT / (2*n)
      • n=0 : HSPCLK = SYSCLKOUT
    • 当PCLKCR[ADCENCLK]=1,HSPCLK输入ADC模块
    • AD控制寄存器ADCTRL3的0~3位ADCLKPS,可以对HSPCLK进行分频
    • AD控制寄存器ADCTRL1的CPS位可以提供一个二分频
    • ADCLK指ADC模块的时钟:
      • ADCLKPS=0 : ADCLK = HSPCLK / (CPS+1)
      • ADCLKPS≠0 : ADCLK = HSPCLK / (2ADCLKPS(CPS+1))
  • AD时钟频率不能超过25MHz

  • 设置完ADCLK,需要选择采样窗口的大小

  • 对于S/H电路,采样窗口就是采样时间,或者采样脉冲的宽度

  • 为了获得准确和稳定的ADC转换值,通常需要设置较低的时钟频率和较大的采样窗口。

  • ADC的时钟频率是指每秒有多少个时钟脉冲,取决于外部的时钟输入和各个环节的倍频或者分频的系数。

  • 转换时间:ADC完成一个通道或者一个序列的转换所需要的时间。由ADC的时钟频率来决定

  • 采样频率:ADC模块每秒能够完成多少次采样,取决于启动ADC的频率

  • 例如每隔1ms启动一次ADC,则采样频率就是1kHz,采样频率跟时钟频率和转换时间没有关系,根据采样定理和工程需求来确定。

  • F28335最高采样频率为12.5MSPS

11.2 ADC模块的工作方式

  • 序列发生器:为需要转换的通道安排转换的顺序。

  • 双序列发生器方式:2个8状态发生器

  • 单序列发生器方式(级联方式):2个8序列发生器级联为1个16位发生器

  • ADC可以对一个序列多个通道的转换进行排序,每当ADC收到一个转换的请求,便能自动完成这个序列所有通道的转换。在转换过程中,模拟复用器选择序列发生器中指定的通道进行转换,转换后的结果保存到相应的结果寄存器中。

  • F28335的16个通道可以通过编程来为序列发生器中需要转换的通道安排顺序。这个功能需要通过ADC输入通道选择序列控制寄存器ADCCHSELSEQx(x=1,2,3,4)来实现。每个输入通道选择序列控制寄存器都是16位的,被划分成4个功能位CONVxx,每一个功能位占据寄存器4位。在AD转换过程中,当前CONVxx的位定义了要进行转换的引脚。

  • 双序列发生器模式下时,SEQ1使用ADCCHSELSEQ1、2;SEQ2使用ADCCHSELSEQ3、4

  • 单序列发生器模式下,SEQ使用ADCCHSELSEQ1、2、3、4

  • 采样方式:

    • 顺序采样:

      • 按照序列发生器内的通道顺序一个通道的采样,即ADCINA0、ADCINA1…
      • 通道选择控制寄存器中CONVxx的4位均用来定义引脚,最高位0,表示采样A组,最高位1,表示采样B组,低3位定义的是偏移量,决定某一组内的某个特定引脚。
      • CONVxx=0101b,选择的通道是ADCINA5
      • CONVxx=1011b,选择的通道是ADCINB3
    • 并发采样:
      • 一对一对通道进行采样,即ADCINA1&ADCINB1、ADCINA2&ADCINB2…
      • 通道选择控制寄存器中CONVxx的最高位被舍弃,低3位有效
      • CONVxx=0101b,采样保持器S/H-A对通道ADCINA5进行采样,紧接着采样保持器S/H-B对通道ADCINB5进行采样
      • CONVxx=1011b,采样保持器S/H-A对通道ADCINA35进行采样,紧接着采样保持器S/H-B对通道ADCINB3进行采样
  • 最大转换通道寄存器ADCMAXCONV,决定了一个采样序列所要进行转换的通道总数。

    • 当ADC工作于双序列模式时,SEQ1使用位MAXCONV1_0MAXCONV1_2,即ADCMAXCONV[0:2],SEQ2使用位MAXCONV2_0MAXCONV2_2,即ADCMAXCONV[4:6]
    • 当ADC工作于级联模式时,SEQ使用位MAXCONV1_0~MAXCONV1_3,即ADCMAXCONV[0:3]
    • 最大通道数等于MAXCONVn+1,如果某个序列发生器需要转换6个通道,则MAXCONVn的值为5

11.2.1 双序列发生器模式下顺序采样

  • 使用序列发生器SEQ1、SEQ2

  • 最大转换通道寄存器MAXCONV1和MAXCONV2,两个位都是7

  • SEQ1用到采样通道选择控制寄存器ADCCHSELSEQ1&2,SEQ2用到采样通道选择控制寄存器ADCCHSELSEQ3&4

  • 在双序列发生器模式下,SEQ1&2是独立工作的,但是ADC转换模块只有1个,SEQ1的优先级高于SEQ2的优先级

  • 如果在ADC转换SEQ1序列的时候,SEQ2序列仍在等待,这是SEQ1又产生了一个转换请求,则当ADC转换完成之后,仍然先响应SEQ1的转换请求,SEQ2继续等待。

11.2.2 双序列发生器模式下并发采样

  • ADC工作于双序列模式下,需要序列发生器SEQ1和SEQ2
  • 最大转换通道寄存器用到位MAXCONV1和MAXCONV2,2个位的值是3
  • SEQ1需要用到通道选择控制寄存器ADCCHSELSEQ1,SEQ2需要用到通道选择控制寄存器ADCCHSELSEQ3

11.2.3级联模式下顺序采样

  • 级联模式下,SEQ1与SEQ2级联成16状态的序列发生器SEQ

  • 需要对16个通道进行采样,MAXCONV1=15

  • 顺序采样,需要用到ADCCHSELSEQ1&2&3&4

  • 双序列模式下的顺序采样与级联模式下的顺序采样区别:

    1. 最大转换通道寄存器设置不同
    2. 通道选择控制寄存器使用不同

11.2.4 级联模式下并发采样

  • MAXCONV1=7
  • SEQ用到通道选择控制寄存器ADCCHSELSEQ1&2
  • 最多使用级联模式下的顺序采样
  • 需要计算瞬时功率,可以采样并发采样,一路采集电压,一路采集电流

11.2.5 序列发生器连续自动序列化模式和启动/停止模式

  • ADC序列发生器工作流程:

  • 根据ADC控制寄存器ADCCTRL1的位CONT RUN状态的不同,ADC序列发生器可工作于连续自动序列化模式或者启动/停止模式

    • CONT RUN=1,连续自动序列化模式,为了避免重写数据,必须确保在下一次转换序列开始前,读取结果寄存器。
    • CONT RUN=0,启动/停止模式,完成一次序列转换后,为了再一次转换,需要手动复位序列发生器,使得状态指针重新指向CONV00,否则状态指针将指向CONV08,然后必须等待转换请求SOC的到来。手动复位序列发生器SEQ1的方式:AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;
    • 通常选择启动/停止模式,该模式下比较容易设置ADC采样的频率,1s内启动多少次ADC的转换,采样频率就是多少。

11.3 ADC模块的中断

  • 当序列发生器完成一个序列的转换时,会对该序列发生器的中断标志位进行置位,如果该发生器的中断使能,则ADC模块向PIE控制器提出中断请求。
  • 工作在双序列模式时,2个序列发生器可以单独设置中断标志位和使能位
  • 工作在级联模式时,设置序列发生器SEQ1的中断标志位和使能位便可以产生ADC转换的中断。
  • 双序列模式下,产生的中断都是ADCINT,位于PIE控制器第一组第6个
  • ADC模块的序列发生器支持两种中断方式:
    1. 中断请求出现在每一个序列转换结束时,每转换完一个序列,便产生一个中断
    2. 中断请求出现在每隔一个序列转换结束时
    3. 可以通过控制寄存器ADCCTRL2的中断方式使能控制位来设置

11.4 参考电压的选择

  • 参考电压是影响AD转换精度的一个重要因素。
  • F28335内部的ADC通过ADCREFSEL来选择使用内部参考电压还是外部参考电压。
  • 默认采用内部参考电压。

11.5 ADC模块的寄存器

  • 位于外设0地址单元内的结果寄存器地址(0x0B000x0B0F)支持DMA直接访问,DMA访问无需通过总线,支持CPU的直接访问,位于外设2地址单元内的结果寄存器(0x71080x7117)不支持DMA访问

11.6 ADC采样的例程

  • 若ADC模块工作与级联模式,实现对引脚ADCINA07、ADCINB0B7的采样。
  • 建议对于不使用的ADC引脚,最好将其接地,采样的数据就是0

28335学习之《模数转换器ADC》相关推荐

  1. [007]嵌入式学习:模数转换器-ADC

    目录 [本文为百问网&韦东山[物联网智能家居实战训练营]学习笔记系列] 引言 模数转换器(ADC)是嵌入式开发中重要的常见外设.MCU通过它感知外界环境变化,进行对应处理,实现各种功能. 1 ...

  2. STM32F4_模数转换器(ADC)详解

    目录 1. ADC是什么 2. ADC主要特性 3. ADC框图 3.1 ADC开关控制 3.2 ADC时钟 3.3 通道选择 3.4 单次转换模式和连续转换模式 3.5 时序图 3.6 模拟看门狗 ...

  3. STM32 CubeMX学习:7. ADC模数转化

    STM32 CubeMX学习:7. ADC模数转化 系列文章目录 前期的准备 点亮 LED 闪烁 LED 定时器闪烁LED PWM控制LED亮度 常见的PWM设备 按键的外部中断 ADC模数转换 串口 ...

  4. 高速模数转换器(ADC)的INL/DNL测量

    高速模数转换器(ADC)的INL/DNL测量 Aug 20, 2009 摘要:尽管积分非线性和微分非线性不是高速.高动态性能数据转换器最重要的参数,但在高分辨率成像应用中却具有重要意义.本文简要回顾了 ...

  5. 基于FPGA的模数转换器(ADC)或数模转换器

    选择时首先要确定转换信号所需的采样频率.这个参数不仅将影响转换器的选择,同时也会影响对FPGA的选择,这样才能确保器件能够满足所需的处理速度及逻辑封装要求.转换器的采样频率至少为信号采样频率的2倍.因 ...

  6. 6. 模数转换器ADC

    6. 模数转换器ADC 6.1 ADC结构及寄存器说明 6.2 ADC设计实例 6.2.1 用ADC1规则通道实现外部模拟信号的模数转换 6.2.2 用ADC1注入通道实现内部温度传感器的温度测量 6 ...

  7. STM32F407霸天虎HAL库学习笔记——使用ADC采集MQ135的数据并通过OLED显示

    STM32F407霸天虎HAL库学习笔记--使用ADC采集MQ135的数据并通过OLED显示 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil MQ135.c MQ135.h main函 ...

  8. STM-32:ADC模数转换器—ADC单通道转换/ADC多通道转换

    目录 一.ADC 模数转换器 1.1ADC简介 1.2 逐次逼近型ADC工作原理 1.3STM32中的ADC基本结构 1.4STM32中ADC的输入通道 1.5STM32中的ADC的四种转换模式 1. ...

  9. STM32学习笔记(七) ADC模数转换测电平(普通和DMA模式)

    嵌入式系统在微控制领域(温度,湿度,压力检测,四轴飞行器)中占据着重要地位,这些功能的实现是由微处理器cpu(如stm32)和传感器以及控制器共同完成的,而连接他们,使它们能够互相正常交流的正是本小节 ...

最新文章

  1. python是软件吗-python运行环境是什么
  2. Netty系列之一开始使用
  3. 电脑装不装网卡有什么区别
  4. jdeveloper_适用于JDeveloper 11gR2的Glassfish插件
  5. JMeter学习(三十一)Access Log Sampler
  6. 优秀自我简介200字_全球战疫 翰墨传情——东方盛世杯网络公益书画展优秀作品【二】...
  7. mysql中订单产品名,Ecshop后台订单列表增加”商品名”检索字段
  8. LeetCode 945. 使数组唯一的最小增量
  9. 搜狗云输入法对外提供调用体验
  10. 【Driver】协作安装程序
  11. 新手菜鸟防***必备知识
  12. ADI收发器新品-ADRV9002特性与对比(AD9361/71/ADRV9009)
  13. 2022年iOS面试题简答题
  14. [ESXI6.5集成realtek网卡的镜像
  15. 基于Vue使用Arco Design组件封装一个七牛云上传图片的函数
  16. FileZilla的下载与安装以及简单使用(有图解超简单)
  17. 苹果拍照怎么显示地点和时间_手机拍照自带功能,照片上能添加时间和地点?一键按下搞定...
  18. 全球及中国医用管材行业需求调研与竞争趋势研究报告2022版
  19. vim打开的文件无法使用:wq保存的问题
  20. Flash新手教程:打造拟真生态水族鱼缸-为鱼缸照片添加效果

热门文章

  1. 企业微信具有水印功能吗?如何设置?
  2. WordPress主题 wpdx 响应式CMS/Blog 开源无限制版本含用户中心主题[v3.5版]
  3. 【测试分析案例】Parasoft案例研究:医疗器械软件验证与合规性
  4. 职称以考代评的专业有哪些_中级职称以考代评和评审的区别
  5. 基于xDSL宽带网络测试系统的TL1通信协议设计与实现
  6. Ubuntu18.04安装Realtek网卡驱动
  7. 用MOS管构成H桥的心得
  8. 计算机考研调查报告,最新2020全国研究生调查报告出炉!21考研人一定要看!
  9. 微博自动关注原理讲解
  10. rman备份报RMAN-00571、RMAN-00569、RMAN-03009