12
Vi điều khiển STM8 (20-02-2013) Trang 1/12 arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected] ) HƯỚNG DẪN SỬ DỤNG TRÌNH BIÊN DỊCH IAR EMBEDDED WORKBENCH CHO VI ĐIỀU KHIỂN STM8 1. GIỚI THIỆU CHUNG * Nội dung bài viết: - Cài đặt trình biên dịch IAR Embedded Workbench. - To workspace/Project trong IAR. - Thêm thư viện vào project. - Viết chương trình chớp led. - Debug chương trình với ST-LINK. * Tính năng (Features): STM8 là vi điều khiển (vđk-MCU) 8 bits của STMicroelectronics. Các ngoại vi tương đương các hãng khác, nhưng giá thành thấp hơn. Ngoài các ngoại vi cơ bản như UART, Timer, ADC, PWM,…, STM8 còn có dao động nội 16MHz, 128kHz, RTC, EEPROM, Beep, ADC 10/12 bits, DAC 12 bits, DMA, Self- programming, Touch-sensing,… Hỗ trợ nạp/debug SWIM bằng 4 dây (RESET, SWD, VCC, GND). Chân ra (pin-out) được thiết kế giống nhau về vị trí các chân cấp nguồn và chân ngoại vi nên có thể thay thế mà không cần vẽ lại board. Một số series của dòng vi điều khiển STM8 + STM8S, dòng vđk cơ bản (Standard), các ngoại vi giới hạn so với các series khác. + STM8L, dòng vđk tiết kiệm điện (ultra-Low-power EnergyLite™) + STM8A, dòng vđk chuyên dụng cho ô tô (Automotive) + STM8T, dòng vđk chuyên dụng cho cảm biến chạm (Touch-sensing) * Trình biên dịch (compiler) và debugger: Hiện nay có 2 trình biên dịch phổ biến cho dòng STM8 là Cosmic và IAR. - Cosmic thường được dùng kết hợp với môi trường soạn thảo ST Visual Develop được cung cấp bởi STMicroelectronics. Tuy nhiên, Cosmic vẫn có thể được dùng với Eclipse. Trình biên dịch Cosmic cho phép biên dịch miễn phí 8KB. Nếu đăng ký sẽ được cấp license 32KB miễn phí trong 1 năm. Hỗ trợ debug các mch nạp phổ biến như: ST-LINK, RAISONANCE,… - IAR là chương trình tích hợp giữa trình biên dịch và môi trường soạn thảo. IAR được tải về và cài đặt với 2 phiên bản: + Phiên bản Kick Start: Biên dịch miễn phí 8KB và không giới hạn vthời gian. + Phiên bản Trial: Biên dịch 32KB trong 30 ngày. Sau đó phải mua license để tiếp tục sử dụng. Hỗ trợ debug các mạch nạp phổ biến như: ST-LINK, STice. * Mạch thí nghiệm STM8S-DISCOVERY Bài viết này sẽ hướng dẫn sử dụng dòng STM8 với board thí nghiệm STM8S-DISCOVERY BOARD

Huong dan su dung iar cho stm8(20 feb2013)

Embed Size (px)

Citation preview

Vi điều khiển STM8 (20-02-2013) Trang 1/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

HƯỚNG DẪN SỬ DỤNG TRÌNH BIÊN DỊCH IAR EMBEDDED WORKBENCH CHO VI ĐIỀU KHIỂN STM8

1. GIỚI THIỆU CHUNG

* Nội dung bài viết: - Cài đặt trình biên dịch IAR Embedded Workbench. - Tạo workspace/Project trong IAR. - Thêm thư viện vào project. - Viết chương trình chớp led. - Debug chương trình với ST-LINK.

* Tính năng (Features):

