《MSP430-AD采样用法》由会员分享,可在线阅读,更多相关《MSP430-AD采样用法(11页珍藏版)》请在金锄头文库上搜索。
1、msp430 AD初始化流程msp430AD初始化流程:单片机 ADC编程的流程如下:1初始化,void Adc12int()ADC12CTL0 &= ADC12ENC;/使AD模块处在初始状态ADC12CTL0 = ADC12MSC+ADC12SHT0_15+ADC12SHT1_15;/使用外部部3.3V参照电压,使用采样保持器。/#define ADC12ENC (0x0002u)#define ADC12MSC (0x0080u)#define ADC12SHT0_15 (15*0x100u)#define ADC12SHT1_15 (15*0x1000u)/一、寄存器ADC12CTL0
2、:SHT1 SHT0 MSC 2.5V REFON ADC120N ADC12TOVIE ADC12TVIE ENC ADC12SC15-12 11-87 6 54 3 2 1 0ADC120SC:ADC12内部时钟源(启动)ENC 位为转换容许,1容许AD转换,0时为不容许转换,即复位状态;由于ADC12CTL0和ADC12CTL1的某些位和ADCMCTILX的所有位必须在ENC位复位时才干修改。因而初始过程为:ENC复位设立转换启动方式打开参照电压选择采样保持器时间SHT1 SHT0 采样保持定期器1和0,定义转换成果中转换时序与采样时钟ADC12CLK的关系。程序设立都为1,MSC 多次
3、采样、转换位。有效条件:CONSE!=0,MSC1表达仅初次转换同SHI信号的上升沿触发采定期器,采样转换在前一转换完毕立即进行。程序中设立为1MSC的作用是:在顺序转换或反复转换中,若MSC置1则只需最初有一种触发信号,随后都会在前一次转换完毕后,自动进入下一次转换。否则的话,每次转换完毕都还需另个的触发信号。-DATASHEET.2.5V 内部参照电压选择位:01.5V,12.5VREFON 参照电压控制位 0内部参照电压关闭 1则为打开ADC12ON 内核控制位 0关闭 1打开ADC12TOVIE 转换时间溢出中断容许 0没发生转换时间溢出 1则表达发生ADC12TVIE溢出中断容许位
4、0没有发生溢出 1表达发生溢出以上5个位都设立0。整个初始化意为选择使用外部参照源2 打开ADC12模块void Adc12Open(uchar doit)if(doit=0)ADC12CTL0 |= ADC12ON;ADC12CTL0 |= ADC12ENC; /容许转换else if(doit=100)ADC12CTL0 &= ADC12ON; /不容许转换ADC12CTL0 &= ADC12ENC;#define ADC12ON (0x0010u)#define ADC12ENC (0x0002u)寄存器ADC12CTL0中的ADC12ON复位时关闭ADC12的内核,置位时打开ADC12
5、的内核。寄存器同初始化,其实也可以看是初始化的一种环节。即将ADC12CTL0中的ADC12ON和ENC置位,打开内核,容许ADC转换。3 AdcDo函数设立AD转换所使用的的模式和转换首地址。AdcDo(0,2);void AdcDo(uint adr,uchar mod)ADC12CTL1 = (adr12)+ADC12SHP+(mod1);/SHP意思为由采样定期器控制采样#define ADC12SHP (0x0200u)二、操作寄存器ADC12CTL1CSSTARTADD SHS SHP ISSH ADC12DIV ADC12SSEL CONSEQ ADC12BUSY 15-12 1
6、1-10 9 8 7-54-3 2-1 0CSSTARTADD 转换存储器地址位,这4位表达二进制0-15分别相应ADC12MEM0-15.可以定义单次转换地址或序列转换的首地址。(程序中设立为0)扩展采样模式(SHP=0):即SHI信号直接决定采样时间,参看DATASHEET和时序图;脉冲采样模式时,SHI只负责输入一种上升沿信号来触发采样,而采样时间由ADC12CLK及SHT0_X或SHT1_X决定。SHS 采样触发输入源选择位0 ADC12SC1 TIMER_A.OUT12 TIMER_B.OUT03 TIMER_B.OUT1 (程序中为1)SHP 采样信号(SAMPCON)选择控制位0
7、 采样信号源自采样触发输入信号1 源自采样定期器,由输入信号(即采样信号)的上升沿触发采样定期器。 (程序中为0)ISSH 采样输入信号方向控制位 (程序中为0) 0 同向输入 1 反向输入ADC12DIV ADC12时钟源分频因子选择位,分频因子为3位二进制加一。 (程序中为0即分频因子为0)ADC12SSEL ADC12内核时钟源选择0ADC12内部时钟源:ADC120SC1ACLK2MCLK3SMCLK(程序中为0,选ADC内部时钟)CONSEQ 转换模式选择位0单通道单次转换 1 序列通道单次转换2 单通道多次转换 3序列通道多次转换(程序中为2)ADC12BSSY ADC12忙标志0
8、 表达没有活动 1表达正处在采样期间、转换、或序列转换期间。 (程序中为0)注:只用于单通道单次转换模式3-15位只能大ENC=0的前提下才干修改,因而初始化时是让ENC为复位。4SetTongDaovoid SetTongDao(uchar tongdao,uchar eos,uchar mem,uchar verf,uchar inter) 4 0 0 2 1char *pmem_ctl= ADC12MCTL;pmem_ctl += mem;/pmem_ctl加上mem,所指向的即为要操作的寄存器ADC12MCTLx*pmem_ctl = tongdao+ (eos7) + (verf4)
9、;if(inter=0)ADC12IE &= (0x1mem);elseADC12IE |= (0x1mem);此函数的功能是设立通道。有关通道的设立是针对某个转换存储器,应当设立如下内容:1、选择转换通道 2、选择的通道与否是转换序列的最后一种通道3、选择转换参照电压 4、转换完毕后与否触发中断 指针变量pmem_ctl指向ADC12MCTL的基地址,参数mem的取值为015,相应各存储器。pmem_ctl加上mem,所指向的即为要操作的寄存器ADC12MCTLx,在本模块中,应当至少使转换序列的最后一种通道转换完毕时触发中断,以便置位等待转换结束的标志变量Wait,Wait为全局变量。实质
10、是对三、ADC12MCTL转换存储控制寄存器的操作:EOSSREFINCH76 543 2 1 0EOS为序列结束控制位 0表达序列还没有结束EOS=1表达此序列中最后一次转换(程序中取0,取外部中断源)EOS位于所需AD通道中最后一种通道的ADC12MCTLX中,并且,中断容许是最后一种通道相应的ADC12MEMX相应的中断容许置位。SREF 参照电压选择位 (程序中取2/3)0VR+=AVCC,VR=AVSS(采集两路模拟电源)1VR+=VREF+ (内部参照源),VR-=AVSS(模拟电源)23 VR+=VAREF+(外部参照),VR-=AVSS(模拟电源)4 VR+=AVCC,VR-=
11、VREF_/VEREF-5 VR+ =VREF+,VR-= REF_/VEREF-6,7 VR+=VEREF+,VR-=VREF-/VEREF-INCH (程序中取0)0-7 A0-A7 (此为8路外部通道)8 VEREF+9 Veref+10 片内温度传感器输出11(Avcc-Avss)/2 此为4路内部部通道12-15 A12 - A15其中四、ADC12IE为中断使能寄存器ADC12IE.15 14 .1 0意思1为容许相应的中断标志位ADC12IFG.X在置位时发生中断祈求,0为严禁中断。顺便简介五、ADC12IFG各位为1表达转换结束,且转换成果已经装入转换存储器,0表达ADC12M
12、EMX被仿问。因此上面的程序中,如果INTER=则严禁中断,1则容许中断。5 Adc12Govoid Adc12Go()uchar q0;for(q0=0;q016;q0+) AdMemq0=0;Wait=0;ADC12CTL0 |= ADC12ENC+ADC12SC;/转换开始while(Wait=0) ; /等待转换结束此函数功能为使用软件方式AD,全局数组ADMEM用来存储转换成果,在启动前前16位所有赋0并复位转换完毕标示WAIT。启动转换的措施为将ADC12CTL0的ENC置位,将寄存器在ADC12CTL0中的ADC12SC位置位,ADC12采样保持时间与采样频率(由于近期要做简易示
13、波器,要用到高频采样,因此对MSP430内部的ADC12进行了某些实验。技术手册中阐明ADC12的最高采样频率可以达到200ksps,但是通过研究发现ADC12的最高采样频率只有165KHz;采样保持时间与转换时间是不可避免的。如下为微控资料:【采样与转换】ADC12完毕对一种模拟信号模数转换过程由两部分构成:采样保持和转换.完毕采样转换周期时间=采样保持时间+转换时间采样保持时间:由产生SAMPCON信号开始到结束所需时间,这期间ADC进行对模拟信号采样保持。在脉冲采样模式时(SHP=1),采样时间:Tsample4 x ADC12CLK x N。式中,Tsample为采样保持时间,ADC12CLK为ADC12内核时钟周期,N则由SHT1(SHT0)的4位二进制码决定。采样保持时间与ADC12模块的等效输入电路有关。从ADC12模块输入看ADC内部等效为一种电阻(2K)与一种电容(30pf)相串联.这个内部RC常数直接影响着最小的采样保持时间参数.因此,在采样转换中有一种最小采样保持时间值概念.这个最小采样保持时间值从上式中可以看出是由ADC12C