Tự Học Lập trình Cơ Bản MSP430

download Tự Học Lập trình Cơ Bản MSP430

of 19

description

Tự Học Lập trình Cơ Bản MSP430

Transcript of Tự Học Lập trình Cơ Bản MSP430

  • 5/24/2018 T H c L p tr nh C B n MSP430

    1/19

    Hng dn - T hc lp trnh c bn viMsp430G2553

    Chng 1 : Gii thiu qua h vi iu khin MSP430G2553.

    1.Gii thiu tng qut :Cc dng vi iu khin msp430 ny do hng TI ( Texas Instruments) sn xut,ngoi ra th TI cn sn xut v cung cp nhiu linh kin in t v cc modulekhc , tm hiu th cc bn c th tham kho a ch : www.ti.com bitr hn .Vi iu khin( Micro controller unit MCU ) l n v x l nh, n c tchhp ton b cc b nh nh ROM , RAM , cc port truy xut , giao tip ngoivi trc tip trn 1 con chip ht sc nh gn. c thit k da trn cutrc VON-NEUMAN , c im ca cu trc ny l ch c duy nht 1 bus giaCPU v b nh (data v chng trnh) , do m chng phi c rng bit

    tng t nhau.MSP430 c mt s phinbn nh: MSP430x1xx, MSP430x2xx, MSP430x3xx,MSP430x4xx, MSP430x5xx. Di y l nhng c im tng qut ca h viiu khin MSP430:+ Cu trc s dng ngun thp gip ko di tui th ca Pin-Duy tr 0.1A dng nui RAM.-Ch 0.8A real-time clock.-250 A/ MIPS.+ B tng t hiu sut cao cho cc php o chnh xc-12 bit hoc 10 bit ADC-200 kskp, cm bin nhit , Vref ,

    -12 bit DAC.-B gim st in p ngun.+ 16 bit RISC CPU cho php c nhiu ng dng, th hin mt phn kchthc Code lp trnh.-Thanh ghi ln nn loi tr c trng hp tt nghn tp tin khi ang lmvic.-Thit k nh gn lm gim lng tiu th in v gim gi thnh.-Ti u ha cho nhng chng trnh ngn ng bc cao nh C, C++-C 7 ch nh a ch.-Kh nng ngt theo vc t ln.

    + Trong lp trnh cho b nh Flash cho php thay i Code mt cch linh hot,phm vi rng, b nh Flash cn c th lu li nh nht k ca d liu.

    http://www.ti.com/http://www.ti.com/http://www.ti.com/
  • 5/24/2018 T H c L p tr nh C B n MSP430

    2/19

    Chng 2 : Phn cng Msp430G2553 .

    1.S chn :Chip MSP430 c kch thc nh gn , ch vi 20 chn i vi kiu chn DIP.Bao gm 2 port I/O (hay GPIO general purprose input/ output : cng nhp xutchung).

    Ta thy rng mi port u c 8 chn.Port 1 : c 8 chn t P1.0 n P1.7 tng ng vi cc chn t 2-7 v 14 , 15.Port 2 : cng gm c 8 chn P2.0 P2.7 ng vi cc chn 8 13 , 18,19.Ngoi chc nng I/O th trn mi pin ca cc port u l nhng chn a chcnng, ta th thy r trong bng sau :

  • 5/24/2018 T H c L p tr nh C B n MSP430

    3/19

  • 5/24/2018 T H c L p tr nh C B n MSP430

    4/19

    Trn bng l chc nng ca tng chn , ngoi ra i vi cc MCU c kiu chn

  • 5/24/2018 T H c L p tr nh C B n MSP430

    5/19

    SMD loi 28 chn th n c thm port 3 na,nhng y ch xt i vi kiuDIP 20 chn v kiu TSSOP 20 chn , kiu cn li cc bn c th tm hiu trntrang ch ca nh sn xut .

    2.Gii thch s lc cc chn :- Chn s 1 l chn cp ngun Vcc( k hiu trn chip l DVcc ) , y nguncho chip ch c cp mc 3,3V , nu cp ngun cao qu mc ny th chip cth hot ng sai hay chy chip . c c mc ngun ny th ta phi dng 1 IC n p ring c k hiuLM1117 hay AD1117 , IC ny c kiu chn SMD nh gn , cch mc chip nyth cng ging nh vi nhng IC ngun nh LM78xx , tuy nhin lu y lth t chn y c hi khc 1 cht.Cc bn c th xem datasheet ca IC mmc cho ph hp.-Chn 20 l chn ni cc m (0V) , chn ny th khng c g c bit.

    Cc bn c th tham kho mch ngun y phc v cho vic thit k mchhc tp :

    Trn mch cc bn c th thy l c thm IC 7805 cp 5V , vi mc ch sdng cho cc ngoi vi khc cho ng dng ca cc bn , mch trn ch gip ccbn tham kho, nhng cc bn yn tm l mch ny khng h sai , cc bn cth ly ng gi tr nh mch trn .-Chn reset : Chnh l chn s 16 RST , nu cc bn tng hc v PIC th sthy chn reset c k hiu l MCLR , cc bn thy du gch ngang trn cngha l chn ny tch cc mc thp . Mc ch ca vic reset l nhm cho

  • 5/24/2018 T H c L p tr nh C B n MSP430

    6/19

    chng trnh chy li t u .

    Mch reset cho chip :

    Cc bn ch ty l tpi v chnh xc l t102 nha, nu thay i thkhi kt ni Jtag np code cho chip skhng c.

    -Mch dao ng : Cng ging nh nhng dng vi iu khin khc th Msp430cng h tr ngi dng thch anh ngoi ( external crystal ), nhng thch anh

    ngoi vi cho php ch c th ln ti 32,768 kHz m thi, v tn hiu ny cmc trn 2 chn 18 v 19. Nhng msp430 li h tr thch anh ni c th lnn 16Mhz, ty vo cch khai bo trong lp trnh. V mc nh ca chip lthch anh ni. Nh vy th chng ta khng cn thit phi s dng mch daong ngoi cho chip ging nh nhng dng khc.- Port I/O :Port 1 : c 8 chn t P1.0 n P1.7 tng ng vi cc chn t 2-7 v 14 , 15.

  • 5/24/2018 T H c L p tr nh C B n MSP430

    7/19

    Port 2 : cng gm c 8 chn P2.0 P2.7 ng vi cc chn 8 13 , 18,19.Trong ch nhp (input) th c 2 port u c 1 mch iu khin in tr kodng gi l PULL UP nhng gi tr ca in tr ny rt ln khong 47K nngi l WEAK PULL UP RESISTAN. Vic iu khin PULL UP s c tinhnh thng qua lp trnh tc ng ln thanh ghi PxRENs c cp chng sau .

    iu ny cng ging nh vic thit lp input port B ca vi iu khin PIC, port B cng c in tr ko ln , v ngi lp trnh phi thao tc qua thanh ghiOPTION_REG.

    Tm tt : Qua chng ny chng ta phi nm c cc chn c bn trc ca chip . Mch reset v mch dao ng OSC ca chip .Cc chn I/O ca 2 port v PULL UP .

  • 5/24/2018 T H c L p tr nh C B n MSP430

    8/19

    Chng 3 : Mch np cho MCU.1 . Kit Lanchpad :

    Vi bt k 1 con MCU no th vic phi thit k 1 mch np cho chip l iukhng th b qua ! V vi Msp430 cng khng l ngoi l .

    PIC hay 8051 th c nhiu mch np np code cho chip , t n gin nphc tp , ni chung cc k a dng.V ni chung th cc mch np cng ukh t , thp cng phi mt 200k hay hn.Nh ni th Msp430 l dng value line , power low, v low cost . Chnh vvy m TI cung cp cho ngi dng 1 mch np code + debug ch trn 1mch nh gn. Trong kit cn c h tr :-1 mch np code c c debug-1 dy cp USB tt kt ni kit vi my tnh.-1 chip thch anh 32,768kHz-1 chip Msp430G2553-1 chip Msp430G2453-1 header female.Tt c ch c 9,8 USD rt r hc!

    y chnh l hnh nh ca Kit lanchpad :

  • 5/24/2018 T H c L p tr nh C B n MSP430

    9/19

    Kit c th np c code cho dng Msp430G : nh msp430g2231, 2553,2452,

    Kit kt ni vi my tnh thng qua cng USB .

  • 5/24/2018 T H c L p tr nh C B n MSP430

    10/19

    Chng 4 : Trnh bin dch

    By gi chng ta s tin hnh ci t chng trnh c th tin hnh vit code, bin dch v np code cho chip .

    Khng ging nh chng trnh ca cc dng vi iu khin khc , TI cungcp cho ngi dng nhng IDE c tch hp trong 1 gi phn mm. Ccbn ch cn ci t 1 chng trnh l c th va vit code , debug, v npcode cho chip.Chc nhiu bn s thc mc cm t debug c ngha l g?Debug ch l vic cho chng trnh chy tng dng lnh kim tra li cachng trnh cng nh kim tra c c thanh ghi ca chip khi n thc hinlnh .C nhiu IDE c TI cung cp cho ngi s dng , nhng trong c 2

    chng trnh mnh v c nhiu ngi a thch l CCS v IAR . Cc bnng c nhm ln gia CCS C cho PIC vi CCS cho Msp430 nh! Hai chngtrnh ny l hon ton khc nhau .

    Sau y , xin c gii thiu c th 2 chng trnh trn :1 . IAR (IAR Embedded Workbench ) :y l chng trnh bin dch c cung cp bi IAR SYSTEMS. C 3 phinbn: Kickstart Version Free , Baseline Version ~ $795 v Full Version ~$2695. ti chng trnh , chng ta c th vo trang ch : www.iar.comhoc t a

    ch ca TI : www.ti.com, sau g t IAR trn mc tm kim , downloadc th cc bn phi to 1 ti khon v ng nhp ti v , cc bn ch c thti c bn trial m thi .

    2 . CCS (Code composer studio ) :y l chng trnh do TI cung cp , c nhiu server c cung cp .Phin bn mi nht hin nay l CCS 5.3 .Cc bn c th ti ti : www.ti.comng nhp vo (sau khi ng k ti khon ) , CCS c h tr cho ngi dng

    bn dng th nhng b gii hn code (limited code ) , chng ta ch c sdng 4kB b nh , nhng vi sinh vin chng ta th vi 4 kB cng lmnhng d n nh .Chnh v vy m ti khuyn bn nn ti bn CCS v , v trong ti liu ny cngs dng CCS vit code . CCS c rt nhiu tnh nng hay m sau ny chngta s cng nhau nghin cu sau .Vic s dng phin bn no l ty thuc vocc bn , cc version cng u ging nhau , nu CCS 5.3 th yu cu my ca

    http://www.iar.com/http://www.ti.com/http://www.ti.com/http://www.ti.com/http://www.ti.com/http://www.ti.com/http://www.iar.com/
  • 5/24/2018 T H c L p tr nh C B n MSP430

    11/19

    bn phi c cu hnh mnh dng.

    3 . Ci t v s dng CCS :Sau khi ti CCS v , cc bn tin hnh ci t , cch ci t cng rt n gin.Cc bn ch cn chy file setup.exe .

    i vi phin bn CCS 4.3 hay 4.2 th cc bn ci t xong l c th s dngc nhng vi CCS 5.3 th cc bn cn phi lm 1 vic na l chn : limitfree code , th mi vit code c . Cch lm nh sau :Sau khi ci t xong, cc bn khi ng chng trnh :Start -> all program -> Texas Instruments -> Chn code .Hoc chy chng trnh bng cch click vo biu tng CCS trn desktop .Sau , click chn Help -> Code Composer code linsce -> upgrade -> activevic ci t v s dng cng nh to mi 1 project cc bn xem ti mcMSP430 ny, c gn nh y cc video minh ha vic hc lp trnh vimsp430.

  • 5/24/2018 T H c L p tr nh C B n MSP430

    12/19

    Phn 2 : Cch lp trnh.

    Phn ny , s gii thiu cho cc bn cch lp trnh trn MCU Msp430G2553 .Ngn ng lp trnh y chnh l C (Language programing C).y l ch chnh ca ti liu .

    Chng 1 : GPIO (General purpose input/ouput ) :

    y s l chng trnh u tin ca cc bn , cng tng t nh khi cc bnmi hc C th u tin chng ta phi hc cch vit chng trnh hin th dngch hello word in ra mn hnh . y chng ta s tm hiu cch vit 1 chng trnh n gin , bit cch bttt 1 led trn chn P1.0 . Ti sao li l trn chn P1.0 ? n gin l v trn kitlanchpad c sn 2 ch led c hn trn 2 chn l P1.0 v P1.6 .Cng ging nh chc nng I/O ca Pic th chc nng GPIO cng ch lm 1 vic

    n gin l vic xut ra tn hiu hay c vo tn hiu . Tn hiu y hiun gin l nhng tn hiu in - tn hiu s .Tn hiu s (Binary ) tn hiu ny ch c 2 trng thi l 1 v 0 .1 : C in , mc in p ny bng vi in p ngun cp cho MCU . 00: khng c in .

    1.Cc thanh ghi cn thit lp :Msp430 c 2 port nhp xut l :

    Port1 : T chn P1.0 n P1.7

    Port2: 8 chn P2.0 n P2.7 bit r cc chn ny trn MCU th cc bn chu kh c li chng 1 trongphn 1 .

    a. Thanh ghi PxSEL(x:1 , 2) v PxSEL2(x:1 , 2) :Thanh ghi ny qui nh ch lm vic cho cc chn bao gm

    PxSEL v PxSEL2 .VD: Ta mun port 1 l GPIO th ta thc hin lnh nh sau:

    P1SEL = 0;P1SEL2 = 0 ;Nu nh mun chn P1.2 lm chc nng I/O th khai bo nh sau :P1SEL & = ~0x01 ; // s dng lnh o bit , set v mc 0 .P1SEL2 &= ~0x01;Lu : Interrupts P1 v P2 s b v hiu ha khi PxSEL= 1 .b. Thanh ghi PxDIR(x:1 , 2)

  • 5/24/2018 T H c L p tr nh C B n MSP430

    13/19

    Thanh ghi ny qui nh loi ng vo ra cho cc chn (I/O pins)Mc nh cc chn ny l input, nn ta ch cn set output cho cc chn nyVD: P1DIR = 0x01 // chn P1.0 l output.Mc 1 : ouput ( xut tn hiu ) .Mc 0 : input (c tn hiu v) .

    c. Thanh ghi PxREN(x:1 , 2)Thanh ghi ny cho php tt hoc m ch pullup/pulldown resistor cho ccpins .Bit = 0 : Tt chc nng pull up /down (disable).Bit= 1 : enable pull up/down.d. Thanh ghi PxOUT(x: 1 , 2)_Khi ta mun xut gi tr cho cc chn I/O, ta s t gi tr vo cc thanh ghiPxOUT .Bit = 1 : output mc cao.Bit = 0 : output mc thp._Khi ta config thanh ghi PxREN sang ch pullup/pulldown resistor thBit = 1 : Pull up .Bit = 0 : Pull down .

    Lu l ta phi chnh P1DIR trc khi xut gi tr ra ngoi.

    Tm tt: thc hin xut / nhp trn 1 chn (Pin):- Ci t ng gi tr cho thanh ghi PxDIR- t kiu tn hiu ca pin l GPIO hay cc chc nngkhc qua thanh ghi PxSEL- Xut tn hiu bng cch ghi gi tr 0 hoc 1 voport tng ng (port P1OUT)

    - c gi tr ca chn bng cch c mc logic trn port tng ng.

    Code mu :

  • 5/24/2018 T H c L p tr nh C B n MSP430

    14/19

    HTML:

    #include void main(void){WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timerP1DIR |= 0x01; // Set P1.0 to output directionP1SEL = 0; // Set P1 GPIO functionP1SEL2 = 0;while(1){P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR_delay_cycles(100); // i vi CCS} }

    Bi 1 : GPIO tip theo .

    By gichng ta svit vphn c tn hiu cho msp430 , config chcnng input .

    Cc bn lu l trn kit lanchpad ca chng ta c sn 1 button cmc vo chn P1.3 , v vy chng ta stn dng iu ny vit code ,khng cn phi lp mch test .Nh ni phn u th vic thit lp chinput , c tch hp sn 1mch iu khin in trko dng - pull up , in trtm 47K , btc chc nng ny , ta stc ng n thanh ghi PxRENCode :HTML:

    // BAI 2 : doc button //

    #include "msp430.h"int main (void){WDTCTL = WDTHOLD + WDTPW ;P1SEL &= ~(BIT0 + BIT3);P1SEL2 &= ~(BIT0 + BIT3) ;P1DIR |= BIT0 ; // P1.0 : OUT// BIT 3 : INPUTP1DIR &= ~BIT3 ; // LENH XOA BIT 3P1OUT |= BIT3 ; //BIT3 = 1P1REN = BIT3 ; //PULL UP BIT3

    while(1) {

    if ((P1IN & BIT3)==0) { // se tat khi p1.3 khong co bam nut.P1OUT |= BIT0 ;

    }else P1OUT &= ~ BIT0 ; // se sang

    }

    }

  • 5/24/2018 T H c L p tr nh C B n MSP430

    15/19

    Thti to hiu ng LED .Code mu thm kho t: LED patterns using msp430 launchpad

    PHP:

    Code:

    #includemain(void) {WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timerP1DIR |= 0XFF; // set all the ports as output portsint x = 0X01;long i=0;int j=1;int k=0;int l=0;for(;;){

    for(k=1;k

  • 5/24/2018 T H c L p tr nh C B n MSP430

    16/19

    for(i=0;i

  • 5/24/2018 T H c L p tr nh C B n MSP430

    17/19

    Chng 2 : Basic ClocksPhn ny c thhi kh hiu, nhng cc bn cc ktrc, ri sau ny shiu dndn sau .Chclock c cung cp trong tt ccc dng MCUs Msp430 ca TI .Trongchng ny sgip cc bn hiu r vhot ng cc xung clocks cbn ca msp430.

    1. Gii thiu vclock :

    Vic config xung clocks l v cng cn thit i vi bt k 1 con MCUs no, c xungclock th con mcu ca chng ta mi c thhot ng ng c .

    Chng ta c thhiu xung clocks chnh l tri tim ca 1 hthng xl s, v tc xl lnh phthuc hon ton vo ngun xung .

    Vn l lm sao chng ta c ththit lp xung clocks ny hot ng .Chng ta c thc nhiu cch lm vic . Vi dng msp430 ny th n 3 loi xung cbn nhsau :

    - Internal Oscillators

    - External Crystals

    - External Oscillators

    2. Internal/External Oscillators :

    a. Internal :

    y l ngun dao ng c sn bn trong chip , thng thng sdng cc mch RC

    c tch hp sn vi cc hmch .

    - Li ch ca ngun ny l vic chng ta c thddng thay i c tn shotng m khng cn phi sdng cc linh kin ngoi lm chim din tch board .

    - Trn chip Msp430 c sn ngun xung DCO (Digitally Controller Oscillator) htrtc cao .

    b. External :

    Khc vi nhng dng vi iu khin khc th dng Msp430 chc thhtrthch anhc tn sln n 32.768khz ,vic sdng thch anh ngoi nhm p ng nhu cu v

    ng dng cn chy thi gian thc v cn schnh xc cao .

    Chnh v vy m chng ta nn hn chsdng nu c thc , 1 mt gim vic thicng mch in .

  • 5/24/2018 T H c L p tr nh C B n MSP430

    18/19

    Hnh nh chmang tnh minh ha .

    Trong chng ny , chng ta snghin cu chi tit vic thit lp ngun xung ni ,nhvy sn gin cho vic thit kphn cng .V ngun xung ni htrdi tn lm vict400-kHz to 16-MHz .

    3. Mode trong xung ni :

    Trong ngun xung ni th chng ta c ti a l 4 mode chhot ng , cc modeny ln lt l :

    LFXT1CLK : Low-frequency/high-frequency oscillator

    Module dao ng htrtn sthp / cao , c thc dung cho ng dng vi btheodi tn sthp thch anh 32.768khz , hoc tcc ngun xung khc c tn st400khz n 16Mhz .

    XT2CLK: Optional high-frequency oscillator .

    Module la chn lm vic tn scao .

    DCOCLK: Internal digitally controlled oscillator (DCO).

    Bdao ng sc tch hp sn trong chip, khi lm vic nu khng c thit lp g vngun xung th msp430 shot ng da trn bDCO ny .

  • 5/24/2018 T H c L p tr nh C B n MSP430

    19/19

    VLOCLK: Internal very low power, low frequency oscillator with 12-kHztypical frequency

    Module tch hp , y l mode hot ng siu tit kim nng lng .Skhi clocks :