STM8 là vi điều khiển (vđk-MCU) 8 bits của STMicroelectronics. Các ngoại vi tương đương các hãng khác, nhưng giá thành thấp hơn. Ngoài các ngoại vi cơ bản như UART, Timer, ADC, PWM,…, STM8 còn có dao động nội 16MHz, 128kHz, RTC, EEPROM, Beep, ADC 10/12 bits, DAC 12 bits, DMA, Self-programming, Touch-sensing,… Hỗ trợ nạp/debug SWIM bằng 4 dây (RESET, SWD, VCC, GND). Chân ra (pin-out) được thiết kế giống nhau về vị trí các chân cấp nguồn và chân ngoại vi nên có thể thay thế mà không cần vẽ lại board.

Một số series của dòng vi điều khiển STM8 + STM8S, dòng vđk cơ bản (Standard), các ngoại vi giới hạn so với các series khác. + STM8L, dòng vđk tiết kiệm điện (ultra-Low-power EnergyLite™) + STM8A, dòng vđk chuyên dụng cho ô tô (Automotive) + STM8T, dòng vđk chuyên dụng cho cảm biến chạm (Touch-sensing) * Trình biên dịch (compiler) và debugger: Hiện nay có 2 trình biên dịch phổ biến cho dòng STM8 là Cosmic và IAR. - Cosmic thường được dùng kết hợp với môi trường soạn thảo ST Visual Develop được cung cấp bởi

STMicroelectronics. Tuy nhiên, Cosmic vẫn có thể được dùng với Eclipse. Trình biên dịch Cosmic cho phép biên dịch miễn phí 8KB. Nếu đăng ký sẽ được cấp license 32KB miễn phí trong 1 năm. Hỗ trợ debug các mạch nạp phổ biến như: ST-LINK, RAISONANCE,…

- IAR là chương trình tích hợp giữa trình biên dịch và môi trường soạn thảo. IAR được tải về và cài đặt với 2 phiên bản:

+ Phiên bản Kick Start: Biên dịch miễn phí 8KB và không giới hạn về thời gian. + Phiên bản Trial: Biên dịch 32KB trong 30 ngày. Sau đó phải mua license để tiếp tục sử dụng. Hỗ trợ debug các mạch nạp phổ biến như: ST-LINK, STice.

* Mạch thí nghiệm STM8S-DISCOVERY Bài viết này sẽ hướng dẫn sử dụng dòng STM8 với board thí nghiệm STM8S-DISCOVERY BOARD

Vi điều khiển STM8 (20-02-2013) Trang 2/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Board mạch STM8S-Discovery gồm 2 phần chính: Phần bên phải là mạch nạp/debug ST-LINK. Phần bên trái là mạch thí nghiệm, sử dụng chip STM8S105C6 có lắp thêm thạch anh ngoài, touch-sensing và các pin-out. - Phần mạch nạp/debug được nối với phần mạch thí nghiệm STM8S105C6 theo chuẩn SWIM, bằng 4 dây SWD, RESET, VCC và GND. Trong đó các jumper SB2 (SWD) và SB1 (RESET) dùng để nối/ tách rời phần mạch nạp/debug với phần mạch thí nghiệm.

- Chi tiết hơn, các bạn có thể xem schematic và hướng dẫn theo link sau: www.st.com/st-web-ui/static/active/en/resource/technical/document/data_brief/CD00282475.pdf

- Datasheet rút gọn của STM8S105C6:

www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00200092.pdf

- Datasheet đầy đủ của dòng STM8S: http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00190271.pdf

2. CÀI ĐẶT TRÌNH BIÊN DỊCH IAR EMBEDDED WORKBENCH

Bài viết này hướng dẫn các bạn sử dụng chương trình IAR Embedded Workbench for

STMicroelectronics STM8, 8K KickStart Edition, v.1.31. Như đã trình bày ở trên, phiên bản kickstart cho phép biên dịch miễn phí 8KB, không giới hạn

thời gian. Đây được xem là trình biên dịch miễn phí cho các ứng dụng nhỏ như: STM8S003-8KB. Đối với các ứng dụng đến 32KB, các bạn có thể sử dụng phiên bản dùng thử 30 ngày, cài đặt

tương tự như bản kickstart. Hiện nay, các phiên bản bẻ khóa của IAR cũng có thể biên dịch không giới hạn. Tuy nhiên,

phiên bản này được không khuyến khích nên sẽ không được đề cập đến trong bài viết này.

