0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MSP430 ADC12模塊的組成_ADC12寄存器說(shuō)明

汽車(chē)玩家 ? 來(lái)源:電子發(fā)燒友網(wǎng) ? 2018-04-10 17:55 ? 次閱讀

一、簡(jiǎn)單介紹:

ADC12模塊中是由以下部分組成:輸入的16路模擬開(kāi)關(guān)(外部8路,內(nèi)部4路),ADC內(nèi)部電壓參考源,ADC12內(nèi)核,ADC時(shí)鐘源部分,采集與保持/觸發(fā)源部分,ADC數(shù)據(jù)輸出部分,ADC控制寄存器等組成。

四種采樣模式:

MSP430 ADC12模塊的組成_ADC12寄存器說(shuō)明

(1)單通道單次轉(zhuǎn)換模式

(2)序列通道單詞轉(zhuǎn)換模式

(3)單通道多次轉(zhuǎn)換模式

(4)序列通道多次轉(zhuǎn)換模式

個(gè)人覺(jué)得(3)模式應(yīng)該是使用較多的,

對(duì)選定的通道進(jìn)行多次轉(zhuǎn)換,直到關(guān)閉該功能或ENC=0。進(jìn)行如下設(shè)置:

x=CSStartAdd,指向轉(zhuǎn)換開(kāi)始地址

ADC12MEMx存放轉(zhuǎn)換結(jié)果

ADC12MCTLx寄存器中定義了通道和參考電壓

在這種模式下,改變轉(zhuǎn)換模式,不必先停止轉(zhuǎn)換,在當(dāng)前正在進(jìn)行的轉(zhuǎn)換結(jié)束后,可改變轉(zhuǎn)換模式。該模式的停止可有如下幾種辦法:

使用CONSEQ=0的辦法,改變?yōu)閱瓮ǖ绬未文J健?/p>

使用ENC=0直接使當(dāng)前轉(zhuǎn)換完成后停止。

使用單通道單次模式替換當(dāng)前模式,同時(shí)使ENC=0

ADC控制寄存器

ADC12CTL0 轉(zhuǎn)換控制寄存器0

ADC12CTL1 轉(zhuǎn)換控制寄存器1

ADC12IE 中斷使能寄存器

ADC12IFG 中斷標(biāo)志寄存器

ADC12IV 中斷向量寄存器

ADC12MEM0-15 存儲(chǔ)控制寄存器0-15

ADC12MCTL0-15 存儲(chǔ)控制寄存器0-15

一般做法:在大循環(huán)里開(kāi)始轉(zhuǎn)換,轉(zhuǎn)換完畢引發(fā)中斷,我們?cè)谥袛嗬镉涗洸⑻幚磙D(zhuǎn)換數(shù)據(jù)。

MSP430 ADC12模塊的組成_ADC12寄存器說(shuō)明

二、ADC12寄存器說(shuō)明

寄存器類(lèi)型 寄存器縮寫(xiě) 寄存器含義

轉(zhuǎn)換控制寄存器 ADC12CTL0 轉(zhuǎn)換控制寄存器0

ADC12CTL1 轉(zhuǎn)換控制寄存器1

中斷控制寄存器 ADC12IFG 中斷標(biāo)志寄存器

ADC12IE 中斷使能寄存器

ADC12IV 中斷向量寄存器

存儲(chǔ)及其控制寄存器 ADC12MCTL0~ADC12MCTL15 存儲(chǔ)控制寄存器0~15

ADC12MEM0~ADC12MEM15 存儲(chǔ)寄存器0~15

1.ADC12CTL0 控制寄存器0,各位定義:

bit15~12 bit11~8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

SHT1 SHT0 MSC 2.5V REFON ADC12 ON ADC12 TOVIE ADC12 TVIE ENC ADC12 SC

ADC12SC——采樣/轉(zhuǎn)換控制位。在不同條件下,ADC12SC的含義如下所示:

ENC=1, | SHP=1: ADC12SC由0變?yōu)?啟動(dòng)A/D轉(zhuǎn)換; A/D轉(zhuǎn)換完成后ADC12SC自動(dòng)復(fù)位

ISSH=0 | SHP=0: ADC12SC保持高電平采樣; ADC12SC復(fù)位時(shí)啟動(dòng)一次轉(zhuǎn)換

ENC——轉(zhuǎn)換允許位。

0:ADC12為初始狀態(tài),不能啟動(dòng)A/D轉(zhuǎn)換;

