MSP430F2417的ADC12模塊功能比較強(qiáng)大,因此也比較復(fù)雜。 ADC12共有8個(gè)模擬輸入通道A0~A7,與通用IO口P6.0~P6.7共用相同的管腳。因此,如果想使用某一個(gè)模擬通道,必須先定義的管腳功能,這通過設(shè)置IO口的功能選擇寄存器(Function Select Registers)PxSEL和PxSEL2來完成。比如,如果想選擇A3通道,可以通過下面兩條語句:
本文引用地址:
http://m.butianyuan.cn/article/201611/321573.htm P6SEL |= (0x01 << 3);
P6SEL2 &= ~(0x01 << 3);
ADC12模塊的工作時(shí)鐘,可以用自己的時(shí)鐘ADC12OSC(大概是5MHz的頻率,精度不高),也可以使用系統(tǒng)時(shí)鐘ACLK、MCLK或者SMCLK,這通過寄存器ADC12CTL1的ADC12SSELx標(biāo)志位來設(shè)置,工作時(shí)鐘可以分頻,通過ADC12CTL1的ADC12DIVx位來設(shè)置。
所有的模數(shù)轉(zhuǎn)換,都分為采樣保持和轉(zhuǎn)換兩個(gè)步驟。外部的模擬信號總是在變化的,而模數(shù)轉(zhuǎn)換需要穩(wěn)定的電壓,因此,在轉(zhuǎn)換之前,需要先鎖定(保持)信號。F2417通過一個(gè)電阻R1和一個(gè)對地的電容C1來進(jìn)行采樣保持(實(shí)際上就是對C1進(jìn)行充電)。R1的最大值為2K,C1的最大值為40pF,這兩個(gè)值決定了在保持一定的采樣精度的前提下的最短的采樣保持時(shí)間。但是,外部模擬信號總是有輸出電阻的,因此,采樣時(shí)間還與外部信號的輸出電阻有關(guān)系。困難在于,我們有時(shí)候很難知道外部信號的輸出電阻,因此就很難估計(jì)合適的采樣保持時(shí)間。所以,根據(jù)阻容網(wǎng)絡(luò)的充放電原理,采樣保持時(shí)間越長,信號的誤差就會越小,我們要盡量延長采樣保持的時(shí)間。但這樣又帶來另外一個(gè)問題,根據(jù)奈奎斯特采樣定理,只有采樣頻率大于信號中最高頻率的2倍,采樣之后的數(shù)字信號才能重現(xiàn)原始信號,一般實(shí)際應(yīng)用中采樣頻率要是信號最高頻率的5~10倍。所以,采樣保持時(shí)間也不能太長。
ADC12有一個(gè)SHI信號,SHI信號的上升沿開啟采樣保持和模數(shù)轉(zhuǎn)換過程。SHI信號可以有四種來源:ADC12CTL0寄存器的ADC12SC位,Timer_A1,Timer_B0,Timer_B1,這通過ADC12CTL1寄存器的SHSx位來選擇。
ADC12有兩種AD模式,逐次觸發(fā)模式和連續(xù)模式,這通過ADC12CTL0的MSC位來確定。MSC=0,則每次AD過程都需要SHI信號來觸發(fā),MSC=1,則只有第一次需要SHI信號來觸發(fā),然后就連續(xù)不停的轉(zhuǎn)換。
這兩種AD模式適用于不同的情況:如果需要盡快完成AD轉(zhuǎn)換,而不關(guān)心信號的頻率,那么可選擇連續(xù)模式。如果關(guān)心信號的頻率,比如需要進(jìn)行FFT變換,那么就要采用逐次觸發(fā)模式,并且選擇合適的SHI信號源,只有這種方式,才能保證準(zhǔn)確的采用頻率,也才能正確地重建新號。
在選擇逐次觸發(fā)AD模式時(shí),又會有兩種采樣保持模式可選:擴(kuò)展模式(Extended Sample Mode)和脈沖模式(Pulse Sample Mode)。這通過ADC12CTL1寄存器的SHP位來選擇。
在擴(kuò)展模式(SHP=0)中,SHI信號為1時(shí),始終進(jìn)行采樣保持,在SHI信號的下降沿,采樣保持停止,開始進(jìn)行轉(zhuǎn)換,再經(jīng)過13個(gè)AD工作時(shí)鐘周期,轉(zhuǎn)換完成。
在脈沖模式(SHP=1)中,采樣保持時(shí)間受ADC12CTL0寄存器的SHT1x位和SHT0x位來控制,可選擇從4個(gè)AD工作時(shí)鐘周期到1024個(gè)AD工作時(shí)鐘周期。采樣保持停止后,再經(jīng)過13個(gè)AD工作時(shí)鐘周期,轉(zhuǎn)換完成。
評論