MSP430 ADC12採樣分析

   

    AD部分主要配置ADC12模塊的時鐘、參考源、採樣通道、採樣模式、存儲和採樣保持。
    我就一個部分一個部分來
    第一個是ADC12模塊的時鐘,這個是模塊運行時的時鐘,跟採樣定時器是兩個概念,曾經我有一段時間被迷惑住了。這個由ADC12CTL1裏面的ADC12SSEL和ADC12DIV配置,可以選擇ADC12OSC/ACLK/SMCLK/MCLK,TI例程裏面好像都是選擇的ADC12OSC,這個是5MHZ,不過頻率容易受外界影響而改變。這個部分配置好了就得到了ADC12CLK。
    第二個參考源,這個部分可以用單片機的參考模塊控制,也可以用ADC12模塊控制,REFCTL0 &= ~REFMSTR;這句就是設置ADC模塊直接控制參考源,ADC12REFON,ADC12REF2_5V打開參考模塊,參考模塊輸出的參考電壓爲2.5V。ADC12CTL2 |= ADC12REFOUT;這句設置參考電壓輸出,可以輸出也可以不輸出。ADC12MCTL14 = ADC12SREF_1+ADC12INCH_14;這句是設置通道14的電壓參考模式是:REF+:2.5V,REF-:AVSS.
    第三個採樣通道,跟這個有關的寄存器有ADC12MCTL和ADC12CTL1的ADC12CSTARTADD。第一種單通道採樣,ADC12MCTL選擇採樣的輸入通道,ADC12CSTARTADD的值選擇這個通道採樣的值存入哪個存儲寄存器內。比如:
ADC12CTL1 |= ADC12CSTARTADD3+ADC12CSTARTADD2+ADC12CSTARTADD1;
ADC12MCTL14 = ADC12INCH_14;
上面這兩句就是採樣通道14,通道14採樣的值存入到ADC12MEM14裏面。如果你不設置ADC12CSTARTADD的值的話,採樣的值默認存入ADC12MEM0裏面。
第二種序列通道採樣,ADC12MCTL選擇採樣的輸入通道,ADC12CSTARTADD的值選擇這個序列採樣的值首個存入的存儲寄存器。比如:
 ADC12MCTL0 = ADC12INCH_0;
 ADC12MCTL1 = ADC12INCH_1;
 ADC12MCTL2 = ADC12INCH_2;
 ADC12MCTL3 = ADC12INCH_3;
 ADC12MCTL4 = ADC12INCH_4;
 ADC12MCTL5 = ADC12INCH_5;
 ADC12MCTL6 = ADC12INCH_6; 
 ADC12MCTL7 = ADC12INCH_7+ADC12EOS;
我並沒有配置ADC12CSTARTADD的值,所以開始採樣後,通道0的值存入ADC12MEM0,通道1的值存入ADC12MEM1裏面,依次類推。
    第四個採樣模式,這個按照用戶指導裏面的模式示意圖來寫程序就可以,配置用ADC12CTL1裏面的ADC12CONSEQ來配置。
    第五個存儲沒什麼要寫的,在第三個採樣通道里面提到的就可以了,我主要講下最後一個採樣保持,這個部分是我領悟的新的知識點。
    採樣保持是由採樣定時器觸發信號SHI信號引起的,這個部分曾經迷惑了我好長一段時間。SHI信號由ADC12CTL1的ADC12SHS配置,有4個選擇:ADC12OSC/TIMERA.OUT1/TIMERB.OUT0/TIMERB.OUT1,這裏由定時A指的是定時器A0,定時器B指的是定時器B0,我驗證過A1/B1是不能用的,只能用A0或B0。紅色部分我修改下(文章是之前寫的,今天修改下紅色的部分)這個定時器的選用是根據具體的片子用的,參考具體的數據手冊。採樣保持分兩種模式,由ADC12CTL1的ADC12SHP位控制,ADC12SHP=0時是擴展模式,ADC12SHP=1時是脈衝模式。第一種擴展模式,SHI信號上升沿開始採樣,上升沿後的高電平時間即爲採樣時間,SHI信號下降沿進行採樣結果轉換,轉換需要13個ADC12CLK。第二種脈衝模式,SHI信號觸發採樣定時器,採樣定時器就是控制你什麼時候開始採樣,什麼時候開始轉換,採樣定時器由ADC12CTL0的ADC12SHT0和ADC12SHT1配置,在採樣定時器時間內進行採樣,採樣後就立即進行採樣結果轉換。如果這時你的ADC12MSC=1的話,如果的單通道採樣就會不停進行單通道採樣轉換,如果是序列通道,就會一直採樣轉換直到ADC12EOS=1.如果ADC12MSC=0,則採樣結束,下一次採樣的時間是下一個SHI信號的上升沿來臨時。
    好了,就這麼多,以後如果有增加了再寫了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章