1:首次轉(zhuǎn)換由SAMPCON上升沿啟動(dòng)

ADC12TVIE——轉(zhuǎn)換時(shí)間溢出中斷允許位(當(dāng)前轉(zhuǎn)換還沒(méi)完成時(shí),又發(fā)生一次采樣請(qǐng)求,則會(huì)發(fā)生轉(zhuǎn)換時(shí)間溢出)

0:沒(méi)發(fā)生轉(zhuǎn)換時(shí)間溢出

1:發(fā)生轉(zhuǎn)換時(shí)間溢出

ADC12OVIE——溢出中斷允許位(當(dāng)ADC12MEMx中原有數(shù)據(jù)還沒(méi)有讀出,而又有新的轉(zhuǎn)換結(jié)果數(shù)據(jù)要寫(xiě)入時(shí),則發(fā)生溢出)

0:沒(méi)發(fā)生溢出

1:發(fā)生溢出

ADC12ON——ADC12內(nèi)核控制位

0:關(guān)閉ADC12內(nèi)核

1:打開(kāi)ADC12內(nèi)核

REFON——參考電壓控制位

0:內(nèi)部參考電壓發(fā)生器關(guān)閉

1:內(nèi)部參考電壓發(fā)生器打開(kāi)

2.5V——內(nèi)部參考電壓的電壓值選擇位

0:選擇1.5V內(nèi)部參考電壓

1:選擇2.5V內(nèi)部參考電壓

MSC——多次采樣轉(zhuǎn)換位(CONSEQ《》0表示當(dāng)前轉(zhuǎn)換模式不是單通道單次轉(zhuǎn)換)

有效條件 | MSC值 含義

SHP=1 | 0 每次轉(zhuǎn)換需要SHI信號(hào)的上升沿觸發(fā)采樣定時(shí)器

CONSEQ《》0 | 1 僅首次轉(zhuǎn)換由SHI信號(hào)的上升沿觸發(fā)采樣定時(shí)器,而后采樣轉(zhuǎn)換將在前一次轉(zhuǎn)換完成后立即進(jìn)行

SHT1、SHT0——采樣保持定時(shí)器1,采樣保持定時(shí)器0

分別定義保存在轉(zhuǎn)換結(jié)果寄存器ADC12MEM8~ADC12MEM15和ADC12MEM0~ADC12MEM7中的轉(zhuǎn)換采樣時(shí)序與采樣時(shí)鐘ADC12CLK的關(guān)系。采樣周期是ADC12CLK周期乘4的整數(shù)倍,即:

SHITx 0 1 2 3 4 5 6 7 8 9 10 11 12~15

n 1 2 4 8 16 24 32 48 64 96 128 192 256

2.ADC12CTL1 轉(zhuǎn)換控制寄存器1(大多數(shù)3~15位,只有在ENC=0時(shí)才可被修改),各位定義:

bit15~12 bit11~10 bit9 bit8 biy7~5 bit4~3 bit2~1 bit0

CSSTARTADD SHS SHP ISSH ADC12 DIV ADC12 SSEL CONSEQ ADC12 BUSY

CSSTARTADD——轉(zhuǎn)換存儲(chǔ)器地址位。該4位所表示的二進(jìn)制數(shù)0~15分別對(duì)應(yīng)ADC12MEM0~15??梢远x單次轉(zhuǎn)換地址或序列轉(zhuǎn)換的首地址。

SHS——采樣觸發(fā)輸入源選擇位。

0:ADC12SC

1:Timer_A.OUT1

2:Timer_B.OUT0

3:Timer_B.OUT1

SHP——采樣信號(hào)(SAMPCON)選擇控制位。

0:SAMPCON源自采樣觸發(fā)輸入信號(hào)

1:SAMPCON源自采樣定時(shí)器,由采樣輸入信號(hào)的上升沿觸發(fā)采樣定時(shí)器

ISSH——采樣輸入信號(hào)方向控制位

0:采樣輸入信號(hào)為同向輸入

1:采樣輸入信號(hào)為反向輸入

ADC12DIV——ADC12時(shí)鐘源分頻因子選擇位。分頻因子為該3位二進(jìn)制數(shù)加1

ADC12SSEL——ADC12內(nèi)核時(shí)鐘源選擇

0:ADC12內(nèi)部時(shí)鐘源——ADC12OSC

1:ACLK

2:MCLK

