megacode_laptrinhvidieukhienmsp430

Upload: hoai-pham-hong

Post on 03-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    1/120

    1

    Lp trnh hthng nhngsdng vi iu khin MSP430

    (Embedded System I)

    Ts. L Mnh Hi

    Khoa CNTT,

    H Cng nghTP HCM11/2013

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    2/120

    2

    M auI Mc ch mn hc: Cung cp kin thc vlp trnh vi iu khin TI MSP430.II. Thi gian:

    30 tit l thuyt (2 tn ch) + 30 tit thc hnh (1 tn ch)III Gio trnh v ti liu tham kho MSP430 Microcontroller Basics. John H. Davies. Elsevier.

    2008 (685 trang) Embedded Systems Design using the TI MSP430 Series.

    Chris Nagy. Elsevier. 2003 (296trang) Introduction to Embedded Systems - A Cyber-Physical

    Systems Approach, E. A. Lee and S. A. Seshia.http://LeeSeshia.org. 2011

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    3/120

    3

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    4/120

    4

    IV. nh gi: Thi k t thc mn: Bi tlun vi 3 cu hi.

    V. Gio vin: Ts. L Mnh Hi. Tel: 0985399000.

    Khng gi in thoi hi hay xin im,email: [email protected],[email protected]

    Website: giangvien.hutech.edu.vn GV thc hnh: Nguyn Ngc c.

    0978629557

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    5/120

    5

    Ni dung chi tit

    Chng 1: Cc hthng nhng v vi iu khinMSP430

    Chng 2: Pht trin ng dng nhng.

    Chng 3: Cc hm v ngt

    Chng 4: Nhp/xut

    Chng 5: Bnh thiChng 6: ADC

    Chng 7: Kt ni

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    6/120

    6

    Chng 1: Cc hthng nhng vvi iu khin MSP430

    Sau khi hc bi ny, sinh vin s nmc1. H thng nhng l g?

    2. Cc hng pht trin h thng nhng

    3. Cu trcin hnh mt vi iu khin

    4. Cu trc vi iu khin MSP430G2553

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    7/120

    7

    Hthng nhng l g? Theo vi.wikipedia.org: H thng nhng (Embedded

    system) l mt thut ng ch mt h thng c khnng t tr (my tnh) c nhng vo trong mtmi trng hay mt h thng m.

    l cc h thng tch hp c phn cng v phnmm phc v cc bi ton chuyn dng trong nhiulnh vc cng nghip, t ng hoiu khin, quantrc v truyn tin.cim ca cc h thng nhng

    l hotngnnh v c tnh nng t ng hocao.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    8/120

    8

    Hthng nhng l g? My git

    Xe hi i mi c trn 100 bxl Khong 99% chp tnh ton c ng dng trongcc hthng nhng

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    9/120

    9

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    10/120

    10

    in thoi di ng thng minh (smartphone) TV

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    11/120

    11

    Bo Launchpad MSP430

    MSP-EXP430G2 LaunchPad Experimenter Board

    MSP430G2543MSP430G2553

    IAR Kickstart orCode ComposerStudio Ver 5 (CCS)

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    12/120

    12

    Cc hng pht trin hthng nhng

    Mt hthng iu khin tng t(trc nm1970)

    Hthng my tnh s: Vi xl v vi iu khin(1970 nay)

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    13/120

    13

    Mch stch hp thp: transitor, IC 555

    Mch stch hp trung bnh : CMOS 4000

    Mch stch hp cao: Vi iu khin

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    14/120

    14

    Cc hng ng dng Application-specific integrated circuits (ASICs)

    Chp (IC) thit kdnh ring cho mt ng dng

    Field-programmable gate arrays (FPGAs) andprogrammable logic devices (PLDs)

    Chp thit kc thlp trnh thay i cu to

    chc nng bng cch to cc mi lin kt giacc cng bn trong chp. C hng triu cngtrong mt chp.

    Microcontrollers C mt skhi rt hay c sdng cng vi

    mt khi xl trung tm (CPU) .

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    15/120

    15

    Vi iu khin nh CPU xl 8 hoc 16 bt

    Bnh64 KB Tc ti a : 16Mhz

    Chc nng chnh: iu

    khin, khng phi tnhton!

    http://www.diendanti.com

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    16/120

    16

    Cu trc chung ca vi iu khin

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    17/120

    17

    Vi iu khin c 6 thnh phn cbn sau:1. Khi xl trung tm (CPU) bao gm:

    Khi tnh ton shc/logic(ALU).

    Khi gii m lnh v cc mch htrxlngt, ti khi ng

    Cc thanh ghi bao gm thanh ghi m chngtrnh PC, con trngn xp SP, thang ghi trngthi (SR), thanh ghi to hng sCG v 12 thanhghi a nng

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    18/120

    18

    2. Bnhchng trnh: L bnhkhng mt dliu khi mt in. Trc kia l ROM, nay sdngFLASH. Chp MSP430G2553 chc 16KB3. Bnhdliu: RAM truy xut ty nhng dliu bxa khi mt in

    Hin c bnhdliu khng bxa khi mtin

    4. Cc cng nhp/xut: Kt ni vi cc hthngkhc

    5. ng BUS dliu v BUS a ch: truyndliu v lnh gia cc khi.6. Khi xung nhp: To xung ng bcc khi

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    19/120

    19

    08 khi thng gp khc:Khi nh thi (Timer): m thi gian chnh xc. Cc vi iu

    khin hin nay c t nht 2 khi ny.Khi nh thi cnh bo: L khi kim sot li chng trnh

    theo thi gian. Khi ny sti khi ng chp khi chngtrnh bli .

    Khi giao tip tun t: Kt ni vi cc IC khc bng cchtruyn tng bt.

    Khi nhdliu khng bay hi: Lu trdliu ngay ckhimt in. Thng dng lu cu hnh thit bnha chIP

    trong cc ADSL routerKhi bin i tng t- s: Cho php chuyn i tn hiutng tsang dng s.

    Khi bin i s-tng t: Cho php chuyn i tn hiu

    tng tsang dng s, thng dng iu khin ng cbng phng php xung s(PWM).ng hthi gian thc: Lu gigi trnm thng ngy.Bnp v chy chng trnh: Cho php np chng trnh t

    my tnh vo bnhchng trnh

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    20/120

    20

    Cu trc Harvard v von Neumann

    MSP 430 c cu trc von Neumann

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    21/120

    21

    Cu hi

    Hy k tn mt vi thit bdn dng l hthng nhng?

    Cc thnh phn cbn ca mt vi iu

    khin? Cc khi htr thng gp mt VK?

    Skhc bit gia cu trc Harvard v vonNeumann ?

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    22/120

    22

    Bi 2: Cu trc vi iu khinMSP430G2553

    Cc chn VK MSP430G2553 Cc khi chc nng

    Tchc bnh

    Khi xl trung tm (CPU) Bto xung nhp

    Ngt v ti khi ng

    Cc ti liu chnh thng

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    23/120

    23

    Cc chn VK MSP430G2553

    Chn ra: 20 chn tvnha PDIP Phn ln cc chn c nhiu chc nng.

    V dchn s3 c 5 chc nng

    Cc ng dng ti mi thi im chyu cumi chn thc hin mt chc nng =>

    khng bmu thun

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    24/120

    24

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    25/120

    25

    M tcc chn

    VCC( chn 1) VSS (chn 20) dng cp ngun3,3V cho chp. Ngun c thdao ng trongkhong 1,8V 3,6 V

    P1.0P1.7, P2.0, and P2.7 l 2 cng nhp xut s.Mi cng 8 chn (8 bt), gi tt l P1 v P2.

    Cc khi chc nng cng sdng cc chn nykhi cn nhcu hnh thanh ghi chn khi P1SEL

    v P2SEL.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    26/120

    26

    Cc khi chc nng MSP430G2553

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    27/120

    M tcc khi chc nng

    27

    Cc khi cbn: CPU, Xung nhp, Flash, RAM,Ports,v Bus. Cc khi b xung:

    Khi np chng trnh: JTAG : 4 dy v 2 dy Khi bini tng t - s ADC. Khi bo v st p (Brownout Protection) Khi so snh p (Compare A+)

    Khing h canh gc (WDT) 2 khinh thi loi A (Timer0_A3 v Timer_A3) 2 khi giao tip tun t (USCI A0 v USCI B0)

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    28/120

    28

    Bnh

    Bnhl cc thanh ghi 8 bt, tchc thnhcc nh,

    a ch nh16 bit t 0x0000 ti 0xFFFF

    Bus dliu 16 bit c thtruyn 16 bt hoc8 bt.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    29/120

    29

    Bus a chv cc nh

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    30/120

    30

    Tht nh

    Little-endian ordering: Khi dliu c trn1 byte th byte gi trthp nm vtr di,byte gi trcao nm bn trn trong b

    nh. Dng MSP430 c thtny. Big-endian ordering: Byte gi trthp nm

    vtr cao. Mt schp ca Motorola,Freescale HCS08 c cu trc ny.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    31/120

    31

    Tchc bnhT chc b nhca MSP430G2553 gm cc thnh phn sau Thanh ghi chc nng chuyn dng: Cc thanh ghi ca cc

    khi c c hc nng xcnh trc. V d cc thanh ghi PC, SP,SR, CG ca CPU, thanh ghi P1REN, P1DIR ca P1...

    Cc thanh ghia nng ca CPU v cc thit b ngoi vi, nhcc thanh ghi R4-R15 ca CPU, P1IN, P1OUT ca P1.

    Cc thanh ghi 8 bt Cc thanh ghi 16 bt Random access memory (RAM): Cc thanh ghit trong

    khi RAM ca ch t 0x0200 v ch c 256/512 Bytes

    Bootstrap loader : L phn b nhkhng b xa cha chngtrnh kt ni my tnh qua cng COM ca TI

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    32/120

    32

    Bnhdliu khng bay hi (Information

    memory): L 256 Byte flash, cho php lu ccthng tin quan trng v khng bmt khi mt in. Bnhchng trnh (Code memory): L bnh

    chc (ROM) v cha chng trnh c np t

    my tnh xung. Sau khi np v khi ng, chngtrnh ny sc c vo CPU thc thi . Chphin nay c t2KB-16KB.

    Interrupt and reset vectors: L phn bnhchacc a chca cc hm xl ngt v ti khi ng.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    33/120

    33

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    34/120

    34

    Khi xl trung tm (CPU)

    Chc nng: Khi CPU thc thi cc lnh ct trongbnhchng trnh. Cc lnh c c tun tvthc thi nu khng gp cc lnh rnhnh hoc xl ngt

    Cu to: Gm mt khi tnh ton ALU 16 bt,mch gii m lnh v 16 thanh ghi.

    Tn sti a (cng l tc ) do xung nhpMCLK to l 16MHz.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    35/120

    CPU

    35

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    36/120

    36

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    37/120

    37

    Cc thanh ghi ca CPU Thanh ghi m chng trnh (Program counter PC): Chaa chlnh ktip cn thc hin. PC tng tng 2 sau mixung nhp, ngoi trc lnh rnhnh hoc gi hm

    Con tr ngn xp (Stack pointer- SP): Trn vng nhRAM dng lm ngn xp. Khi mt hm c gi, PC v SRc ct vo ngn xp v khi thc hin xong hm, cc gi trny c trli PC v SR tip tc oc6ng vic ang thc hind

    Thanh ghi trng thi (Status register SR): Cha cc ctrangthi. Cc bt trng thi hay c dng l C, Z, N, v V. Ngoira c mt sbt tt xung nhp nhCPUOFF (tt MCLK)

    Thanh ghi hng s(Constant generator) Dng to ra mt shng sthng gp

    12 thanh ghi a nng : l cc thanh ghi dng lu thng tintrung gian. Cc thanh ghi c tc tru cp tng ng CPU

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    38/120

    38

    Bto xung nhp

    Xung nhp l thit bkhng ththiu ca cc hthng s Linh kin thng dng to xung nhp l thch anh c th

    to dao ng khong vi MHz cho chp (max = 16MHz) Tuy nhin khi chy tc cao, chp tiu tn nhiu in. Cc

    hthng di ng cn tit kim pin nn mt sbphn chchy tn sthp stit kim v tng thi gian sdng pin.Bto xung nhp cn a dng ha cc chhot ng caVK.

    Nhiu ng dng nhng phn ln thi gian trng thi ng(cng sut thp)-> Cn tt xung nhp khi c th. Khi c skin ngt, CPU sc cp xung ng bli hot ng.

    .

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    39/120

    39

    Bto xung nhp

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    40/120

    40

    Bto xung thp tn bng thch anh LFXT1: C thtocc xung nhp tvi chc KHz ti 1 MHz vi chnh xccao.

    Bto xung cao tn bng thch anh- XT2: Ging LFXT1ngoi trtn scao hn (8-16MHz)

    Bto xung tn sthp VLO vi chnh xc thp. CcVK c thto xung nhp tn sthp m khng cn thchanh. Dng VLO nu cn tit kim nng lng (ko di thigian sdng gia hai ln sc pin)

    Bto xung iu khin kthut s(DCO): To cc xungnhp tn scao (8-10MHz) m khng dng thch anh. CcVK sdng DCO trong giai on u khi khi ng

    (khong 1 giy) .

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    41/120

    41

    Kim sot cc xung nhp thng qua thanh ghi

    trng thi (SR)

    CPUOFF kha MCLK, v dng CPU cng nhcc khi no dng MCLK ng b

    SCG1 kha SMCLK v cc khi dng MCLK

    ng b SCG0 kha DCO

    OSCOFF kha VLO v LFXT1.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    42/120

    42

    Cc loi xung nhp

    Master clock, MCLK, sdng cho CPUv mt s khi tc cao (1-16MHz).

    Subsystem master clock, SMCLK, dng

    cho cc cc khi tc trung bnh (1MHz) Auxiliary clock, ACLK, Dng cho cc

    khi tc thp (32KHz).

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    43/120

    43

    Khi nim Ngt v ti khi ng Ngt (Interrupts): L mt skin gy bi phn cng , mc

    d c ci t bng phn mm) v thng cn c xlngay lp tc. Khi xy ra mt ngt, VK dng chng trnh

    ang thc thi, ct cc thng tin/ trang thi hin ti (PC, SR)chuyn sang chng trnh xl ngt (ISR) ngay lp tc.Sau khi xl ngt xong, VK quay li thc hin tip cngvic ang thc hin trc. Nhvy chng trnh xl ngtc gi bi phn cng chkhng phi phn mm.

    Ti khi ng (Resets): c to bi phn cng, thngc dng khi c skin bt thng ngu hi khin VKkhng thtip tc cng vic. Thng thng ng hcanh gcsti khi ng VK sau mt khong thi gian nht nhnu khng c can thip kp thi. Ti khi ng gip hthng vo trng thi n nh

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    44/120

    44

    Cu hi

    Lit k cc thanh ghi CPU Cc ngun xung v cc loi xung ca VK TIMSP430G2553?

    Ngt l g, ti sao hthng nhng cn cchngt?

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    45/120

    45

    Bi tip

    Mi trng pht trin ng dng Chng trnh n gin u tin

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    46/120

    46

    Bi 3: Mi trng pht trin ngng dngSau khi hc xong SV cn nmc:1. Cc cng c h trpht trinng dng2. Ngn nglp trnh nhng C

    3. Truy cp v gri4. Bo Launchpad MSP430 v cc chngtrnh bt ttn LED

    C ht t i d

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    47/120

    47

    Cc cng cpht trin ng dng Bson CT (Editor): Cho php vit CT v kim tra c php

    tc th Bin dch (compiler): Chng trnh chuyn m C sang m

    my, c khnng d li

    Gn a ch(Linker): Phi hp cc thvin v cc hm, gna ch bnh(khi np vo VK khng bnhm) Bm phng (Stand-alone simulator): Chng trnh

    phng to hot ng ca VK, thay cho chp tht.

    Embedded emulator/debugger: Thit bcho php np tnglnh tmy tnh xung VK gri Bnp trc tip (In-circuit emulator): Thit bgri cho

    php VK chay tng lnh ttrn my tnh. Gi khong

    1000$ Chng trnh np (Flash programmer): L phn mmmin ph ca TI dng np chng trnh tmy tnh vo bnhchng trnh ca VK.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    48/120

    48

    Cc phn mm thng dng

    IAR EmbeddedWorkbench. Phn mm min phcho SV.

    http://www.iar.com

    Code Composer StudioPhn mm min ph cho SV : 16KB chng trnh

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    49/120

    49

    The C Programming Languageif ((P1IN & BIT3) == 0)// Kim tra chn s3 Port1 c bng 0?{

    P1OUT = 0x01; //cp ra port 1 gi tr 0b00000001}else

    {

    P1OUT = 0x00; //cp ra port 1 gi tr0b00000000}

    H

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    50/120

    50

    Hp ngV d:

    mov.w #WDTPW|WDTHOLD ,& WDTCTL

    Sinh vin shc lp trnh hp ngnu thnh tho lp trnh bng C

    B th h h

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    51/120

    51

    Bo thc hnh

    The TI MSP430G2553 Launchpad Board.

    Mch np

    VK

    2 LED

    Cngtc S2

    Cng tcS1

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    52/120

    52

    Cc chng trnh mu Bt /tt cc n LED c trng thi cng tc S2 Tng bt tt n dng hm gichm Automatic Control: Use of Subroutines Automatic Control: Flashing a Light by Polling

    Timer_A Header Files and Issues Brushed under the

    Carpet

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    53/120

    53

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    54/120

    54

    Bt tt LED

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    55/120

    55

    Bt tt cc n LED

    #include // Specific devicevoid main (void)

    {WDTCTL = WDTPW | WDTHOLD;// dng watchdog timerP1DIR = 0x41;// t cc chn P1.0 v P1.6 l OUTPUT:0b01000001P1OUT = 0x41;// chai led cng sngfor (;;) {// Loop forever ...}// ... doing nothing}

    Hy sa li chuong trnh Led 1 sng , led 2 tt

    c trng thi cng tc

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    56/120

    56

    c trng thi cng tc

    Nu cng tc S2 h(m) in p chn P1.3 s ln 1 (3,3v )

    Nu cng tc S2 ng : in p trn P1.3 s xung 0 (0v)

    #include // Specific device

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    57/120

    57

    #define LED1 BIT0

    #define LED2 BIT6#define S2 BIT3

    void main (void)

    {

    WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timerP1DIR = LED1|LED2; // Set pin with LED1 and LED2 to output

    P1OUT = LED1|LED2; // bat LED1 va LED2 sang

    P1REN |= S2; //su dung dien tro keo len/xuong, chi dung voi Launchpad v1.5

    P1OUT |= S2; //dien tro keo len, sau lenh nay, S2 thuong xuyen cao (1)while(1) { // Loop forever

    if ((P1IN & S2) == 0)

    P1OUT |= LED1; // Yes: bat LED1

    else

    P1OUT &= ~ LED1; // No: tt LED1, LED2 khng thay doi

    }

    }

    Hy vit CT bt tt LED2 bng cng tc S2. LED1 khng thay i

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    58/120

    58

    Chp n bng hm Delay()

    Chng trnh tip theo schp n LED1(sng/tt) vi chu k1 giy. Nhvy thigian sng/tt l 0,5 s

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    59/120

    59

    while(1){// Loop foreverfor (LoopCtr = 0; LoopCtr < DELAYLOOPS; ++ LoopCtr) {}// Empty delay loopP1OUT = LED1|LED2;// Toggle LEDs}

    }

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    60/120

    60

    Tng chp n: SdngtimerA

    Sdng vng lp l gii php n ginnhng khng chnh xc: khi xy ra mt skin ngt, vng lp sbko di.

    on chng trnh sau sbt tt n theotimer.

    Timer sc trnh by phn sau

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    61/120

    61

    TimerA

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    62/120

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    63/120

    63

    Quizzes Cc phng php chp mt n LED?

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    64/120

    64

    Chng tip theo

    Hm, ngt v cc chtit kim nnglng

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    65/120

    65

    Bi 4: Hm, ngt v chtit kimnng lng

    1. Hm v cc bc thc thi khi gi hm2. Ngt v chng trnh phc vngt3. Cc bc thc thi khi xy ra mt ngt4. Cc chtit kim nng lng

    Hm

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    66/120

    66

    Hm

    Hm l cch vit chng trnh thnh cc m unnh. Vic to chng trnh tcc m un khin

    chng trnh trnn r rng, dvit, dkim thvc thdng nhiu ln Mt khi hm c vit, c thng gi thnh th

    vin sdng khi cn (thvin ng) Cc chng trnh nhng vit bng ngn ngcthng c cc hm di khng qu 30 dng lnh

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    67/120

    67

    Cc bc thc thi khi gi hm

    Cc thng tin ca chng trnh ang thc thi cct vo ngn xp

    a chca chng trnh mi c lu vo PC.Chng trnh mi c thc hin cho ti khi gplnh return.

    Cc thng tin ca chng trnh cc np li tngn xp. a chlnh chng trnh ccn tiptc thc hin c np vo PC v CPU stip tcchng trnh c

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    68/120

    68

    Ngt Ngt l cchdng mt chng trnh ang chy

    thc hin mt chng trnh khc khi xy ra mt skin do phn cng gy ra.

    Ngt c dng khi Mt skin khn cp cn c p ng tc thi.

    Cc skin rt chm.

    Chuyn CPU tchngsang tch cc.

    Gi hiu hnh

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    69/120

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    70/120

    70

    Cngt

    Mi ngt c mt cngt ring, chthrng cskin cn xl gp. Chng hn Timer A c cngt TAIFG CTAIFG stng bt ln khi TARv0. Khi cngt bt ln, chng trnh xl ngt

    tng ng sc gi, trtrng hp bche. Chng trnh xl mt ngt chc thc thi khi

    ngt ny khng bche bi bit GIE cho php ngt

    ton cc. Chng trnh chnh phi bt bt GIE (thucthanh ghi SR) cchngt c php thc hin

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    71/120

    71

    Vector ngt Vector ngt l vng nhcao trong bnhMSP430.

    Vng ny cha cc a chca cc ISR. Khi GIE caov mt cngt bt ln, a chca ISR tng ng sc np tIV vo PC.

    Mi ngt c mt thtu tin. Nu 2 ngt xy rang thi, th ngt c u tin cao hn sc thcthi. Thtu tin cao cao th vtr ISR trong IV cngcao.

    Cc bc thc thi khi mt ISR c gi

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    72/120

    72

    Cc bc thc thi khi mt ISR c gi

    1. Nu CPU ang thc hin mt lnh Lnh cn c hon tt.Nu CPU ang ng, xung MCLK c cp a CPU vchtch cc.

    2. Ct PC vo ngn xp.3. Ct SR vo ngn xp.4. Chn IRS c u tin cao nht5. Xa cngt ca ISR c chn.6. Xa SR.7. t a chca ISR tIV vo PC.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    73/120

    73

    chm

    chm l thi gian tlc xy ra skinti khi chng trnh xl ngt c btu.

    Trong trng hp CPU ang thc hin d1lnh, th CPU scn mt nhp hon tt vsu nhp thc hin su bc cn li trc

    khi bt u ISR.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    74/120

    74

    Khai bo ISR

    Interrupt Service Routines in C#pragma vector = TIMERA0_VECTOR

    __interrupt void TA0_ISR (void)

    void main (void){WDTCTL = WDTPW|WDTHOLD;// Stop watchdog timer

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    75/120

    75

    P2OUT = LED1;// Preload LED1 on , LED2 offP2DIR = LED1|LED2;// Set pins with LED1 ,2 to outputTACCR0 = 49999;// Upper limit of count for TARTACCTL0 = CCIE;// Enable interrupts on Compare 0TACTL = MC_1|ID_3|TASSEL_2|TACLR;// Set up and start Timer A// "Up to CCR0" mode , divide clock by 8, clock from SMCLK , clear timer__enable_interrupt ();// Enable interrupts (intrinsic)for (;;) {// Loop forever doing nothing}// Interrupts do the work

    }// ----------------------------------------------------------------------// Interrupt service routine for Timer A channel 0

    #pragma vector = TIMERA0_VECTOR__interrupt void TA0_ISR (void)

    {P2OUT = LED1|LED2;// Toggle LEDs}

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    76/120

    76

    Ngt khng che

    C mt sngt m cGIE khng che cl Li bto dao ng OFIFG. Tranh chp bnhACCVIFG. Chn RST ba xung thp

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    77/120

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    78/120

    78

    QuizzesV sao Ngt li quan trng vi HTN?

    Cngt lm g?

    Bt GIE l g?

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    79/120

    79

    Bi sau? Cng nhp xut s

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    80/120

    80

    Bi 5: Cng nhp xut s

    1. Cu trc cng nhp xut s (IO Port)

    2. Cc thanh ghi ca IO3. Chng di4. Ma tr n bn phm

    5. Li LED v LED 7 on6. LCD

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    81/120

    81

    Cng nhp xut s

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    82/120

    82

    Nhp xut thng dng nht l cc tn

    hiu svi 2 gi tr0/1(0/3,3,V) Chng trnh v d sdng PORT 1li LED

    .

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    83/120

    83

    Cng nhp xut s Cc chp MSP430 c thc t10-80 chn IO s. Mc d l chn nhp xut s, cc chn cn c dng

    cho cc khi khc nhTimer, ADC Khi ti khing cc chn u l IO s

    Chng hn chn P1.0 cn c dng lm TACLK

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    84/120

    84

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    85/120

    Cc thanh ghi ca P1

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    86/120

    86

    Port P1 direction, P1DIR: xc nh hng truyn dliu. Nubt i =0, chn P1.i sl INPUT, nu bt i=1, chn P1.i slOUTPUT . Khi khi ng cc bt P1DIR c gi tr0

    Port P1 resistor enable, P1REN: Bt mt bt ca thanh ghi nyln 1 skich hot in trko ln hoc ko xung ti chn tngng.Port P1 selection, P1SEL: Chn chn tng ng l chn nhp

    xut s(0 gi thmc nhin khi khi ng) hoc c chc nngkhc (1).

    Digital Input and Output

    P P1 i bl P1IE

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    87/120

    87

    Port P1 interrupt enable, P1IE: Cho php ngt trn chn tngng nu bt ln 1, cm ngt nu bt tng ng l 0 Port P1 interrupt edge select, P1IES: chn cnh ln to ngt

    nu bt tng ng l 0, hoc cnh xung nu l 1. Thanh ghi ny

    chc hiu lc nu thanh ghi P1IE bt Port P1 interrupt flag, P1IFG: L thanh ghi cha cc cngt .Khi mt chn c bt cho php ngt v c sthay i tn hiung nhthanh ghi P1IES t th c ngt tu7ong ng chn nybt ln. Nu GIE bt th ISR sc thc thi

    Q b h

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    88/120

    88

    Qut ma trn bn phm

    Khi snt nhn kh ln, schn chp dngiu kin cc cng tc sln.

    C thgim schn VDK bn ma trn bn

    phm

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    89/120

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    90/120

    90

    Qut bn phm1. Cp 011 cho X1X2X3 c Y1Y2Y3Y4 kim

    tra cc nt 1, 4, 7, or *. Cc nt khc s khnglm thayi Y1-Y4 v X2,X3 c gi tr 1

    2. Cp 101 cho X1X2X3 c Y1Y2Y3Y4 kim

    tra cc nt 2, 5, 8, or 0.3. Cp 110 cho X1X2X3 c Y1Y2Y3Y4 kimtra cc nt 3, 6, 9, or #.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    91/120

    91

    LED 7 on

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    92/120

    92

    Bi tip theo1. Cc loi Timer thng gp

    2. Watchdog Timer3. Timer A

    Bi 6: B nh thi

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    93/120

    93

    Bi 6: Bnh thi

    1. Cc loi timer

    2. Watchdog timer3. Timer A

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    94/120

    94

    Cc loi Bnh thiW t hd ti h h i hi b d

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    95/120

    95

    Watchdog timer: ng hcanh gc : c trong mi thit bdngMSP430. Chc nng chnh l chng li chng trinh nhng c thsdng nhmt bm thi gian chnh xc.Timer_A: C trong mi thit b. Loi Timer A c 3 knh v l thit

    bnh thi n gin nht. Timer Ac thm thi gian, o tn shoc m cc skin lpTimer_B: Chc trong mt schp ln. y l cu trc mrng caTimer A vi sknh ln n 7 , c sdng to cc xung PWMiu khin ng cTimer Basic1: Chc trong mt schp MSP430F4XX.Real time clock: Chc trong mt schp MSP430 ln

    Watchdog Timer (WDT)

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    96/120

    96

    Chc nng chnh: chng li chng trnh nhlpqun, treo VK

    WDT c mt thanh ghi m ln WDTCNT v khi tgii hn trn (65535) n s khi ng li VK.

    Chng trnh c vit phi nh kxa thanh ghim ln ca WDT trc khi t gii hn. Nu khnghthng sbreset.

    Tuy nhin hot ng ca WDT c cu hnh bithanh ghi iu khin 16-bit WDTCTL. Bt btWDTHOLT sngng hot ng ca WDT

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    97/120

    97

    WDT lun sdng xung nhp DCO 1MHz. Khi hot ng,bt WDTCNTCL bt ln 1 sxa thanh ghi WDTCNT

    // Watchdog config: active , ACLK /32768 -> 1s interval; clear counter

    #define WDTCONFIG (WDTCNTCL|WDTSSEL)// Include settings for _RST/NMI pin here as well

    // ----------------------------------------------------------------------

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    98/120

    98

    //

    void main (void){WDTCTL = WDTPW | WDTCONFIG;// Configure and clear watchdog

    P2DIR = BIT3 | BIT4;// Set pins with LEDs to outputP2OUT = BIT3 | BIT4;// LEDs off (active low)for (;;) {// Loop foreverLED2 = IFG1_bit.WDTIFG;// LED2 shows state of WDTIFGif (B1 == 1) {// Button upLED1 = 1;// LED1 off} else {// Button downWDTCTL = WDTPW | WDTCONFIG;// Feed/pet/kick/clear watchdogLED1 = 0;// LED1 on

    }}}

    Sdng WDT nhmt b h thi

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    99/120

    99

    nh thi Nu khng dng kim tra li chng

    trnh, WDT c thc sdng nhmtbnh thi .

    Bt bt WDTTMSEL trong thanh ghiWDTCTL st WDT vo chm, tuynhin khi t gii hn th WDTIFG bt lnm khng khi ng li VK

    Vic c WDTCNT cho bit thi gian xy mt skin

    Timer A

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    100/120

    100

    Timer_A

    L bnh thi a nng thng dng, c mt trong mi chp

    MSP430. Bnh thi gm 2 khi ln Timer block: L khi li vi thanh ghi TAR 16 bt, khi

    chn xung nhp v khi chia tn lm chm. Khi TARkhng c tn hiu ra nhng c thbt cTAIFG khi TARv0

    Capture/compare channels: L khi bt tn hiu v sosnh, c 3 khi c lp vi cc chs0,1 v 2. Khi ny

    gm 0 khi con nhsau

    Khi bt tn hiu Capture :Nhn tn hiu cn m tbnngoi

    Khi so snh Compare Gm thanh ghi TACCR0 (hoc1 2) t hi h t b h

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    101/120

    101

    p Gm thanh ghi TACCR0 (hoc1,2) m stn hiu hoc c t bng phn mm.

    Khi to ngt : bt cCCIFG khi TAR v TACCR bng

    nhau. Khi ly mu Sample to tn hiu so snh .

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    102/120

    102

    Cc ch nh thi

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    103/120

    103

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    104/120

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    105/120

    105

    Hthng nhng

    Ts. L Mnh Hi

    Khoa CNTT,

    H Kthut Cng nghTP HCM

    Embedded Systems

    Chapter 10 : Communication

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    106/120

    106

    p

    1. Communication Peripherals in the MSP430

    2. Serial Peripheral Interface3. SPI with the USI

    4. SPI with the USCI

    5. Inter-integrated Circuit Bus

    6. A Simple IC Master with the USCI_B0

    7. A Simple IC Slave with the USI on a F2013

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    107/120

    107

    Communication Peripherals in the

    MSP430 The universal serial interface (USI) is a lightweight module, which

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    108/120

    108

    S 30The universal serial interface (USI) is a lightweight module, whichis included in the small F20x2 and F20x3 devices. For a start, ithandles only synchronous communicationSPI and IC.

    Universal Serial Communication Interfacelarger devices in the MSP430F2xx and MSP430F4xx families containone or more universal serial communication interface (USCI)

    modules. The hardware handles almost all aspects of thecommunication, unlike the USI, so the software needs only to providethe data to transmit and store the received data in normal operation.Typically this requires only a couple of small interrupt service

    routines. Universal Synchronous/Asynchronous Receiver/Transmitter

    (USART) is an older module, which has been superseded by the

    USCI.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    109/120

    109

    Serial Peripheral Interface The serial peripheral interface was introduced by

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    110/120

    110

    p p yMotorola and is the simplest synchronouscommunication protocol in general use.

    The only problem is that it is not a fixed standard likeIC. There are plenty of options within standard SPIand innumerable variations that go beyond this.

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    111/120

    The main pins are labeled SOMI, SIMO, and CLK (2 USCI)

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    112/120

    112

    SPI block in USCI

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    113/120

    113

    SPI operationThere are separate shift registers for transmitting and receiving

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    114/120

    114

    Moreover, these registers are double-buffered and the user has nodirect access to the shift registers themselves.

    This means that a byte is moved from the receive shift register toRXBUF as soon as reception is complete, which leaves the shiftregister ready to accept the next transfer.Similarly, a byte written to TXBUF remains in its buffer until the

    previous byte has been transmitted, at which point it is moved to thetransmit shift register.This relaxes considerably the constraints on handling interrupts inthe USI, where the shift register must be read and updated rapidlybetween transfers. Although there are separate registers,reception and transmission are not independent because of thenature of SPI.

    Read an examples C code for SPI communication

    For Master

    msp430g2xx3_uscia0_spi_09.cAnd for Slave

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    115/120

    115

    msp430g2xx3_uscia0_spi_10.c

    Inter-integrated Circuit Bus The IC bus was introduced by Philips (now NXP)

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    116/120

    116

    g The I C bus was introduced by Philips (now NXP)

    Semiconductors. It was widely adopted and has becomeeven more popular since its patents expired in 2006. It is atrue bus, unlike SPI, with a specification and user manualthat can be downloaded from NXP.

    Revision 03 of the user manual is document UM10204,

    dated June 19, 2007. It is clearly written and a lot easier toread than you might expect. The IC bus uses only two,bidirectional lines:

    Serial data (SDA).

    Serial clock (SCL).

    Structure

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    117/120

    117

    Operation: Read from page 534 -542

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    118/120

    n tp Hthng nhng

    1. Cu trc tng thca vi iu khin2. Skhi ca chp TI MSP430G25533. BnhMSP430G2553: Phn bvtr bnhv

    ngha tng vng nh4. Cu to CPU v ngha cc thanh ghi trong CPU

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    119/120

    5. Cc loi xung nhp (clock) v cc chhot ng6. Hm v cc bc thc hin khi gi mt hm7. Khi nim ngt v chng trnh phc vngt8. Cc bc thc thi khi thc hin mt ngt.9. Cc chcng sut thp.10. Cc cng nhp xut s(Digital Input and Output).11. Qut ma trn bn phm. Chng di12. Cc loi LCD. Schn kt ni theo chun

    HD44780

    13. Cc loi timer. Cu trc v hot ng ca WDT14. Cu trc v cc chhot ng ca TimerA015. Kt ni Serial Peripheral Interface (SPI). Cu trc

    v hot ng.

    16. Kt ni Inter-integrated Circuit Bus (I2C).

  • 8/12/2019 megacode_LapTrinhViDieuKhienMSP430

    120/120