Tự Học Lập trình Cơ Bản MSP430
description
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 :