3:SMCLK

CONSEQ——轉(zhuǎn)換模式選擇位

0:?jiǎn)瓮ǖ绬未无D(zhuǎn)換模式

1:序列通道單次轉(zhuǎn)換模式

2:?jiǎn)瓮ǖ蓝啻无D(zhuǎn)換模式

3:序列通道多次轉(zhuǎn)換模式

ADC12BUSY——ADC12忙標(biāo)志(只用于單通道單次轉(zhuǎn)換模式,在其它轉(zhuǎn)換模式下,該位無(wú)效)

0:表示沒(méi)有活動(dòng)的操作

1:表示ADC12正處于采樣期間、轉(zhuǎn)換期間或序列轉(zhuǎn)換期間

3.ADC12MEM0~ADC12MEM15 轉(zhuǎn)換存儲(chǔ)寄存器

該組寄存器均為16位寄存器,用來(lái)存放A/D轉(zhuǎn)換結(jié)果。中用其中低12位,高4位在讀出時(shí)為0

4.ADC12MCTLx 轉(zhuǎn)換存儲(chǔ)控制寄存器(所有位只有在ENC為低電平時(shí)可修改,在POR時(shí)各位被復(fù)位)

對(duì)于每個(gè)轉(zhuǎn)換存儲(chǔ)器有一個(gè)對(duì)應(yīng)的轉(zhuǎn)換存儲(chǔ)器控制寄存器,所以在進(jìn)行CSSTARTADD轉(zhuǎn)換存儲(chǔ)器地址位設(shè)置的同時(shí),也確定了ADC12MCTLx。該寄存器各位含義如下:

bit7 bit6~4 bit3~0

EOS SREF INCH

EOS——序列結(jié)束控制位

0:序列沒(méi)有結(jié)束

1:該序列中最后一次轉(zhuǎn)換

SREF——參考電壓源選擇位

0:Vr+=AVcc,Vr-=AVss

1:Vr+=VREF+,Vr-=AVss

2,3:Vr+=VEREF+,Vr-=AVss

4:Vr+=AVcc,Vr-=VREF-/VEREF-

5:Vr+=VREF+,Vr-=VREF-/VEREF-

6,7:Vr+=VEREF+,Vr-=VREF-/VEREF-

INCH——選擇模擬輸入通道

0~7:A0~A7

8:VeREF+

9:VREF-/VeREF-

10:片內(nèi)溫度傳感器的輸出

11~15:(AVCC-AVSS)/2

5.ADC12IFG 中斷標(biāo)志寄存器 為16位,其中中斷標(biāo)志位ADC12IFG.x對(duì)應(yīng)于轉(zhuǎn)換存儲(chǔ)寄存器ADC12MEMx。各位含義如下:

bit15 bit14 。。。。。。 bit1 bit0

IFG15 IFG14 。。。。。。 IFG1 IFG0

ADC12IFG.x置位:轉(zhuǎn)換結(jié)束,并且轉(zhuǎn)換結(jié)果已經(jīng)裝入轉(zhuǎn)換存儲(chǔ)寄存器。

ADC12IFG.x復(fù)位:ADC12MEMx被訪問(wèn)。

6.ADC12IE 中斷使能寄存器 為16位,對(duì)應(yīng)于ADC12IFG寄存器。各位含義如下:

bit15 bit14 。。。。。。 bit1 bit0

IE.15 IE.14 。。。。。。 IE.1 IE.0

ADC12IE.x=1:允許相應(yīng)的中斷標(biāo)志位ADC12IFG.x在置位時(shí)發(fā)生的中斷請(qǐng)求服務(wù)。

ADC12IE.x=0:禁止相應(yīng)的中斷標(biāo)志位ADC12IFG.x在置位時(shí)發(fā)生的中斷請(qǐng)求服務(wù)。

7.ADC12IV 中斷向量寄存器

ADC12 是一個(gè)多源中斷:有18個(gè)中斷標(biāo)志(ADC12IFG.0~ADC12IFG.15與ADC12TOV,ADC12OV),但只有一個(gè)中斷向量。所以需要 設(shè)置這18個(gè)標(biāo)志的優(yōu)先級(jí)順序,按照優(yōu)先級(jí)順序安排中斷標(biāo)志的響應(yīng),高優(yōu)先級(jí)的請(qǐng)求可以中斷正在服務(wù)的低優(yōu)先級(jí)。

