找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9383|回复: 3
收起左侧

MSP430G2553内部ADC原理及例程说明

[复制链接]
ID:553107 发表于 2019-6-2 17:43 | 显示全部楼层 |阅读模式
1.1   概述

MSP430单片机拥有内置的ADC功能,在一些高级单片机系列上是ADC12,在低级单片机系列上是ADC10,两者的主要区别是分辨率的不同,我们的G2553内置的就是ADC10。

1.2   ADC10特性

·高达200ksps的转换速率;

·固定的10位转换;

·具有采样保持功能,并可选采样周期;

·可以通过软件代码或TimerA初始化转换;

·可选的片内(1.5V或2.5V)或片外参考电压;

·支持8个外部输入通道;

·内部输入通道支持温度检测,VCC和外部参考(+、—);

·可选的转换时钟源;

·单通道单次/多次、序列通道单次/多次,共4种转换模式;

·ADC内核和参考电压都可单独关闭;

·具有一个支持自动存储转换结果的数据转换控制器(DTC);

1.3   ADC10结构

图1-1 ADC10结构

1.3.1  ADC10内核-SAR和采样保持电路

中间两块橙色的区域,右边五边形的是一个“10-bit SAR”,翻译过来就是一个10位精度的逐次逼近比较型的ADC内核, ADC转换就是在这里完成的。左边橙色矩形区域的“Sample and Hold”即采样保持电路,它将外部或者内部的模拟信号进行保持以实现ADC转换过程中的信号稳定。

1.3.2  ADC10信号通道和转换模式

采样保持电路可以将左边选择器(红色梯形区域)内的信号进行保持。由于SAR只有一个,要对里里外外这么多信号都进行AD转换就必须按顺序来,一个一个选择性地输入,这个选择器就是用来选择要输入的外部或者内部模拟信号。上面绿色矩形框控制着选择器选择哪个信号以及是否自动按序列选择。

1.3.3  ADC10时钟和采样触发源

ADC10模块像TimerA模块一样也需要有时钟信号支持,有了时钟,SAR这个逐次逼近比较内核才能够运行(因为它是逐次的嘛),形象地说时钟就是SAR的动力。我们看到蓝色区域,这里可以选择ACLK、MCLK和SMCLK,另外还有一个ADC10OSC,这个时钟是ADC10模块自带的,频率在5MHz左右。和TimerA一样,这些时钟也可以通过分频器进行分频。采样信号可以由ADC10SC位或TimerA的三个比较匹配器输出端来触发。而且通过ISSH可以设置是上边沿触发还是下边沿触发。采样触发信号发出一次,ADC10就会立即从通道选择器中选择要采样的信号经过采样保持电路进入到SAR中进行AD转换。

1.3.4  ADC10参考源

AD转换,其本质就是对外部信号进行量化(就是在幅度上对信号进行编码),既然是量化,那么肯定要有参考的标准, SAR这个五边形的橙色框,上面有“VR-”和“VR+”两个输入端,这两个输入端就是SAR的参考源。其中,负端可以由SREF2来决定由AVSS(可认为GND)或者VREF-/VeREF-来输入得到。而正端可以由SREF0、SREF1来决定由内部或者外部参考电平输入得到。内部支持1.5V或者2.5V,外部由外部引脚输入得到。ADC10同时支持将内部参考电平输出到外部,而且为了保持其低功耗的优势,还可以由REFBURST来降低平均电流。

1.3.5  ADC转换值和DTC电路

沿着SAR下面空心粗箭头看到一个棕红色框“ADC10MEM”,这个寄存器就是用来存放得到的AD值的。我们只要读取ADC10MEM的值就可以得到AD值了。为了实现低功耗设计,MSP430支持DTC功能,就是数据传输控制功能,它可以支持将ADC10MEM中的数据自动存放至RAM、Flash或者其他外设中而不用CPU干预。

1.3.6  温度传感器

MSP430内置了一个温度传感器(浅蓝色方框),可以通过设置输入通道为0x0A来选择输入温度模拟量。这样的设计让我们不用外部温度芯片就可以实现简单的温度检测。


·12~11-ADC10SHT:ADC10采样保持时间

  00:4 x ADC10CLKs

  01:8 x ADC10CLKs

  10:16 x ADC10CLKs

  11:64 x ADC10CLKs

·10-ADC10SR:ADC10采样速率,该位用于选择最大采样速率下的参考电平缓冲驱动能力。ADC10SR置1可以减少参考电平缓冲器的电流消耗

  0:参考电平缓冲器支持最大速率到200ksps

  1:参考电平缓冲器支持最大速率到50ksps

·9-REFOUT:参考电平输出允许位,用来控制是否输出参考电平

  0:参考输出关闭   1:参考输出打开

·8-REFBURST:参考电压输出控制位(REFOUT=1时有效)

  0:参考电压持续对外输出

  1:只有在采样转换期间参考电压持续对外输出

·7-MSC:多次采样/转换控制位(只在序列或多次转换模式下有效)

  0:每次采样与转换时,由SHI的上升沿触发

  1:由SHI的第一个上升沿触发采样定时器,后面的采样与转换由前一次转换完成后立即执行。

·6-REF2_5V:参考电压发生器的电压值选择位(REFON=1时有效)

  0:1.5V    1:2.5V

