• MSP430之ADC


    一、ADC12转换模式
    ADC12提供4种转换模式:
    单通道单次转换
    对选定的通道进行单次转换要进行如下设置:
    x=CSStartAdd,指向转换开始地址
    ADC12MEMx存放转换结果
    ADC12IFG.x为对应的中断标志
    ADC12MCTLx寄存器中定义了通道和参考电压
    转换完成时必须使ENC再次复位并置位(上升沿),以准备下一次转换。在ENC复位并再次置位之前的输入信号将被忽略。
    序列通道单次转换
    对序列通道进行单次转换要进行如下设置:
    x=CSStartAdd,指示转换开始地址
    EOS(ADC12MCTLx.7)=1标志序列中最后通道y,非最后通道的EOS位都是0,表示序列没有结束。
    ADC12MEMx,...ADC12MEM.y存放转换结果
    ADC12IFG.x,...ADC12IFG.y为对应的中断标志
    ADC12MCTLx寄存器中定义了通道和参考电压
    转换完成时必须使ENC再次复位并置位(上升沿),以准备下一次转换。在ENC复位并再次置位之前的输入信号将被忽略。
    单通道多次转换
    对选定的通道进行多次转换,直到关闭该功能或ENC=0。进行如下设置:
    x=CSStartAdd,指向转换开始地址
    ADC12MEMx存放转换结果
    ADC12MCTLx寄存器中定义了通道和参考电压
    在这种模式下,改变转换模式,不必先停止转换,在当前正在进行的转换结束后,可改变转换模式。该模式的停止可有如下几种办法:
    使用CONSEQ=0的办法,改变为单通道单次模式。
    使用ENC=0直接使当前转换完成后停止。
    使用单通道单次模式替换当前模式,同时使ENC=0
    序列通道多次转换
    对序列通道进行多次转换,直到关闭该功能或ENC=0。进行如下设置:
    x=CSStartAdd,指示转换开始地址
    EOS(ADC12MCTLx.7)=1标志序列中最后通道y。
    ADC12MCTLx寄存器中定义了通道和参考电压
    改变转换模式,不必先停止转换。一旦改变模式(单通道单次模式除外),将在当前序列完成后立即生效
    不论用户使用何种转换模式,都要处理以下问题:
    设置具体模式
    输入模拟信号
    关注转换结束信号
    存放转换数据以及采用查询或者中断方式读取数据
    二、ADC12寄存器说明
    -----------------------------------------------------------------------
    寄存器类型           寄存器缩写                寄存器含义
    -----------------------------------------------------------------------
    转换控制寄存器       ADC12CTL0                 转换控制寄存器0
                         ADC12CTL1                 转换控制寄存器1
    -----------------------------------------------------------------------
    中断控制寄存器       ADC12IFG                  中断标志寄存器
                         ADC12IE                   中断使能寄存器
                         ADC12IV                   中断向量寄存器
    -----------------------------------------------------------------------
    存储及其控制寄存器   ADC12MCTL0~ADC12MCTL15   存储控制寄存器0~15
                         ADC12MEM0~ADC12MEM15     存储寄存器0~15
    -----------------------------------------------------------------------
    1.ADC12CTL0 控制寄存器0,各位定义:
    bit15~12   bit11~8   bit7   bit6   bit5   bit4      bit3         bit2        bit1   bit0
    SHT1        SHT0       MSC    2.5V   REFON  ADC12 ON  ADC12 TOVIE  ADC12 TVIE   ENC    ADC12 SC
    ADC12SC——采样/转换控制位。在不同条件下,ADC12SC的含义如下所示:
    --------|---------------------------------------------------------------------
    ENC=1,  | SHP=1:  ADC12SC由0变为1启动A/D转换; A/D转换完成后ADC12SC自动复位
    ISSH=0  |  SHP=0:  ADC12SC保持高电平采样; ADC12SC复位时启动一次转换
    --------|---------------------------------------------------------------------
    ENC——转换允许位。
    0:ADC12为初始状态,不能启动A/D转换;
    1:首次转换由SAMPCON上升沿启动
    ADC12TVIE——转换时间溢出中断允许位(当前转换还没完成时,又发生一次采样请求,则会发生转换时间溢出)
    0:没发生转换时间溢出
    1:发生转换时间溢出
    ADC12OVIE——溢出中断允许位(当ADC12MEMx中原有数据还没有读出,而又有新的转换结果数据要写入时,则发生溢出)
    0:没发生溢出
    1:发生溢出
    ADC12ON——ADC12内核控制位
    0:关闭ADC12内核
    1:打开ADC12内核
    REFON——参考电压控制位
    0:内部参考电压发生器关闭
    1:内部参考电压发生器打开
    2.5V——内部参考电压的电压值选择位
    0:选择1.5V内部参考电压
    1:选择2.5V内部参考电压
    MSC——多次采样转换位(CONSEQ<>0表示当前转换模式不是单通道单次转换)
    -----------|---------------------------------------------------------------------------------------------
    有效条件   | MSC值    含义
    SHP=1      |  0       每次转换需要SHI信号的上升沿触发采样定时器    
    CONSEQ<>0  |  1       仅首次转换由SHI信号的上升沿触发采样定时器,而后采样转换将在前一次转换完成后立即进行
    -----------|---------------------------------------------------------------------------------------------
    SHT1、SHT0——采样保持定时器1,采样保持定时器0
    分别定义保存在转换结果寄存器ADC12MEM8~ADC12MEM15和ADC12MEM0~ADC12MEM7中的转换采样时序与采样时钟ADC12CLK的关系。采样周期是ADC12CLK周期乘4的整数倍,即:
    SHITx   0   1   2   3   4    5   6   7   8   9  10   11    12~15
    n       1   2   4   8  16   24  32  48  64  96  128  192   256
    2.ADC12CTL1 转换控制寄存器1(大多数3~15位,只有在ENC=0时才可被修改),各位定义:
    bit15~12    bit11~10  bit9  bit8   biy7~5     bit4~3      bit2~1    bit0
    CSSTARTADD   SHS        SHP   ISSH   ADC12 DIV   ADC12 SSEL   CONSEQ     ADC12 BUSY
    CSSTARTADD——转换存储器地址位。该4位所表示的二进制数0~15分别对应ADC12MEM0~15。可以定义单次转换地址或序列转换的首地址。
    SHS——采样触发输入源选择位。
    0:ADC12SC
    1:Timer_A.OUT1
    2:Timer_B.OUT0
    3:Timer_B.OUT1
    SHP——采样信号(SAMPCON)选择控制位。
    0:SAMPCON源自采样触发输入信号
    1:SAMPCON源自采样定时器,由采样输入信号的上升沿触发采样定时器
    ISSH——采样输入信号方向控制位
    0:采样输入信号为同向输入
    1:采样输入信号为反向输入
    ADC12DIV——ADC12时钟源分频因子选择位。分频因子为该3位二进制数加1
    ADC12SSEL——ADC12内核时钟源选择
    0:ADC12内部时钟源——ADC12OSC
    1:ACLK
    2:MCLK
    3:SMCLK
    CONSEQ——转换模式选择位
    0:单通道单次转换模式
    1:序列通道单次转换模式
    2:单通道多次转换模式
    3:序列通道多次转换模式
    ADC12BUSY——ADC12忙标志(只用于单通道单次转换模式,在其它转换模式下,该位无效)
    0:表示没有活动的操作
    1:表示ADC12正处于采样期间、转换期间或序列转换期间
    3.ADC12MEM0~ADC12MEM15 转换存储寄存器
    该组寄存器均为16位寄存器,用来存放A/D转换结果。中用其中低12位,高4位在读出时为0
    4.ADC12MCTLx 转换存储控制寄存器(所有位只有在ENC为低电平时可修改,在POR时各位被复位)
    对于每个转换存储器有一个对应的转换存储器控制寄存器,所以在进行CSSTARTADD转换存储器地址位设置的同时,也确定了ADC12MCTLx。该寄存器各位含义如下:
    bit7   bit6~4   bit3~0
    EOS    SREF      INCH
    EOS——序列结束控制位
    0:序列没有结束
    1:该序列中最后一次转换
    SREF——参考电压源选择位
    0:Vr+=AVcc,Vr-=AVss
    1:Vr+=VREF+,Vr-=AVss
    2,3:Vr+=VEREF+,Vr-=AVss
    4:Vr+=AVcc,Vr-=VREF-/VEREF-
    5:Vr+=VREF+,Vr-=VREF-/VEREF-
    6,7:Vr+=VEREF+,Vr-=VREF-/VEREF-
    INCH——选择模拟输入通道
    0~7:A0~A7
    8:VeREF+
    9:VREF-/VeREF-
    10:片内温度传感器的输出
    11~15:(AVCC-AVSS)/2
    5.ADC12IFG 中断标志寄存器 为16位,其中中断标志位ADC12IFG.x对应于转换存储寄存器ADC12MEMx。各位含义如下:
    bit15   bit14    ......      bit1   bit0
    IFG15   IFG14    ......      IFG1   IFG0
    ADC12IFG.x置位:转换结束,并且转换结果已经装入转换存储寄存器。
    ADC12IFG.x复位:ADC12MEMx被访问。
    6.ADC12IE 中断使能寄存器 为16位,对应于ADC12IFG寄存器。各位含义如下:
    bit15   bit14    ......     bit1   bit0
    IE.15   IE.14    ......     IE.1   IE.0
    ADC12IE.x=1:允许相应的中断标志位ADC12IFG.x在置位时发生的中断请求服务。
    ADC12IE.x=0:禁止相应的中断标志位ADC12IFG.x在置位时发生的中断请求服务。
    7.ADC12IV 中断向量寄存器
    ADC12是一个多源中断:有18个中断标志(ADC12IFG.0~ADC12IFG.15与ADC12TOV,ADC12OV),但只有一个中断向量。所以需要设置这18个标志的优先级顺序,按照优先级顺序安排中断标志的响应,高优先级的请求可以中断正在服务的低优先级。如下表所示:
    -------------------------------------------------------------------------------------------------
    ADC12中断标志ADC12IFG 
    -------------------------------------------------------------------------------------------------
    b15 b14  b13  b12  b11  b10   b9  b8  b7  b6  b5  b4  b3  b2  b1  b0  ADC12TOV ADC12OV ADC12IV                  
    0    0    0    0    0    0    0   0   0   0   0   0   0   0   0   0     0       0       0
    X    X    X    X    X    X    X   X   X   X   X   X   X   X   X   X     X       1       2
    X    X    X    X    X    X    X   X   X   X   X   X   X   X   X   X     1       0       4
    X    X    X    X    X    X    X   X   X   X   X   X   X   X   X   1     0       0       6
    X    X    X    X    X    X    X   X   X   X   X   X   X   X   X   0     0       0       8
    ...  ...  ...  ...  ...  ...  ... ... ... ... ... ... ... ... ... ...   ...    ...      ...    
    X    1    0    0    0    0    0   0   0   0   0   0   0   0   0   0     0       0       34
    1    0    0    0    0    0    0   0   0   0   0   0   0   0   0   0     0       0       36
    -------------------------------------------------------------------------------------------------    
    各中断标志会产生一个0~36的偶数。
    ADC12OV和ADC12TOV会在访问ADC12IV后自动复位。但在响应了ADC12IFG.x标志对应的中断服务之后,相应的标志不自动复位,用以保证能处理发生溢出的情况。

  • 相关阅读:
    Silverlight 5 系列学习之一
    WPF中数据绑定问题
    细说ASP.NET Forms身份认证 别人写的不过很透彻就转来了以后用时再看
    再学IHanlder 类----------------关于Asp.net与iis原理网上看博客收获写一个验证码用一般处理程序记的好长时间前就写过不过现在再看有点不一样的感觉
    Oracle常用查看表结构命令
    尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。(遇到了这个问题网上查了下保存下来)
    TxetBox PasswordChar 模式解除
    屏幕抖动一 下
    oracle 日期问题 网上找到自己查阅时方便
    day5-Dns
  • 原文地址:https://www.cnblogs.com/lycstronger/p/3977482.html
Copyright © 2020-2023  润新知