三、標(biāo)準(zhǔn)程序參考:

#include “msp430x14x.h”

void InitADC12();

unsigned char wait;

int main( void )

{

// Stop watchdog timer to prevent time out reset

WDTCTL = WDTPW + WDTHOLD;

InitADC12();

return 0;

}

void InitADC12()

{

//_DINT();

ADC12CTL0 &= ~ENC; //只有在ENC復(fù)位的情況下才能對(duì)ADC12CTL0、1進(jìn)行設(shè)置!?。?/p>

ADC12CTL0 = MSC + REFON + REF2_5V + SHT0_15 + SHT1_15;

/*MSC:多次采樣轉(zhuǎn)換位,只對(duì)序列采樣或者多次多次轉(zhuǎn)換有效。

0:采樣定時(shí)器需要SHI信號(hào)的上升沿觸發(fā)

1:首次需要采樣定時(shí)器SHI信號(hào)觸發(fā),之后的轉(zhuǎn)換在上次轉(zhuǎn)換之后隨即開(kāi)始。*/

ADC12CTL1 |= SHP + CONSEQ_0;

/*SHP: 1:采樣信號(hào)源自采樣定時(shí)器 0:采樣信號(hào)源自采樣輸入信號(hào)

CONSEQ: 0: 單通道單次轉(zhuǎn)換 1:序列通道單詞轉(zhuǎn)換 2:?jiǎn)瓮ǖ蓝啻无D(zhuǎn)換 3:序列通道多次轉(zhuǎn)換

CSTARTADD_x(0~15):轉(zhuǎn)換起始位置 */

ADC12MCTL0 = EOS + SREF_0 + INCH_7;

/* EOS:序列結(jié)束位

SREF: 參考電壓選擇

INCH:模擬輸入通道選擇 */

ADC12IE |= 0x0001;//開(kāi)相應(yīng)模擬通道中斷,轉(zhuǎn)換完畢后引發(fā)中斷

_EINT();

//ADC12CTL0 |= ADC12ON + ENC; //修改!??!// 這樣寫(xiě)是不對(duì)的

ADC12CTL0 |= ADC12ON;

ADC12CTL0 |= ENC;

wait = 0; //此處可定義變量,指示轉(zhuǎn)換是否完成

ADC12CTL0 |= ENC+ADC12SC; //轉(zhuǎn)換開(kāi)始 若希望在其他時(shí)間開(kāi)始轉(zhuǎn)換 可將次句放在別處逼比必

while(wait==0)

;

}

#pragma vector=ADC_VECTOR

__interrupt void ADC()

