MSP430学习笔记(六)--模数转换器(ADC)_1

MSP430系列MCU常应用于仪器仪表控制系统中,控制或测量的对象往往是一些连续的模拟量,如温度、湿度、长度、压力、流量等,我们通常利用相应的传感器将这些物理的连续的模拟量转换为离散的电信号,再经过模数转换器(ADC)将该电信号转变为离散的数字量。该过程即为采样、(保持)、量化、编码。
这里只提一下ADC分辨率及量化误差的解释,至于其他相应概念推荐阅读MSP430G2x53/MSP430G2x13的芯片数据手册(Datasheet)P38及《Launch Pad口袋实验平台–MSP-EXP430G2篇》第十八章或其他专业书籍,需要PDF文件资源的可以去EEWORLD电子技术论坛下载。相信很多人在看一些微控制器的Datasheet的时候,都会发现类似ADC10、ADC12这样带数字的介绍,这类数字即为模数转换器(ADC)的精度,(ADC10)其量化的公式为:
分辨率公式
影响ADC转换结果的因素主要有3个:正参考电压(VR+)、负参考电压(VR-)和分辨率。比如ADC的正参考电压是3V,负参考电压是0V,分辨率是10位(2^10=1024),那么,当电压低于0V时,转换结果为0;当电压高于3V时,转换结果为1023,电压在0V-3V之间线性换算为0-1023之间的某个值。这时,ADC的分辨率就是3V/1023=2.93mV。量化误差和分辨率是统一的,量化误差是有限数字对模拟数值进行离散取值(量化)而引起的误差,因此,量化误差理论上为一个单位分辨率,即±1/2LSB,提高分辨率可以减少量化误差。
由于只介绍MSP430G2553,故这里只展示ADC10电路框图,内部寄存器框图如下:
ADC10 由上图可以看出,ADC10外设主要由参考电源电路、通道选择电路、采样保持电路、ADC内核电路、时钟源电路、触发器电路和数据传输控制器组成。ADC10的参考源可以是外部参考源也可以是内部参考源,启用内部参考源的时候,还能够将参考电压输出供外部电路使用。通道选择电路用于采样通道的选择,当对多个模拟信号进行采样并进行A/D转换时,为了共用一个转换内核,采样电路须分时的将多个模拟信号通道接通,即每次接通一个信号采样并转换。采样保持电路采集在采样时刻的电压值,并在内核转换的过程中保持不变(对高速变化的信号进行瞬时采样,即使输入的模拟信号变化比较快,也不会影响ADC的转化)。ADC内核电路完成模拟量到数字量的转换。时钟源电路用于配置ADC10模块的时钟源。触发器电路用于ADC采样速率的控制。数据传输控制器用于在CPU不介入的情况下,自动存储转换数据。
ADC10模块还提供了4种采样转换模式:单通道单次采样转换、单通道多次采样转换、多(序列)通道单次采样转换和多(序列)通道多次采样转换。采样模式由ADC10控制寄存器ADC10CTL1的CONSEQx位设置。在选定采样模式前需要设置采样通道,采样通道由模拟使能控制寄存器ADC10AEx控制,置位ADC10AEx对应位即可使能管脚的模拟输入功能。下面简要说明4种转换模式:
1.单通道单次采样转换模式:对选择的通道完成一次采样转换,转换完成的结果会被写入ADC10MEM寄存器。具体流程为1)配置CONSEQx,选择ADC10为单通道单次采样模式,置位ADC10CTL0寄存器的ADC10ON位开启ADC10模块;2)使能转换使能信号ENC,ADC10进入等待触发状态;3)ADC10SC或者Timer_A给出的触发信号到达,ADC10跳转进入采样状态;4)采样状态下,ADC10根据设置的采样保持时间完成采样,并跳转进入转换状态;5)转换状态下,ADC10耗费12个ADC10CLK周期的时间来完成转换过程;6)ADC10耗费1个ADC10CLK周期的时间,将转换结果写入ADC10MEM,中断标志位ADC10IFG置位,转换完成。需要特备注意的是,在两次转换之间必须翻转ENC的电平状态。如果在转换进行的过程中清零转换使能信号ENC,会立即停止转换过程,导致结果无效 ,所以在翻转ENC状态前可通过检测ADC10BUSY位确认转换完成。
2.单通道多次采样转换模式:对选择的通道完成连续重复的采样转换,转换完成的结果会被写入ADC10MEM寄存器。状态跳转流程有1)配置CONSEQx,选择ADC10为单通道多次采样模式,置位ADC10CTL0寄存器的ADC10ON位开启ADC10模块;2)使能转换使能信号ENC,ADC10进入等待触发状态;3)ADC10SC或者Timer_A给出的触发信号到达,ADC10跳转进入采样状态;4)采样状态下,ADC10根据设置的采样保持时间完成采样,并跳转进入转换状态;5)转换状态下,ADC10耗费12个ADC10CLK周期的时间来完成转换过程;6)ADC10耗费1个ADC10CLK周期的时间,将转换结果写入ADC10MEM,中断标志位ADC10IFG置位,一次转换完成.若此时MSC位置位,ADC10模块马上跳转到采样状态,并按照以上流程完成后续动作;如果MSC位清零,ADC10跳转到等待触发状态,在触发信号到达后完成后续操作;7)ADC10不断重复以上过程,重复完成采样转换。在转换过程中清零ENC位,会在本次转换完成后停止转换。
3.序列通道单次采样转换模式:序列通道单次采样模式会对通道序列完成一次采样转换,采样转换的序列由INCHx位选择的通道Ax开始,并递减通道编号至A0,转换结果会依次写入ADC10MEM。跟单通道单次转换相似,ENC必须在两次序列转换之间翻转电平。状态跳转流程为1)配置CONSEQx,选择ADC10为序列通道单次采样模式,置位ADC10CTL0寄存器的ADC10ON位开启ADC10模块;2)使能转换使能信号ENC,ADC10进入等待触发状态;3)ADC10SC或者Timer_A给出的触发信号到达,ADC10跳转进入采样状态,开始Ax通道的采样;4)采样状态下,ADC10根据设置的采样保持时间完成采样,并跳转进入转换状态;5)转换状态下,ADC10耗费12个ADC10CLK周期的时间来完成转换过程;6)ADC10耗费1个ADC10CLK周期的时间,将转换结果写入ADC10MEM,中断标志位ADC10IFG置位,一个通道转换完成.若此时MSC位置位,ADC10模块马上跳转到采样状态,开始A(x-1)通道的采样;如果MSC位清零,ADC10跳转到等待触发状态,在触发信号到达完成后开始A(x-1)通道的采样;7)依次进行各个通道的采样转换,直到A0通道转换完成。在转换过程中清零ENC位,会在序列转换完成后停止转换。
4.序列通道多次采样转换模式:序列通道多次采样模式会对通道序列完成连续多次的采样转换,采样转换的序列由INCHx位选择的通道Ax开始,并递减通道编号至A0,转换结果会依次写入ADC10MEM。在转换流程上和序列通道单次采样流程一致,只是不断地重复序列通道单次采样流程。在转换过程中清零ENC位,会在本次转换完成后停止转换。
**这里抱歉一下,当时写这篇内容的时候大约是在去年寒假前,当时需要准备毕设,就转去忙毕设、毕业、就业等相关事宜了,最近想接着写的时候,我已经忘记了当时的思路,迟迟下不了笔,接下来我会换一种思路和方式完成下面的内容,这篇就到这儿了吧。**

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值