- Đăng ký để nhận được License Number, License Key và link down load Download chương trình IAR Embedded Workbench for STMicroelectronics STM8, 8K KickStart Edition, v. 1.31 theo link sau:

http://supp.iar.com/Download/SW/?item=EWSTM8-KS8 - Các bạn có thể sử dụng thông tin của tác giả như sau:

- Tiến hành cài đặt, nhập License Number và License Key trong quá trình cài. - Lưu ý: driver cho mạch debugger ST-Link cũng được cài đặt cùng với IAR, chú ý chọn YES khi

được hỏi.

Link download bản KickStart 1.31: http://www.mediafire.com/?2scba2yx26zc7ne hoặc http://dl.dropbox.com/u/4163751/share_arm.vn/HuongDan_STM8/EWSTM8-KS-1311.exe License Number: 9558-986-544-3455 License Key: UTDT1P0BQ3K0SLLFCFANZWNXXJ2A580GQV6EV6DHUMNPQ2GZHRL42I60UOOD5TVYEC0MFGB57NU3GUQWMPT5ST0YL5T78OH446MZSWSQYQTB2OOWWC4YMIXZCNBTKBW3NIX0Y354DVG0ERPIW14CKFDKUYE543R0QLNDXPHLX00D1WTYZDV1HWHHSY2YB# Feature: EWSTM8-KS Version: 01_WIN Temporary license (Licno:9558-986-544-3455), expires 2037-12-31

Vi điều khiển STM8 (20-02-2013) Trang 3/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Sau khi cài đặt thành công sẽ xuất hiện icon trên desktop

3. TẠO WORKSPACE/PROJECT TRONG IAR - Mở chương trình IAR Embedded Workbench - Tạo workspace bằng cách vào menu File New Workspace

- Tạo project STM8S_blinkLED trong ổ đĩa C:\STM8Prj\ bằng cách: Vào menu Project Create New Project…

- Chọn STM8 Series và C project OK

Vi điều khiển STM8 (20-02-2013) Trang 4/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Chọn đường dẫn C:\STM8Prj\ STM8S_blinkLED và đặt tên STM8S_blinkLED trong cửa sổ Save As SAVE

- Sau khi thực hiện các bước trên ta được cửa sổ như sau:

- Vào menu File Save Workspace để lưu workspace vào đường dẫn sau: C:\STM8Prj\

Vi điều khiển STM8 (20-02-2013) Trang 5/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Cây thư mục sau khi tạo Workspace và Project

- Lưu ý: một workspace có thể quản lý nhiều project.

4. THÊM THƯ VIỆN VÀO PROJECT - Tải thư viện STM8S_StdPeriph_Driver và file stm8s_conf.h theo link dưới đây. Sau đó copy vào thư mục project STM8_blinkLED

http://www.mediafire.com/?dqqssgfidz1pad1 hoặc http://dl.dropbox.com/u/4163751/share_arm.vn/HuongDan_STM8/STM8S_StdPeriph_Driver.rar

- Thư mục sau khi copy sẽ có cấu trúc như sau:

STM8Prj là thư mục workspace. Bên trong thư mục này có chứa file STM8Prj.eww để quản lý workspace

STM8S_blinkLED là thư mục project. Bên trong thư mục này có chứa file STM8S_blinkLED.ewp để quản lý project

main.c là file code chính của chương trình

Vi điều khiển STM8 (20-02-2013) Trang 6/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Khai báo thư viện trong IAR bằng cách nhập chuột phải vào Project STM8S_blinkLED chọn Option…

- Chọn C/C++ Compiler Preprocessor, nhập vào đường dẫn: $PROJ_DIR$\ và $PROJ_DIR$\STM8S_StdPeriph_Driver\inc OK

Vi điều khiển STM8 (20-02-2013) Trang 7/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Khai báo #include "stm8s_conf.h" trong main.c

- Nhấn F7 để build project (hoặc vào menu Project Rebuild All) - Xem kết quả build thành công, Total number of errors: 0

5. VIẾT CHƯƠNG TRÌNH CHỚP LED. Yêu cầu:

