[msp430] adc10

27

Upload: hay-co-len

Post on 25-Nov-2015

39 views

Category:

Documents


0 download

TRANSCRIPT

  • BIN SON :CENAKHO@

  • C 2 module ADC trong MSP430 l ADC 10 bit v

    ADC 12 bit c TEXAS INSTRUMENTS gii thiu

    l c hiu nng rt ng k.

    Guide ny s hng dn cho cc bn s dng ADC10

    v 12, nhng config nng cao nh tit kim nng

    lng, hiu chnh b m, chuyn i nng cao knh

    mong b con tm hiu thm trong datasheet.

  • B chuyn i ADC10 (da trn mc in p v+ v v- lm h qui chiu) s chuyn kt qu t tn hiu

    analog thnh tn hiu digital vi phn gii 10 bit

    v lu kt qu vo thanh ghi ADC10MEM.

    Nu in p c vo ln hn v+ th kt qu s l 0x3ff v nu b hn v- th kt qu s l 0.

  • B iu khin ADC c ci t bi 2 thanh ghi l

    ADC10CTL0 v ADC10CTL1 ch c th c

    chnh sa khi bit ENC=0 v sau khi chnh sa xong th bn cn set bit ENC=1 ADC lm vic.

  • ADC10CTL0

  • NU BN CHN IN P QUI CHIU NI

    Chn ngun in p so snh bng cch set bit REFON ( REFON mt 30 micro giy chuyn trng thi ) . Khi REFON =0 th tc l bn chn ngun ni AVCC =3.5V, khi REFON =1 th:

    *Khi REF2_5V = 1 ,in p qui chiu ni l 2.5 V, = 0,

    in p qui chiu ni l 1.5 V.

    NU BN CHN IN P QUI CHIU NGOI

    REFOUT=1 th chng ta phi gn in p qui chiu ngoi vo 2 chn Vref+ v Vref- ca chip, ln lt P1.4 v P1.3.

  • ADC10ON: bt tt b ADC10 ADC10IE: cho php ngt trong ADC10, c ngt ADC10IFG s c

    set mi khi chuyn i xong, dng c ngt ny th bit cho php ngt

    ADC v ngt ton cc phi c set trc ( GIE =1 ), c ngt s c t

    reset mi khi vo chng trnh ngt.

    ENC (Enable conversion) v ADC10SC (Start conversion) s c set khi chng ta bt u chuyn i

  • La chn c th cho ngun p

    qui chiu dng v m

    Tc ly mu chuyn i ADC

  • Bit MSC: la chn khi ng bng tay sau mi ln chuyn i hoc t ng chuyn i lin tc ADC (CH DNG TRONG MODE 1,2,3 CA ADC )

  • ADC10CTL1

  • Bit INCHx chn chn mang chc nng ADC, nhng dng mu vng l cc chc nng thng

    dng.

  • B chia tn cho xung clock adc

    Chn ngun xung clock adc

  • B chia tn cho xung clock adc THIT LP BIT IU KHIN CHO ADC

  • Cc mode hot ng Bit busy bo bn

  • C 4 mode chuyn i adc nh trn bng cch chnh sa bit CONSEQx

    -MODE 00: mu s c chuyn i 1 ln, kt qu lu trong thanh ghi ADC10MEM,

    chuyn i c kch hot da vo bit ADC10SC v ENC phi c set li sau mi ln chun i.

    -MODE 01: chuyn i ln lt nhiu tn hiu ADC t chn Ax ( config bit trong INCHx) n chn A0 kt qu s lu ln lt vo ADC10MEM. -MODE 10: chuyn i lin tc tn hiu ADC t 1 chn c nh kt qu s lu ln lt

    vo ADC10MEM.

    -MODE 11: chuyn i lin tc NHIU tn hiu ADC t chn Ax ( config bit trong INCHx) n chn A0 kt qu s lu ln lt vo ADC10MEM.

    mang li hiu nng cao nht vi cc mode 01,10,11 th nh sn xut khuyn bt

    bit MSC=1 (multiple sample and convert)

  • Bn cnh vic set bit INCHx chn chn mang chc nng ADC,

    cc bn phi enable chc nng ADC cho chng qua thanh ghi ADC10AE

  • CU TRC THANH GHI KT QU ADC ADC10MEM

  • 1. AVCC REF (3.5v)

    ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // chn tc ly mu, bt ADC , bt interrupt ADC

    2. 1.5V REF

    ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE; //SREF =1 chn ngun p dng khc AVCC, bt REF_ON, bt ADC , bt interrupt ADC 3. 2.5V REF

    ADC10CTL0 = SREF_1 + ADC10SHT_2 +REF2_5V+ REFON + ADC10ON + ADC10IE; //SREF =1 chn ngun p dng khc AVCC, bt REF_ON, bt ADC , bt interrupt ADC

  • 4. EXTERNAL VREF+ , VREF-

    ADC10CTL0 = SREF_5 + ADC10SHT_2 + REFOUT + ADC10ON + ADC10IE; //SREF =5 chn ngun p dng khc AVCC, bt REF_ON, bt ADC , bt interrupt ADC, bt REFOUT //101 VR+ = VREF+ and VR- = VREF-/ VeREF-. Devices with VeREF+/- pins only.

  • V D 1:

    VIT CHNG TRNH C IN P T CHN A1, S DNG THCH

    ANH NI, NU IN P LN HN 0.5 LN AVCC TH SNG LED PORT A0. TRONG QU TRNH CHUYN I ADC, TC GI CHO CHIP MSP

    CHUYN QUA CH TIT KIM NNG LNG LPM0 NH HNH

    MINH HA BN DI. CC BN XEM THM SLIDE V CC CH

    HOT NG CA MSP HIU R THM V CC CH NY

  • #include "msp430g2231.h"

    void main(void)

    {

    WDTCTL = WDTPW + WDTHOLD; // hm dng stop watchdog timer

    ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // bt cc bit tng ng trong thanh ghi

    ADC10CTL1 = INCH_1; //ADC10CTL0 v 1

    ADC10AE0 |= 0x02; // chc nng ADC cho PORT 1.1

    P1DIR |= 0x01; // Chn chc nng output cho PORT 1.0

    for (;;) // lp v tn

    {

    ADC10CTL0 |= ENC + ADC10SC; // bt cc bit ENC v ADC10SC nhm khi ng chuyn i

    __bis_SR_register(CPUOFF + GIE); // bt ch tit kim nng lng

    if (ADC10MEM < 0x1FF) //so snh kt qu cha trong thanh ghi ADCMEM

    P1OUT &= ~0x01; // tt led P1.0

    else

    P1OUT |= 0x01; // bt LED P1.0

    }

    }

    // ADC10 interrupt service routine //ngt ADC

    #pragma vector=ADC10_VECTOR //on code ny nhm a MSP thot ra khi

    __interrupt void ADC10_ISR(void) //trng thi LPM0 tit kim nng lng

    {

    __bic_SR_register_on_exit(CPUOFF);}