·5-REFON:参考电压发生器控制位,控制是否打开内部参考电压

  0:关闭内部参考电压发生器   1:打开内部参考电压发生器

·4-ADC10ON:ADC10控制位,控制是否使用ADC10模块

  0:关闭ADC10模块   1:打开ADC10模块

·3-ADC10IE:ADC10中断允许控制位,控制是否允许ADC10中断

  0:中断禁止  1:中断允许

·2-ADC10IFG:ADC10中断标志位,如果ADC10MEM已经装满转换结果,该位置1.当中断申请呗接受后,它自动复位,可以由软件复位。在使用DTC时,当完成一个数据块的传递时,该位置1

  0:无中断产生   1:有中断产生

·1-ENC:ADC10转换使能位,用来控制是否进行转换

  0:ADC10禁止   1:ADC10使能

·0-ADC10SC:软件可控的采样/转换控制位。ADC10SC和ENC必须用一条指令同时置1。ADC10SC位可自动复位

  0:无采样/转换开始  1:开始采样/转换

1.4.3  ADC10CTL1:ADC10控制寄存器1
ADC10CTL1   ADC10控制寄存器1
15
14
13
12
11
10
9
8
INCHx
SHSx
ADC10DF
ISSH
7
6
5
4
3
2
1
0
ADC10DIVx
ADC10SSELx
CONSEQx
ADC10BUSY

·15~12-INCH:输入通道选择,用来选择进行单次转换的通道或序列转换的最高通道,详细见下面的表格


·11~10-SHS:采样/保持输入信号源选择位
  00:ADC10SC位
  01:TimerA.OUT1
  10:TimerA.OUT0
  11:TimerA.OUT2
·9-ADC10DF:ADC10数据格式选择位
  0:二进制格式(右对齐)  1:二的补码格式(左对齐)
·8-ISSH:采样/保持输入信号反向控制位
  0:采样输入信号不反向  1:采样输入信号反向
·7~5-ADC10DIV:ADC10时钟分频选择位,分频系数=ADC10DIV+1
·4~3-ADC10SSEL:ADC10时钟源选择位
  00:ADC10OSC  01:ACLK  10:MCLK  11:SMCLK
·2~1-CONSEQ:转换模式选择位
  00:单通道单次转换  01:序列通道单次转换
  10:单通道多次转换  11:序列通道多次转换
·0-ADC10BUSY:ADC10忙标志位,该位指示采样或转换正在进行
  0:表明没有正在进行的转换  1:表明一个序列,采样或者转换正在进行


1.5   ADC10的采样和转换过程

图1-2 ADC10采样和转换过程时序图

首先是我们的四个采样触发源(ADC10SC和3个TimerA OUT)产生了触发信号,也就是SHI信号产生了一个脉冲,此时采样开始,SAMPCON信号也同时置高。然后采样时钟进行一段时间的计数,在计数时,SAMPCON保持高电平不变,在tsync+tsample时间后,采样完成,此时停止采样并进入到转换阶段。经过13个ADC10CLK时钟后,转换阶段也完成了。

1.6   ADC10的四种转换模式1.6.1  单通道单次模式

该模式对由INCH选择的单通道进行一次采样和转换。ADC结果写入到ADC10MEM。当ADC10SC触发一次转换时,连续的转换也可以通过将ADC10SC置位来触发。当使用其他任何触发源来启动转换时,ENC必须在每次转换间隔离,在ENC复位并再次置位前的采样信号将被忽略。转换流程见下图:

1.6.2  序列通道单次转换模式

该模式对一个序列的通道进行一次采样和转换。序列通道将自动选择INCHx到A0作为当前通道。每个ADC结果都存放到ADC10MEM。最后一个通道也就是A0转换完毕后序列转换就结束。当ADC10SC启动一次,连续的转换也可通过设置ADC10SC位来启动。当任何其他触发源用来启动转换时,ENC必需在每次序列转换间隔离,在ENC复位并再次置位前的采样信号将被忽略。转换流程见下图:



1.6.3  单通道多次转换模式

该模式对由INCHx选定的通道进行连续采样和转换。每次ADC转换结果都存放到ADC10MEM中。转换流程见下图:





1.6.4  序列通道多次转换模式

该模式对序列通道进行重复采样和转换。序列通道为从INCHx选择的通道到A0。每次ADC结果都存放到ADC10MEM。通道A0转换完成后序列转换结束,下一个启动信号重新启动序列转换。转换流程见下图:






1.7   ADC10编程实例1.7.1  实验简述

通过编写程序,利用内部集成的温度传感器,将测得的温度模拟量信号传华为数字量信号,并通过LCD屏幕显示出来。


完整的Word格式文档51黑下载地址:
19. MSP430G2553内部ADC原理及例程说明.docx (572.6 KB, 下载次数: 108)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:585250 发表于 2019-7-16 16:51 | 显示全部楼层
非常感谢,很有帮助
回复

使用道具 举报

ID:9987 发表于 2019-8-28 05:46 | 显示全部楼层
谢谢,学习430需要看看
回复

使用道具 举报

ID:584195 发表于 2021-8-17 09:15 | 显示全部楼层
还是看不大懂呀,这寄存器理解起来有点难度!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表