View
41
Download
9
Category
Preview:
Citation preview
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 1
Hướng dẫn nhanh sử dụng
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 2
Lục mục
Hướng dẫn thiết lập Jump và nạp cho board ST ARM Development Tr.3 Tạo dự án với Keil ARM Tr.4 Các bước nạp chương trình qua FLASH LOADER DEMOSTRATOR Tr.12 Nguyên lý mạch Tr.23
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 3
Hướng dẫn thiết lập Jump và nạp qua FLASH LOADER DEMOSTRATOR cho board ST ARM Development
J1 chọn áp vào chân Vbat của ARM
Vị trí Chế độ 1-2 3.3v 2-3 Nguồn cấp
từ pin 3.3v
J4 chọn áp vào chân BOOT1 của ARM Vị trí Chế độ 1-2 GND 2-3 3.3v
J11 Chọn nguồn cấp cho Board mạch Vị trí Chế độ 1-2 USB
2-3 Nguồn cấp ngoài DC ( 9 tới 15V )
SW1 Chọn chân BOOT
Vị trí Chế độ 1 USB
boot 2 BOOT0
CHẾ ĐỘ HOẶT ĐỘNG ARM Nạp J4:1-2 SW1(2):OFF Chạy J4:2-3 SW1(2):ON
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 4
Tạo dự án với Keil ARM Giới thiệu cách tạo mới dự án cho vi xử lý ARM Cortex-M3 STM32F103RC bằng Keil ARM. Cùng với đó là cách tích hợp bộ thư viện chuẩn CMSIS của ST dành cho dòng ARM này.
1. Bộ thư viện CMSIS ST cung cấp cho người dùng bộ thư viện chuẩn lập trình giao tiếp với thiết bị ngoại vi tương thích với chuẩn CMSIS. Thông qua bộ thư viện này, lập trình viên dễ dàng giao tiếp với các thiết bị phần cứng chuẩn của các dòng Cortex-M3 của ST.
Thư viện được chia làm 2 phần: + phần hỗ trợ nhân Cortex-M3: bao gồm mã giao tiếp với nhân CPU, và đoạn mã start up code. + phần hỗ trợ các thiết bị ngoại vi: chứa toàn bộ các hàm thư viện điều khiển thiết bị ngoại vi của ST. Cấu trúc thư viện CMSIS như sau:
Library + CMSIS + CM3 + CoreSupport //thư mục chứa hàm hỗ trợ nhân Cortex-M3 + DeviceSupport + ST + STM32F10X //System startup code + startup //Start up code + Documentation //tài liệu hỗ trợ + STM32F10x_StdPeriph_Driver //thư mục chứa hàm hỗ trợ thiết bị ngoại vi + inc //thư mục chứa header file + src //thư mục chứa mã nguồn
* Lưu ý: Các hàm được viết và đặt tên theo chuẩn CMSIS, lập trình viên cần tuân theo các quy tắc của CMSIS khi sử dụng hàm, tránh viết lại các hàm truy cập thẳng vào phần cứng khi không cần thiết.
2. Khởi tạo dự án mới + Mở Keil IDE, chọn menu “Project->New uVision Project” để tạo dự án mới. Giả dụ đặt tên dự án mới này là 24h_Led. * Lưu ý: Thường khi tạo project mới hệ thống file quản lý dự án của Keil hay bố trí ở thư mục dự án, điều này dễ bị lẫn lộn với các file nguồn, ta nên tạo một thư mục con để quản lý các file dự án này. Chọn chip STM32F103RC cho board
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 5
Hình 1: Khởi tạo dự án
+ Sau khi dự án mới được tạo, ta nên tổ chức lại hệ thống mã nguồn để dễ dàng theo dõi.
Hình 2: Tổ chức thư mục mã nguồn
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 6
Như hình 2 ở trên ta tạo 4 nhóm file, các nhóm “CMSIS”, “StdPeriph_Driver” và “Start up” sẽ là các files từ thư viện CMSIS của ST.
* Lưu ý: Khi tạo mới dự án, Keil sẽ hỏi người dùng có sử dụng "start up code" sẵn có không. Chúng ta không sử dụng "start up code" này của Keil mà sẽ dùng của ST có trong bộ thư viện chuẩn. + Tích hợp thư viện CMSIS vào chương trình
Chúng ta sẽ lần lượt tích hợp các thư mục trong thư viện vào dự án như sau: + Nhóm “CMSIS”: thêm file core_cm3.c ở thư mục “\Libraries\CMSIS\CM3\CoreSupport” và system_stm32f10x.c ở thư mục “\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x” + Nhóm “StdPeriph_Driver”: thêm các file liên quan đến điều khiển ngoạI vi, ở dự án này chúng ta cần điều khiển cổng GPIO, UART nên cần thêm các file: stm32f10x_gpio.c, stm32f10x_usart.c và stm32f10x_rcc.c ở thư mục “\Libraries\STM32F10x_StdPeriph_Driver\src”. + Nhóm “Start up”: thêm file startup_stm32f10x_hd.s ở thư mục “Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm”. + Nhóm “User”: chứa file của người dùng, giả sử thêm file main.c của ta vào đây.
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 7
* Lưu ý: Đối với nhóm StdPeriph_Driver, nên căn cứ vào nhu cầu điều khiển ngoại vi để thêm vào các file tương ứng, tránh thêm các file dư thừa vì làm tăng thời gian biên dịch và tốn tài nguyên hệ thống. + Khai báo thư mục thư viện cho dự án Sau khi thêm các file cần thiết cho dự án, chúng ta chưa thể biên dịch thành công được vì còn thiếu đường dẫn tới các file khai báo thư viện CMSIS Mở khung điều khiển cấu hình dự án
Chọn tab “C/C++”
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 8
Thêm các đường dẫn thư mục sau vào dự án: + \Libraries: thư mục chứa Libraries CMSIS + \Libraries\CMSIS\CM3\CoreSupport + \Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x + \Libraries\STM32F10x_StdPeriph_Driver\inc * Lưu ý : Người dùng có thể thêm vào các đường dẫn thư mục khác của dự án.
3. Cấu hình project Sau khi đã thêm các file cần thiết cho dự án, chúng ta phải thiết lập các thông số cơ bản để Keil có thể biên dịch ra file thực thi. + Để nạp chương trình xuống board , chúng ta cần cấu hình Keil biên dịch ra file hex(hoặc bin). Mở khung cấu hình dự án, chọn tab “Output”, check và ô “Create HEX File”
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 9
+ Để tiện sắp xếp tài nguyên của dự án, ta nên xếp các file tạm được sinh ra bởI Keil vào các thư mục riêng
Tương ứng với các file object(tab Output) và linker(tab Listing) ta lưu trong thư mục “Obj” và “Lst” cho tiện theo dõi sau này. + Cần lưu ý là với bộ thư viện CMSIS, chúng ta sử dụng khá nhiều kỹ thuật “macro” trong lập trình. Có một số “macro” cần khai báo “define” sẵn trong dự án để có thể biên dịch thành công.
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 10
* Lưu ý: Nếu sử dụng bộ thư viện chuẩn cho thiết bị ngoại vi, nên khai báo macro: USE_STDPERIPH_DRIVER.
4. Trình diễn + Nếu có sẵn board , chúng ta có thể nạp trực tiếp file .hex sau khi biên dịch xuống chíp thông qua Flash Downloader của ST bằng cổng COM. + Nếu không có board, chúng ta có thể xem bằng cách dùng Debug Simulator của Keil
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 11
+ Chạy Debug chương trình, mở cửa sổ theo dõi các thiết bị ngoại vi ở menu “Peripherals” chọn ngoại vi tương ứng, giả sử đó là Port C của GPIO.
Bấm F10(hoặc F11) để chạy debug từng dòng lệnh đồng thời theo dõi giá trị của Port C thay đổi.
5. Tài nguyên dự án
Download bộ thư viện theo chuẩn CMSIS của ST tại đây.
Download dự án mẫu tại đây.
* Lưu ý là khi down về, các bạn để 2 file zip trong cùng một thư mục và giải nén. Nếu khác thư mục thì cấu hình đường dẫn trỏ tới thư viện CMSIS sẽ bị sai ( tham khảo lại mục 3. Cấu hình project) dẫn đến biên dịch project bị lỗi.
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 12
Các bước nạp chương trình qua FLASH LOADER DEMOSTRATOR
B1 : chuyển ARM qua chế độ nạp qua các J4 và SW1(2) B2 : Chạy chương trình nạp FLASH LOADER DEMOSTRATOR và thiết lập thông số như trong hình
Bấm chọn Next NẾU HIỆN RA THÔNG BÁO NHƯ SAU
Chú ý làm các bước như sau :
1. Rút nguồn cấp ra khỏi boad chờ sau 5s rùi cấp nguồn lại 2. Kiểm tra lại cáp COM
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 13
3. Kiếm tra lại JMP thiết lập ARM mode nạp đã đúng chưa ? Nếu như bạn đã làm như các bước trên mà vẫn hiện ra thông báo đó thì có thể ARM của bạn không vào được bootloarder hoặc ARM bạn đã fuse “WRITE PROTECT : ENABLE”
B2 : Nếu chương trình nhận ra bootloader từ ARM , lúc đó chương hiện ra thông báo như sau :
Bạn bấm vào button “Next” Hoặc thông báo
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 14
Khi đó bạn bấm vào button “Remove protection” Chờ cho chương trình xóa xong bạn Nhấn “Close “ bạn chạy lại chương trình và làm lại như Bước 1 B3 : Khi bạn gặp thông báo
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 15
Bạn bấm “Next” B4 : Bạn thiết lập thông số như trong hình dưới
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 16
Bạn chọn file nạp bằng cách bấm vào nút “…”
Bạn tiếp tục click chọn “File of type”
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 17
Chọn “Hex File (*.hex)” Khi đó bạn trỏ tới file hex mà bạn muốn nạp cho ARM
Xong bạn bấm button “Open”
Và khi đó chương trình sẽ ra trở lại màn hình như sau
Nếu bạn muốn chương trình kiểm tra lại nội dung file nạp có đúng với nội dung của ARM hay
không bạn click chọn “Verify after download”
B4: Bạn tiếp tục bấm “Next” Và đây là chương trình như hình sau
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 18
Khi nạp xong chương trình thông báo :
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 19
Bạn chọn “Close” để đóng chương trình B5: thiết lập lại Mode ARM để chạy chương trình trong ARM
Bạn muốn khóa chương trình thì sao ? Bạn thực hiện lại từ bước B1 tới B4 như lúc nạp chương trình : bạn thiết lập thông số như hình dưới
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 20
Và bấm chọn “Next”
Chọn “Yes”
Chương trình đang thực hiện mode “READ PROTECTION”
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 21
Khi thực hiện xong chương trình thông báo
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 22
Bạn chọn “Close” để đóng chương trình và thiết lập lại Mode ARM để chạy chương trình trong ARM
Lưu ý : Tuyệt đối không chọn Mode “Enable : WRITE PROTECTION” khi chọn mode này ARM sẽ vĩnh viễn không nạp được qua chương trình FLASH LOADER DEMOSTRATOR nữa .
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 23
Nguyên lý mạch
RESET
JP1
JTAG
135791113151719
2468101214161820
C9
22PF
PA9
PA10
S1RESET
R7
10K
PB12
PA2
DB1
R30
10K
PA1
R23
1K
R8
10K
C20
104
OSC
32_IN
C1
104
J11
USB 1 2 3 4
JNTR
ST
TP2+3.3v1
PA9
C8
22PFD
5
LED
USB_D
M
DB0
PA5
PA12
PB13
PA1
PA4
R2
1M
VCC
-3.3
PB7
PB4
SW1
1243
OSC
32_OU
T
BOO
T0
C13
104
+5V
S4
DB5TP3
GN
D1
PB10
JTDI
VCC
-3.3
PC12
R18
10K
D7
LED
+C
22100uF
VCC
-3.3
DB0
USB_D
P
C5
104
Y1
8Mhz
R20
500
DB7
J111 2 3
PB8
PA0
R27
10K
USB_5V
PA15
PB5
VCC
-3.3
PA1
J4BOO
T 1
1 2 3
JTDI
PB13
PB11
PA11
U4
AE1117-3.3V
3
1
2V_in
GND V_out
VCC
-3.3
PA2
PA3
PB15
PA3
J7RC
A JACK
1
2
R31
500
RES
ET
BOO
T0
C2
104
R6
10K
D2
LED
PB1
S3
PA15
USB_EN
PA5
U2
SPEAKER
OSC
_OU
T
PC10
R14
10K
PA8
C4
104
C21
104
J213579111315
246810121416
DB7
J8SD C
ARD
SOC
KET
12345678 9
NSS
MO
SIG
ND
VCC
SCK
GN
DM
ISOD
AT1
DAT2
C11
104
D8
4007
VCC
-3.3
PB7
Y2
32.768
J113579111315
246810121416
VCC
-3.3
D6PW
LED
R19
10K
DB6
PC9
U1STN
32F103RBT6
1
23456
7
891011
121314151617 18 1920212223
2425 26 27 28 29 3031 32
33 34 35 3637383940
414243444546 47 484950
51525354 55 56 57 58 59
60
61 6263 64
VBAT
PC13/AN
TI_TAM
PPC
14/OSC
32_INP
C15/O
SC32_O
UT
PD0/O
SC_IN
PD1/O
SC_O
UT
NR
ST
PC0/AD
C10
PC1/AD
C11
PC2/AD
C12
PC3/AD
C13
VSSAVD
DA
PA0-WKU
P/U
SART2_C
TS/AD
C0/TIM
2_CH
1_ETRPA1/U
SART2_R
ST/ADC
1/TIM2_C
H2
PA2/USAR
T2_TX/ADC
2/TIM2_C
H3
PA3/USAR
T2_RX/AD
C3/TIM
2-CH
4
VSS4
VDD
4
PA4/SPI1_NSS/U
ART2_C
K/AD
C4
PA5/SPI1_SCK/AD
C5
PA6/SPI1_MISO
/ADC
6/TIM3_C
H1
PA7/SPI_MO
SI/ADC
7/TIM3_C
H2
PC4/AD
C14
PC5/AD
C15
PB0/ADC
8/TIM3_C
H3
PB1/ADC
9/TIM3_C
H3
PB2/BOO
T1
PB10/I2C2_SC
L/USAR
T3_TXPB11/I2C
2_SDA/U
SAR
T3_RX
VSS1
VDD
1
PB12/SPI2_N
SS/I2C2_SM
BAL/UAR
T3_CK/TIM
1_BKINPB13/SPI2_S
CK/U
SART3_C
TS/TIM
1_CH
1NPB
14/SPI2_MISO
/USAR
T3_RTS
/TIM1_C
H2N
PB15/SPI_MO
SI/TIM1_C
H3N
PC6
PC7
PC8
PC9
PA8/USAR
T1_CK/TIM
1_CH
1/MC
0PA9/U
SART1_TX/TIM
1_CH
2PA10/U
SART1_R
X/TIM1_C
H3
PA11/USAR
T1_CTS/C
ANR
X/USBD
M/TIM
1_CH
4PA12/U
SART1_R
TS/CAN
TX/USBD
P/TIM1_ETR
PA13/JTMS
-SWD
AT
VSS2
VDD
2
PA14/JTCK
-SWC
LKPA15/JTD
I
PC10
PC11
PC12
PD2/TIM
3-ETR
PB3/JTDO
PB4/JTRST
PB5/I2C1_SM
BA
PB6/I2C1_SC
L/TIM4_C
H1
PB7/ISC
1_SDA_TIM
4_CH
2
BOO
T0
PB8/TIM4-C
H3
PB9/TIM4_C
H4
VSS3
VDD
3
PB10
+C
1810U
F
USB_D
M
R5
10K
Q3Q A1015
1
3
2
R4
10K
PB15
D11N
4148
PA3
C7
12PF
C17
104
DB3
PA10
PC12
OSC
_IN
PB0
R25
22
VC
C-3.3
BATTER
Y
BOO
T1
PB0
PA12
R15
10K
J9
12
J613579111315
246810121416
USB_D
P
PB2
R22
10K
PB9
VCC
-3.3
PA0
PB3
JTCK
R17
1K
VCC
-3.3
PA5
JTCK
R9
10K
VC
C-3.3
RESET
R28
500
VC
C-3.3
PA4
D3
LED
VCC
-3.3
VCC
-3.3
JNTR
ST
PC11
R11
1K
R1
10KPB6
PA14
1/1V1.1
Fukusei Electronic Co.,Ltd
Custom
11
Sunday, Novem
ber 28, 2010
Title
SizeD
ocument N
umber
Rev
Date:
Sheet
of
OSC
_OU
T
PA6
PA13
PA9
PA14
C10
104
R24
1.5K
S2
PA7
DB3
PB9
J12
OU
T 5V
12
C12
104
BOO
T1
D4
LED
VCC
-3.3
OSC
32_IN
PA8
PC8
PC9
PD2
R10
10K
VC
C-3.3
PB12
JTDO
R29
500
Q1
Q C
828
2
3
1
PC11
PA6
PB4
R16
1K
R13
10K
PA7
PA2
BOO
T0
DB4
PB5
VCC
-3.3
DB4
+C
1910U
F
R12
10K
1 3
2
C14
104
PC8
JTMS
PA10
PB0
PA11
PA0
C16
104
OSC
32_OU
T
VCC
-3.3
PB14
DB2
TP1+5V1
+C
23100uF
U3
MAX3232/SO
15 16
13
81011
134526
12 914
7
GND VCC
R1IN
R2IN
T2IN
T1INC
1+C
1-C
2+C
2-
V+V-
R1O
UT
R2O
UT
T1OU
T
T2OU
T
R21
10K
BATTER
Y
JTMS
PC10
PC13
PA13
VCC
-3.3
RESET
PA6
C15
104
PC13
C3
104D
B1
PB14
C24
104
PB8
PA7
VCC
-3.3
PB6
BT13V LI BATTER
Y
12
U5
LM7805 / TO
2201
3
2
INO
UT
GND
VCC
-3.3
DB2
PB1
PD2
PA4
R3
10K
R26
22
PB11
USB_5V
OSC
_IN
J3123
J10
DB9 1 2 3 4 5 6 7 8 9
JTDO
DB6
PB3
C6
12PFV
CC
-3.3
DB5
J513579111315
246810121416
Fukusei Electronics Phone : 0909596937 Email : phucthinhel@yahoo.com
Trang 24
Nếu bạn có thắc mắc về cách nạp chương trình bạn có thể liên hệ số 0909596937 hoặc email:
phucthinhel@yahoo.com hoặc t2l_product@yahoo.com
Recommended