{int result[7];

wait=1;

result[0] = ADC12MEM0;

/*unsigned char q0;

int *pmem=ADC12MEM;

//轉(zhuǎn)換結(jié)束的標(biāo)志位置位

for(q0=0;q0《16;q0++)

{

AdMem[q0]= *pmem;

pmem++;

}*/

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120373
  • ADC12
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    3637
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MSP430F5438 ADC12交流采樣的問(wèn)題

    開(kāi)發(fā)了一款產(chǎn)品相關(guān)的軟件程序都做好了……但是ADC12采樣確出現(xiàn)了問(wèn)題,用仿真仿真時(shí)都是前2次計(jì)算結(jié)果跟給入的源信號(hào)一致,但之后就不對(duì)了,把ADC12采樣的值拿出來(lái)用MATLAB 計(jì)數(shù)FFT,值
    發(fā)表于 03-14 16:32

    ADC12采集語(yǔ)音信號(hào)

    求助用msp430F2616中的ADC12編寫(xiě)一個(gè)語(yǔ)音采集C程序。
    發(fā)表于 07-13 15:11

    急急急!求解答關(guān)于用msp430ADC12采集語(yǔ)音的兩個(gè)問(wèn)題

    我要用msp430F2616的ADC12做聲音的采集,問(wèn)題如下:1、不知道用但序列通道還是用重復(fù)單序列通道,求解釋。2、采集的信號(hào)要存于外部的ram(HM628128),能不能只用一個(gè)momery寄存器,再一個(gè)個(gè)的存到外部ram
    發(fā)表于 07-13 15:39

    MSP430怎么實(shí)現(xiàn)ADC12比較

    我想用ADC12采集電壓進(jìn)行比較,來(lái)控制其他電路,但就是控制不了。高手們有沒(méi)有程序分享一下?
    發(fā)表于 10-28 20:43

    MSP430如何測(cè)試ADC12采樣速率

    我想測(cè)試一下MAP430F149的adc12采樣速率,測(cè)出來(lái)大概在168KHZ左右,后來(lái)又測(cè)了一遍,變成了285Khz。但是改變SHT的時(shí)候采樣速率都沒(méi)有變化。想請(qǐng)教各位大神原因在哪。程序如下
    發(fā)表于 04-02 12:25

    ADC12模塊詳細(xì)資料

    此內(nèi)容為MSP430ADC12模塊的ppt講解,很詳細(xì)。
    發(fā)表于 07-27 18:37

    基于L1602液晶顯示和msp430f5529 ADC12的信號(hào)采集程序

    基于L1602液晶顯示和msp430f5529 ADC12的信號(hào)采集程序
    發(fā)表于 08-01 13:50

    ADC12單通道多次采集的程序哪里有錯(cuò)嗎

    ADC12模塊+采集分頻系數(shù)n=8+采樣信號(hào)由SHI僅首次觸發(fā)(上升沿)ADC12CTL1=CSTARTADD_0+SHP+CONSEQ_2;//SAMPCON信號(hào)選為采樣定時(shí)輸出+
    發(fā)表于 03-25 04:15

    有關(guān)ADC12模塊基本知識(shí)匯總

    ADC12的基本原理是什么?怎樣去設(shè)置ADC12寄存器呢?ADC12的轉(zhuǎn)換模式有哪幾種呢?
    發(fā)表于 02-11 06:30

    msp430內(nèi)部溫度傳感測(cè)試程序

    MSP430內(nèi)部溫度傳感測(cè)試程序 //MSP430基礎(chǔ)實(shí)驗(yàn)開(kāi)發(fā)組件 - ADC12內(nèi)部模塊演示程序之內(nèi)部溫度傳感
    發(fā)表于 06-21 15:39 ?21次下載

    MSP430教程14:MSP430單片機(jī)ADC12模塊

    MSP430教程14:MSP430單片機(jī)ADC12模塊
    發(fā)表于 10-12 09:03 ?55次下載
    <b class='flag-5'>MSP430</b>教程14:<b class='flag-5'>MSP430</b>單片機(jī)<b class='flag-5'>ADC12</b><b class='flag-5'>模塊</b>

    基于MSP430功能模塊詳解系列之——ADC12

    基于MSP430功能模塊詳解系列之——ADC12
    發(fā)表于 10-12 15:24 ?4次下載
    基于<b class='flag-5'>MSP430</b>功能<b class='flag-5'>模塊</b>詳解系列之——<b class='flag-5'>ADC12</b>

    MSP430ADC12模塊

    msp430內(nèi)部含有 ADC12模塊,可以完成12位的模數(shù)轉(zhuǎn)換,當(dāng)對(duì)精度或其他指標(biāo)要求不高時(shí),可以選用430單片機(jī)內(nèi)部的
    發(fā)表于 05-04 09:40 ?6次下載
    <b class='flag-5'>MSP430</b>之<b class='flag-5'>ADC12</b><b class='flag-5'>模塊</b>

    MSP430單片機(jī)各種寄存器總結(jié)(6)——ADC12

    作者:BerenCamlost本文針對(duì)于MSP430單片機(jī)原理與應(yīng)用課程,請(qǐng)?jiān)趶?fù)習(xí)時(shí)使用。參考資料:王宏波老師的PPTMSP430F6638用戶(hù)手冊(cè)王宏波老師實(shí)驗(yàn)教程本章最新更新
    發(fā)表于 11-19 16:06 ?10次下載
    <b class='flag-5'>MSP430</b>單片機(jī)各種<b class='flag-5'>寄存器</b>總結(jié)(6)——<b class='flag-5'>ADC12</b>

    MSP430X1XX系列ADC12和DMA詳解(附帶程序)(上)--ADC12詳解與源碼

    一,ADC12基本原理1.1,參考電壓發(fā)生所有的 ADC 和 DAC 模塊都需要一個(gè)基準(zhǔn)信號(hào),這個(gè)信號(hào)就是我們常說(shuō)的 Vref+,Vref-。 M
    發(fā)表于 12-08 18:21 ?10次下載
    <b class='flag-5'>MSP430</b>X1XX系列<b class='flag-5'>ADC12</b>和DMA詳解(附帶程序)(上)--<b class='flag-5'>ADC12</b>詳解與源碼