msp430adc12转换模块总结.docx
- 文档编号:3394780
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:15
- 大小:156.61KB
msp430adc12转换模块总结.docx
《msp430adc12转换模块总结.docx》由会员分享,可在线阅读,更多相关《msp430adc12转换模块总结.docx(15页珍藏版)》请在冰点文库上搜索。
msp430adc12转换模块总结
MSP430单片机ADC12模块的总结
在MSP430单片机系列中,很多都有12通道12位的ADC(简称ADC12模块)。
如MSP430F13X、MSP430F14X、MSP430F15X、MSP430F16X、MSP430F43X、MSP430F44X等系列。
较其它带A/D转换的单片机,MSP430的ADC精度高,设计灵活巧妙,给数据采集系统的设计带来了全新的思路。
一、ADC模块的常用性能指标
1、分辨率
表示输出数字量变化一个相邻数码所需输入模拟电压的变化量,它定义为转换器的满刻度电压与2n的比值,其中n为ADC的位数。
如:
一个12位的ADC模块的分辨率为满电压刻度的1/4096。
2、量化误差
是由于有限数字对模拟数值进行离散取值(量化)而引起的误差。
其理论值为一个单位分辨率,即±1/2LSB。
3、转换精度
其反映的是ADC模块在量化上与理想的ADC模块进行AD转换的差值。
4、转换时间
指ADC模块完成一次AD转换所需的时间,转换时间越短越能适应输入信号的变化。
此外还应考虑所使用的电压范围、工作温度、接口特性以及输出形式等性能。
二、ADC12主要特点
1、12位转换精度,1位非线性微分误差,1位非线性积分误差;
2、有多种时钟源提供给ADC12模块,而且模块本身内置时钟发生器;
3、内置温度传感器;
4、Timer_A/Timer_B硬件触发器;
5、拥有8个可配置的外部模拟信号采样通道,拥有4个内部通道,用于Vcc电压值、温度、外部正负电压参考的测量;
6、内置参考电源,并且参考电压有6种组合;
7、模数转换有4种模式;
8、16字转换缓存;
9、ADC12可关断内核支持超低功耗应用;
10、采样速度快,最高可达200ksps;
11、自动扫描;
12、DMA使能;
进行AD转换通常需要设置的内容有:
转换通道、采样保持、参考电压、转换时钟、转换模式、结果缓存。
三、ADC12的功能模块
Msp430单片机ADC12模块有以下五个部分组成:
(1)参考电压发生器;
(2)模拟多路器;
(3)具有采样和保持功能的12为转换内核;
(4)采样及转换所需的时序控制;
(5)转存结果缓存。
1、参考电压发生器
AD转换都需要一个基准信号,通常为电压基准。
ADC12内置参考电源,而且参考电压有6种可编程选择,分别为VR+与VR-的组合。
其中VR+(有3种):
AVCC(模拟电源正端)
VREF+(A/D转换器内部参考电源的正输出端)
VeREF+(外部参考电源的正输入端)
VR-(有3种):
AVSS(模拟电源负端)
VREF-(A/D转换器内部参考电源的负输出端)
VeREF-(外部参考电源的负输入端)
2、模拟多路器
对多个模拟信号进行采样并转换时,由于A/D只有一个转换内核,每次只能选通一个信号进行采样并转换。
ADC12配置有8路外部通道和4路内部通道:
8路外部通道:
A0~A7实现外部8路模拟信号的输入
4路内部通道:
VeREF+
VREF-或VeREF-
(AVCC-AVSS)/2
片内温度传感器的输出
4个作为待转换模拟输入信号
3、具有采样和保持功能的的12位转换器内核
ADC12是一个12位的模数转换器,并能够将数据保存在ADC12MEM转换存储器中。
该内核两个可编程的参考电压(VR+和VR-)定义转换的最大值和最小值。
当输入模拟电压等于或高于VR+时,ADC12输出满量程值0FFFH,当输入电压等于或小于VR-时,ADC12输出0。
输入模拟电压的最终结果满足公式:
ADC12模块由ADC12CTL0和ADC12CTL1两个控制寄存器完成设置。
ADC内核使能由ADC12ON位控制。
大多数情况下,只有在ENC=0时,ADC12的控制才可以被修改,在进行转换时,ENC位必须设为1。
4、采样及转换所需的时序控制
采样和转换所需要的各种时钟信号:
ADC12CLK转换时钟、SAMPCON采样及转换信号、SHT控制的采样周期、SHS控制的采样触发来源选择、ADC12SSEL选择的内核时钟源及ADC12DIV选择的分频系数等。
注意:
只有在这些时序控制电路的指挥下,ADC12各部件才能协调工作!
5、转存结果缓存
ADC12共有12个转换通道,设置了16个转换存储器,用于暂存转换结果,合理设置后,ADC12硬件会自动将转换结果存放到相应的ADC12MEMx存储寄存器中。
每个转换器ADC12MEMx都有自己对应的控制寄存器ADC12CTLx。
控制寄存器控制各个转换寄存器必须选择基本的转换条件。
四、ADC12相关寄存器
表1ADC12相关寄存器总述
寄存器类型
寄存器缩写
寄存器的含义
转换控制
寄存器
ADC12CTL0
转换控制寄存器0
ADC12CTL1
转换控制寄存器1
中断控制
寄存器
ADC12IFG
中断标志寄存器
ADC12IE
中断使能寄存器
ADC12IV
中断向量寄存器
存储寄存器
ADC12MEM0~
ADC12MEM15
存储寄存器0~15
控制寄存器
ADC12MCTL0~
ADC12MCTL15
控制寄存器0~15
(1)转换控制寄存器
表2ADC12CTL0--转换控制寄存器0
位
代号及含义
功能描述
备注
0
ADC12SC--采样/转换控制位
在ENC=1,ISSH=0时设置SHP=1,在ADC12由0变为1时启动A/D转换
用软件启动一次AD转换,需要使用一条指令来完成ADC12SC与ENC的设置
1
ENC--转换允许位
0:
ADC12为初始状态,不能启动A/D转换
1:
首次转换由SAMPCON上升沿启动
只有在ENC为高电平时,才能用软件或外部信号启动转换
2
ADC12TVIE--转换时间溢出中断允许位
0:
没发生转换时间溢出
1:
发生转换时间溢出
当前转换还没完成时,又发生一次采样请求,则会发生转换时间溢出
3
ADC12TOVIE--溢出中断允许位
0:
没发生溢出
1:
发生溢出
4
ADC12ON--ADC12内核控制位
0:
关闭ADC12内核
1:
打开ADC12内核
5
REFON--参考电压控制位
0:
内部参考电压发生器关闭
1:
内部参考电压发生器打开
6
2.5V--内部参考电压值选择位
0:
选择1.5V内部参考电压
1:
选择2.5V内部参考电压
7
MSC--多次采样/转换位
在SHP=1,MSC=0时,每次转换需要SHI信号的上升沿触发采集定时器
在CONSQ
0,MSC=1时,仅首次转换同SHI信号的上升沿触发采样定时器,而后采样转换将在一次转换完成立即进行
CONSQ
0表示当前模式不是单通道单次转换
8~11
SHT0--采样保持定时器0
定义了每通道转换结果中的转换时序与采样时钟ADC12CLK的关系。
采样周期则是ADC12CLK周期的4倍,则:
12~15
SHT1--采样保持定时器1
XX文库-让每个人平等地提升自我表3ADC12CTL1--转换控制寄存器1
位
代号及含义
功能描述
备注
0
ADC12BUSY--ADC12忙标志位
0:
表示没有活动的操作
1:
表示ADC12正处于采样期间、转换期间或序列转换期间
只用于单通道单次转换模式,在其它转换模式下,该位无效
1~2
CONSEQ--转换模式选择位
00:
单通道单次转换模式
01:
序列通道单次转换模式
10:
单通道多次转换模式
11:
序列通道多次转换模式
3~4
ADC12SSEL--ADC12内核时钟源选择位
00:
ADC12OSCADC12内部时钟源
01:
ACLK辅助时钟
10:
MCLK系统主时钟
11:
SMCLK系统子时钟
5~7
ADC12DIV分频因子选择位
分频因子为3位二进制数加1
8
ISSH——采样输入信号方向控制位
0:
采样输入信号为同向输入
1:
采样输入信号为反向输入
9
SHP——采样信号(SAMPCON)选择控制位,
0:
SAMPCON源自采样触发输入信号
1:
SAMPCON源自采样定时器,由采样输入信号的上升沿触发采样定时器
10~11
SHS——采样触发输入源选择位
00:
ADC12SC
01:
Timer_A.OUT1
10:
Timer_B.OUT0
11:
Timer_B.OUT1
12~15
CSSTARTADD——转换存储器地址位
该4位所表示的二进制数0~15分别对应ADC12MEM0~15
可以定义单次转换地址或序列转换的首地址
(2)转换存储控制寄存器
表4ADC12MCTLX--转换存储控制寄存器
位
0~3
4~6
7
代号及含义
INCH——模拟输入通道选择位
SREF——参考电压源选择位
EOS——序列结束控制位
功能
描述
0000~0111:
A0~A7
1000:
VeREF+
1001:
VREF-/VeREF-
1010:
片内温度传感器的输出
1011~1111:
(AVCC-AVSS)/2
000:
Vr+=AVcc,Vr-=Avss
001:
Vr+=VREF+,Vr-=Avss
010:
Vr+=VEREF+,Vr-=Avss
011:
Vr+=AVcc,Vr-=VREF-/VEREF-
100:
Vr+=VREF+,Vr-=VREF-/VEREF-
101:
Vr+=VEREF+,Vr-=VREF-/VEREF-
0:
序列没有结束
1:
该序列中最后一次转换
备注
(3)ADC12MEM0~ADC12MEM15转换存储寄存器
该组寄存器均为16位寄存器,用来存放A/D转换结果。
中用其中低12位,高4位在读出时为0。
(4)中断控制寄存器
表5相关中断寄存器
寄存器名称
缩写
功能描述
备注
中断标志寄存器
ADC12IFG
ADC12IFG.X=1转换结束,并且转换结果已经装入转换寄存器
ADC12IFG.X=0ADC12MEMX被访问
中断使能寄存器
ADC12IE
ADC12IE.X=1允许相应的中断标志ADC12IFG.X在置位时发生的中断请求服务
ADC12IE.X=0禁止相应的中断标志ADC12IFG.X在置位时发生的中断请求服务
中断向量寄存器
ADC12IV
ADC12是一个多源中断:
有18个中断标志(ADC12IFG.0-ADC12IFG15、ADC12TOV、ADC12OV)但是只有一个中断向量
五、ADC12转换模式
ADC12提供4种转换模式:
1、单通道单次转换
2、序列通道单次转换
3、单通道多次转换
4、序列通道多次转换
注意:
无论用户使用何种模式,都要处理以下问题
设置具体模式;输入模拟信号;选择启动信号;关注转换结束信号。
1)单通道单次转换模式要进行如下设置:
X=CSStartAdd,指向转换开始地址;
ADC12MEMx存放转换结果;
ADC12IFG.x为对应的中断标志;
ADC12MCTLx寄存器中定义了通道和参考电压。
转换完成时必须使ENC再次复位并置位(上升沿),以准备下一次转换。
在ENC复位并再次置位之前的输入信号将被忽略。
2)序列通道单次转换模式要进行如下设置:
X=CSStartAdd,指示转换开始通道;
EOS(ADC12MCTLx.7)=1标志序列中最后通道y,非最后通道的EOS位都是0,表示序列没有结束;
ADC12MEMx,…,ADC12MEMy存放转换结果;
ADC12IFG.x,…,ADC12IFG.y为对应的中断标志;
ADC12MCTLx寄存器中定义了通道和参考电压。
转换完成时必须使ENC再次复位并置位(上升沿),以准备下一次转换。
在ENC复位并再次置位之前的输入信号将被忽略。
3)单通道多次转换模式要进行如下设置:
X=CSStartAdd,指示转换开始通道;
ADC12MEMx存放转换结果;
ADC12MCTLx寄存器中定义了通道和参考电压。
该模式的停止有如下几种方法:
使CONSEQ=0,改变为单通道单次模式;
使ENC=0,直接使当前转换完成后停止;
使用单通道单次模式替换当前模式,同时使ENC=0。
4)序列通道多次转换模式要进行如下设置:
X=CSStartAdd,指示转换开始通道;
EOS(ADC12MCTLx.7)=1标志序列中最后通道y;
ADC12MCTLx寄存器中定义了通道和参考电压;
改变转换模式不必停止当前转换,一旦改变模式,将在当前序列完成后立即生效。
六、程序代码
例【1】选择外部参考源
#include"msp430x44x.h"
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;
P6SEL|=0x01;//使能A/D通道A0
ADC12CTL0=ADC12ON+SHT0_2;//打开ADC12,设置采样时钟
ADC12CTL1=SHP;//使用采样时钟
ADC12MCTL0=SREF_2;//Vr+=VeREF+(外部)
ADC12CTL0|=ENC;//使能转换
while
(1)
{
ADC12CTL0|=ADC12SC;//开始转换
while((ADC12IFG&ADC12BUSY)==0);
_NOP();
}
}
例【2】选择内部参考源
#include"msp430x44x.h"
voidmain(void)
{
ADC12CTL0=ADC12ON+SHT0_2+REFON+REF2_5V;//打开ADC12,设置采样时钟
ADC12CTL1=SHP;//使用采样时钟
ADC12MCTL0=SREF_1;//Vr+=Vref+
for(i=0;i<0x3600;i++)//为参考源启动提供延迟
{
}
ADC12CTL0|=ENC;//使能转换
while
(1)
{
ADC12CTL0|=ADC12SC;//开始转换
while((ADC12IFG&BIT0)==0);//等转换结束
_NOP();
}
}
七、总结
1、MSP430可以使用内部、外部的参考电压,内部1.5或2.5,外部0~3.3,可以通过寄存器设置,采样电压的输入范围最大为0~3.3即AVss~AVcc。
使用外部AVss~AVcc作为参考电压不够稳定,但是精度高,使用内部电压较稳定。
如:
ADC12CTL0|=REFON+REF2_5V;//打开内部电压发生器,参考电压选择为2.5V。
2、A0~A7口为外部8路模拟信号的输入通道,4路内部通道:
VeREF+、VREF-或VeREF-、(AVCC-AVSS)/2、片内温度传感器的输出,4个作为待转换模拟输入信号。
可以通过设置ADC12MCTLx转换存储控制寄存器的模拟输入通道选择位INCH。
0~7:
A0~A7
8:
VeREF+
9:
VREF-/VeREF-
10:
片内温度传感器的输出
11~15:
(AVCC-AVSS)/2
3、430单片机ADC12转换模块中有四个时钟信号源:
1:
内部时钟ADC12OSC
2:
ACLK辅助时钟
3:
MCLK系统主时钟
4:
SMCLK系统子时钟
可以通过ADC12SSELX来选择用那一种。
4、ADC12共有12个转换通道,设置了16个转换存储器,用于暂存转换结果,合理设置后,ADC12硬件会自动将转换结果存放到相应的ADC12MEMx存储寄存器中。
至于读取的话,可以直接从存储寄存器中读出数据。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- msp430adc12 转换 模块 总结