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