- Viết chương trình chớp LED (LD1) trên chân PD0 của chip STM8S105C6, sử dụng board thí nghiệm STM8S-DISCOVERY BOARD. Phân tích:

- Chương trình cần điều khiển chân PD0 của STM8S105C6 xuất tín hiệu xung vuông để chớp LED. Do đó, chỉ cần sử dụng thư viện gpio của ST.

Thực hành:

- Chọn chip STM8S105C6 cho project bằng cách click phải vào project STM8S_blinkLED chọn Option… General Options Device chọn STM8S105C6. xem hình minh họa:

Vi điều khiển STM8 (20-02-2013) Trang 8/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Thêm thư viện STM8S_StdPeriph_Driver và file stm8s_conf.h vào project như bước 4 đã trình bày ở trên.

- Mở file stm8s_conf.h thêm khai báo thư viện gpio. Khai báo #define _GPIO (1) Save, xem hình minh họa:

- Thêm đoạn chương trình sau vào file main.c

#include "stm8s_conf.h" unsigned int delay; int main( void ) { GPIO_DeInit(GPIOD); GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST); while(1) { GPIO_WriteReverse(GPIOD, GPIO_PIN_0); for(delay=0;delay<64000;delay++){;} } // return 0; //remove Warning[Pe111] }

Vi điều khiển STM8 (20-02-2013) Trang 9/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Thêm thư mục Source vào project bằng cách click chuột phải vào Project STM8S_blinkLED Add Add Group… nhập ‘Source’ OK

- Thêm file stm8s_gpio.c vào project bằng cách click chuột phải vào Thư mục Source Add Add Files… Ta chọn file \STM8S_StdPeriph_Driver\src\stm8s_gpio.c Open

- Nhấn F7 để build project (hoặc vào menu Project Rebuild All) - Xem kết quả build thành công, Total number of errors: 0

Vi điều khiển STM8 (20-02-2013) Trang 10/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Các chương trình con dưới đây đã được viết sẵn trong file source stm8s_gpio.c. Tham khảo các

chương trình con khác trong file stm8s_gpio.h

GPIO_DeInit(GPIOD); GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST); GPIO_WriteReverse(GPIOD, GPIO_PIN_0); GPIO_WriteHigh(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); GPIO_WriteLow(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); ………

- Thư viện được viết sẵn trong STM8S_StdPeriph_Driver khá đầy đủ cho các ứng dụng và được khai báo trong file stm8s_conf.h. Tham khảo chi tiết trong file stm8s_conf.h

6. DEBUG CHƯƠNG TRÌNH VỚI ST-LINK

- Kiểm tra các jumper SB1 và SB2 trên STM8S-DISCOVERY BOARD. Chân SWD và RESET

phải nối với phần mạch thí nghiệm.

Vi điều khiển STM8 (20-02-2013) Trang 11/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Cấu hình mạch nạp/debug ST-LINK bằng cách click phải vào project STM8S_blinkLED

chọn Option… Debugger Chọn ST-LINK. Chọn mục ST-LINK bỏ chọn tất cả trong khung download OK. Xem hình minh họa:

- Kết nối board STM8S-DISCOVERY vào máy tính, kiểm tra máy tính nhận được mạch ST-

LINK trong Device manager

- Trong chương trình IAR, chọn Menu Project Download and Debug

Vi điều khiển STM8 (20-02-2013) Trang 12/12

arm.vn – Cộng đồng ARM Việt Sharing is Getting Author: bmthuong ([email protected])

- Click phải vào dòng lệnh ta muốn đặt điểm dừng chọn Toggle Breakpoint

- Nhấn F5 hoặc icon để start chương trình

- Nhấn vào icon để thoát khỏi debug mode

- Tìm hiểu thêm cách debug chương trình với các phím tắt F5, F10, F11, Run to Cursor, Add

watch,…

- Download Workspace mẫu theo link sau:

http://www.mediafire.com/?gqsmzxdfify0cxh hoặc http://dl.dropbox.com/u/4163751/share_arm.vn/HuongDan_STM8/STM8Prj.rar