10
TÌM HIỂU VI ĐIỀU KHIỂN STM8 (STM8S003F3) VÀ CÁCH SỬ DỤNG STVD (ST VISUAL DEVELOP) 1. Tổng quan về STM8 Dòng STM8 có 3 loại chính: STM8S: Standard - loại thường dùng và phổ biến nhất. STM8L: Ultra Low Power – loại tiết kiệm năng lượng nhất. STM8Ax: Automotive – thường gặp trong các thiết bị giải trí, điều khiển của xe hơi, tàu thủy, máy bay, … Ở đây ta chỉ quan tâm đến dòng stm8s. Stm8s là dòng vi điều khiển 8 bits của hãng ST Microelectronic. Tương tự như các dòng vđk 8bit khác như AVR, PIC, 8051, … stm8s có các ngoại vi cơ bản như GPIO, ADC 10 bits, 3 bộ TIMER, UART, SPI, I2C, PWM … bên cạnh đó nó còn hỗ trợ các ngoại vi phức tạp như USB, CAN, IrDA, LIN. Bộ nhớ nội 128 bytes EEPROM 8Kbytes Flash. Rất dễ xây dựng và phát triển các ứng dụng nhỏ hay driver (ứng dụng chuyên biệt để thực hiện một chuyện gì đó như điều khiển động cơ, giao tiếp với LCD, …). Mức điện áp hoạt động cho cả 3v3 và 5v. Được hỗ trợ thư viện xây dựng sẵn của ST. Code trực quan, sinh động bằng ngôn ngữ C. Nạp chương trình vô cùng đơn giản bằng giao thức 1 dây (SWIM) cực nhanh. Và một điều cực kì đáng quan tâm là giá vô cùng rẻ (tầm 7.000 -> 20.000 1 chip). Trong loạt bài này tác giả sẽ hướng dẫn các bạn xây dựng ứng dụng trên chip stm8s003f3 có các thông số như sau: Speed 16MHz Connectivity I²C, IrDA, LIN, SPI, UART/USART Peripherals Brown-out Detect/Reset, POR, PWM, WDT Number of I /O 16 Program Memory Size 8KB (8K x 8) Program Memory Type FLASH EEPROM Size 128 x 8 RAM Size 1K x 8 Voltage - Supply (Vcc/Vdd) 2.95 V ~ 5.5 V Data Converters A/D 5x10b Oscillator Type Internal Operating Temperature -40°C ~ 85°C Package / Case 20-TSSOP (0.173", 4.40mm Width)

Gioi Thieu Stm8s

Embed Size (px)

Citation preview

  • TM HIU VI IU KHIN STM8 (STM8S003F3) V CCH S DNG

    STVD (ST VISUAL DEVELOP)

    1. Tng quan v STM8

    Dng STM8 c 3 loi chnh:

    STM8S: Standard - loi thng dng v ph bin nht.

    STM8L: Ultra Low Power loi tit kim nng lng nht.

    STM8Ax: Automotive thng gp trong cc thit b gii tr, iu khin ca xe hi, tu thy,

    my bay,

    y ta ch quan tm n dng stm8s.

    Stm8s l dng vi iu khin 8 bits ca hng ST Microelectronic. Tng t nh cc dng vk 8bit

    khc nh AVR, PIC, 8051, stm8s c cc ngoi vi c bn nh GPIO, ADC 10 bits, 3 b TIMER, UART, SPI,

    I2C, PWM bn cnh n cn h tr cc ngoi vi phc tp nh USB, CAN, IrDA, LIN. B nh ni 128

    bytes EEPROM 8Kbytes Flash. Rt d xy dng v pht trin cc ng dng nh hay driver (ng dng

    chuyn bit thc hin mt chuyn g nh iu khin ng c, giao tip vi LCD, ). Mc in p

    hot ng cho c 3v3 v 5v. c h tr th vin xy dng sn ca ST. Code trc quan, sinh ng bng

    ngn ng C. Np chng trnh v cng n gin bng giao thc 1 dy (SWIM) cc nhanh. V mt iu

    cc k ng quan tm l gi v cng r (tm 7.000 -> 20.000 1 chip).

    Trong lot bi ny tc gi s hng dn cc bn xy dng ng dng trn chip stm8s003f3 c cc

    thng s nh sau:

    Speed 16MHz

    Connectivity IC, IrDA, LIN, SPI, UART/USART

    Peripherals Brown-out Detect/Reset, POR, PWM, WDT

    Number of I /O 16

    Program Memory Size 8KB (8K x 8)

    Program Memory Type FLASH

    EEPROM Size 128 x 8

    RAM Size 1K x 8

    Voltage - Supply (Vcc/Vdd) 2.95 V ~ 5.5 V

    Data Converters A/D 5x10b

    Oscillator Type Internal

    Operating Temperature -40C ~ 85C

    Package / Case 20-TSSOP (0.173", 4.40mm Width)

  • Hin ti trn th thng c bn cc loi kit STM8 Discovery cho tng dng ring bit ca chip ny.

    STM8S Discovery (dng con stm8s105 cng tng t stm8s003f3),

    STM8A Discovery, STM8L Discovery. 3Kit ny nhn chung l nh nhau, ch c

    mt vi im khc bit nh v phn thit lp (config) cc chn chc nng, cc

    ngoi vi. Cho nn nu khng c iu kin thit k mch hc, cc bn c

    th tm mua cc kit ny thc hnh cho tin. Mt phn ng quan tm l

    trn mi kit u c mt phn np v debug. y thc cht l 1 mch ST-

    LINK c chc

    nng np

    bng SWIM.

    Nu khng c kit ny, chng ta c 2 s la chn, mt l t

    thit k mch ST-LINK (phn ny s c bn bc sau) hoc

    mua mt mch np ST-LINK c bn ngoi th trng.

    2. Thit k phn cng cho STM8

  • Trn y l mt mch nguyn l c bn cho dng STM8. Hu nh con STM8 no cng chy c

    vi s nguyn l tng t. Mch trn c thit k di dng Adapter cn mt mch pht trin hon

    chnh s c cp nht sau. C mt s iu cn lu l:

    + Dng STM8S003 c th khng cn thch anh ngoi v c thit lp bng dao ng ni. Nu

    dng thch anh ngoi th cn ni tip chn OSCOUT vi thch anh 1 tr < 100ohm

    + Chn VCAP cn ni vi t 1uf (nn dng t taltan).

    + C th khng cn tr ko ln cho chn RESET v n c tr ni ko ln trong chip ri.

    + VCC c th l 5v hay 3v3 do chip c th hot ng c 2 mc in p.

    + Khi cn np chng trnh cho chip, ta quan tm 4 dy l VDD, GND, SWIM v RESET.

    3. Phn mm cho STM8S

    C nhiu cng cng lp trnh cho STM8S (gi l IDE) ta dng STVD (ST Visual Develop) IDE

    c dng xy dng cho tt c cc dng vk khin ca ST, thng qua trnh bin dch (compiler)

    Cosmic C for STM8. Dng STVP (ST Visual Programmer) np hoc thit lp kin kt (link) STVP vo

    STVD debug v np nh bnh thng.

    + Ti STVD http://www.st.com/web/catalog/tools/FM147/CL1794/SC1808/SS1767/PF210567

    + Ti STVP http://www.st.com/web/en/catalog/tools/PF210568

    2 link trn, ti bng cch nhn nt download pha di trang. Sau ci t 2 phn ny nh mt phn

    mm bnh thng.

    + Ti gi pht trin cho STM8S http://www.st.com/web/en/catalog/tools/PF257962

    + Ti Cosmic C http://www.cosmicsoftware.com/download.php

    Xung pha di trang, ch STM8 32k. N s ra 1 ci nh vy

  • Sau khi nhp thng tin ng k, ta s download

  • Sau ta ci t nh bnh thng. Lc ci t xong, c ku ng k th ta s ng k vi thng tin

    ta in vo bc trn. Ci xong, ta s thy trnh dch ca mnh nm trong 1 ch tng t C:\Program

    Files\COSMIC\CXSTM8_32K

    4. M t th vin STM8S standard firmware library

    y l th vin ST vit sn n gin ha cc bc thit lp ngoi vi bng cch s dng hm.

    Gi s thay v thit lp thanh ghi GPIOA gi tr 0x01, ta ch cn gi hm GPIOW(GPIO,0x01). Vic ny lm

    n gin v tit kim thi gian rt nhiu cho lp trnh vin trong cc chng trnh ln. Cn lm quen vi

    vic ny thay v thit lp gi tr cho tng thanh ghi. Cng cn phi ni thm trong mt s trng hp

    nht nh, vic gn gi tr cho thanh ghi c li hn s dng hm tng t.

    Cch t chc cc file trong th vin

  • Lu 2 file l stm8s.h: b comment dng no chn chip tng ng. stm8_conf.h c cha cc ngoi vi

    m mnh s dng, khi thao tc vi ngoi vi no th cn chn ngoi vi .

    5. Thit lp cho STVP nhn chip stm8s003f

    Menu Configure -> Configure ST Visual Programmer, chn nh hnh:

  • Ni dy SWIM, RESET, GND ca mch vi mch np (c th ni VCC ca ngun vi mch np nu

    mch cha c ngun ring nhng 2 mch ny phi chung GND). Nu nh thit t ng, khi ta chn

    Read -> Current tab, ta c th c c ni dung ca chip.

    Trong trng hp ny, tc gi dng mch np c sn trn kit STM8S Discovery np cho con

    stm8s003f. lm c iu ny, ta phi dng m hn, g 2 con tr 0hm SB1 v SB2 nh hnh ri dng

    dy ni tng ng qua mch cn np. Khi s dng mch np ST-LINK th cng lm theo cch tng

    t.

  • np 1 file xung chip, ta chn Open -> chn file *s19 hay *sx hay *hex. Thng th sau khi

    bin dch xong, file *s19 s c to ra trong tn th mc project -> STVD - > Cosmic -> debug.

    Qua cc bc trn, ta bit c cch c ni dung ca 1 chip v ghi d liu xung chip. Mi dng

    vk ca ST cng c thc hin mt cch tng t vi cc chun np tng ng.

    6. To project vi STVD v chng trnh cc chng trnh mu.

    Sau khi ti gi pht trin STM8S v v gii nn, ta s thy cu trc ca n tng t nh hnh sau:

    Th mc Libraries cha 2 th vin, ta ch quan tm n th vin STM8S_StdPeriph_Driver, th mc

    Projects cha cc project mu v cng l project ca mnh to ra.

    + Copy th mc Project_template v paste vo ngay ti , i tn n thnh th mc, v d l

    My_own_project, tng t nh hnh

  • + M STVD, chn File -> Open Workspace, m file \STM8SDISCOVERY_dev\Project\My_own_project\STVD\Cosmic\STVD_workspace.stw + Click phi vo Project -> settings, chn trnh dch v chip nh 2 hnh sau:

  • + Click Debug instrument -> Target Settings, chn Swim ST-Link + Click phi FWLib pha di stvd_project khung bn tri, chn Add Files to Folder, tm file sm8s.h trong STM8SDISCOVERY_dev\Libraries\ STM8S_StdPeriph_Driver\inc. + Thm dng #include trong main.c + B comment trong file stm8s.h nh hnh sau: ca file stm8s.h

    + Click phi vo Include Files, chn Add Files to Folder, chn file stm8s_conf.h trong My_own_project\inc + Chp ngoi vi s dng vo th mc tng ng. Gi s dng GPIO, th ta Add files stm8s_gpio.h v stm8s_gpio.c t STM8SDISCOVERY_dev\Libraries\STM8S_StdPeriph_Driver\inc v STM8SDISCOVERY_dev\Libraries\STM8S_StdPeriph_Driver\src vo Include Files\FWLib v Source Files\FWLib + Sau , chn Build -> Build all hoc nhn F7. Sau khi build xong, chn Debug -> Start Debugging debug chng trnh. Sau bc build chng trnh, 1 file *.s19 s c to ra trong th mc My_own_project\STVD\Cosmic\Debug, c th dng file ny np trc tip bng STVP khng qua debug.

    Cu Lc B Robot i hc Bch Khoa TPHCM

    Phng th nghim thy lc kh nn xng c kh C1 i hc Bch Khoa TPHCM