Upload
hay-co-len
View
39
Download
0
Embed Size (px)
Citation preview
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);}