1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Cơ sở lý thuyết MSP430

33 289 6
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cơ sở lý thuyết MSP430
Trường học Hanoi University of Science and Technology
Chuyên ngành Electrical Engineering
Thể loại Giáo trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 33
Dung lượng 16,06 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430 .Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430. Cơ sở lý thuyết MSP430

Trang 1

Tim hiéu KIT eZ430-RF2500 & ho vi diéu khién MSP430

CHUONG II: GIOI THIEU HO VI DIEU KHIEN MSP430

roSs

2.1 Giới thiệu

MSP430 là một sự kết hợp chặt chẽ của một CPU RISC 16 bit, những khối

ngoại vi, và hệ thông xung linh hoạt MSP430 đã đưa ra được những giải pháp tốt cho

những nhu cầu ứng dụng với nhiều phiên bản khác nhau MSP430 có một số phiên bản

Hinh 2.1: Mét sé phién ban ho vi diéu khién MSP430 Dưới đây là những đặc điểm tổng quát của họ vi diéu khién MSP430 (tôi chỉ

trình bày một số đặc điểm cơ bản):

# Kiến trúc nguồn điện cực thấp để mở rộng tuôi thọ của Pin

- _ 0.8 uA chế độ xung thời gian thực

4 Xử lý tín hiệu tương tự với hiệu xuất cao:

- _ 12-bit hoặc 10-bit ADC — 200Ksps, cảm biến nhiệt, V(Ref)

Phan Thanh Nam

Trang 2

+ 16 bit RISC CPU cho phép duoc nhiều ứng dụng, thê hiện một phần ở kích

thước code lập trình

làm việc

- _ Thiết kế nhỏ gọn làm giảm lượng tiêu thụ điện và giảm giá thành

- _ Tối ưu hóa cho những chương trình ngôn ngữ bậc cao như C, C++

- _ Có 7 chế độ định địa chỉ

- _ Khả năng ngắt theo véc-tơ lớn

4 Trong lập trình cho bộ nhớ Flash cho phép thay đổi Code một cách linh hoạt, phạm vi rộng, bộ nhớ Flash còn có thể lưu lại được nhật ký của dữ liệu

Hình 2.2: Cấu trúc vi điều khiển MSP430

Cấu tric vi diéu khién MSP430 c6 mot dia chi khéng gian nho dugc chia sé véi

các thanh ghi chức năng đặc biệt (SFRs), các bộ ngoại vi, RAM, và bộ nhớ Flash/ROM được biểu diễn trên hình vẽ Việc truy cập mã chương trình luôn luôn được thực hiện trên một địa chỉ chẵn Dữ liệu có thể được truy cập như là những byte hay những từ

Không gian địa chỉ nhớ có thể mở rộng hơn nữa cho những kế hoạch khác

Phan Thanh Nam

Trang 3

Tim hiéu KIT eZ430-RF2500 & ho vi diéu khién MSP430

Flash¥ROM Interrupt Word/Byte

10000h OFFFFh

Vector Table Word/Byte

OFFEOh OFFDFh

Flash/ROM Word /Byte

16-Bit Peripheral Modules Word 0100h

OFFh

&Bit Peripheral Modules Byte

010h OFh ;

oh special Functian Registers Byte

Hình 2.3: Sơ đồ bộ nhớ

2.2.1 Flash/ROM

Địa chỉ bắt đầu của Flash/ROM phụ thuộc vào số lượng Flash/ROM hiện có và

thay đối tùy theo loại chip Địa chỉ kết thúc cho Flash/ROM là OFFFFh Flash cé thé

được sử dụng cho cả mã và chương trình Những bảng từ hay byte có thê được cất và

sử dụng trong Flash/ROM mà không cần bảng sao chép tới RAM trước khi sử dụng chúng

2.2.2 RAM

RAM có địa chỉ bắt đầu tại 0200h Địa chỉ kết thúc của RAM phụ thuộc vào số

lượng RAM có và thay đôi tùy thuộc vào từng dòng vi điều khiển RAM có thể được

sử dụng cho cả mã và dữ liệu

2.2.3 Những khối ngoại vỉ

Những module giao tiếp ngoại vi được xắp xếp vào không gian địa chỉ Không gian địa chỉ từ 0100h tới 01EFFh được dành riêng cho module ngoại vị 1ó bit Những module này có thê được truy cập với những từ chỉ dẫn(lệnh)

Không gian địa chỉ từ 010h tới 0FFh được dành riêng cho module ngoại v1 8 bịt

Phan Thanh Nam

Trang 4

2.2.4 Những thanh ghỉ chức năng đặc biệt ( SFR )

Một vài chức năng ngoại v1 được cầu hình trong thanh ghi chức năng đặc biệt Những thanh ghi chức năng đặc biệt được nằm trong 16 byte thấp của không gian địa chỉ Những SFR phải được truy cập bằng việc sử dụng câu lệnh byte

2.2.5 Truy cập bộ nhớ

Những byte được năm tại những địa chỉ chẵn hay lẻ Những từ chỉ nằm tại địa

chỉ chấn được biểu diễn trong hình 1-3 Khi sử dụng từ chỉ dẫn, chỉ những địa chi chan

có thê được sử dụng Những byte thấp của một từ luôn luôn là một địa chi chan Byte cao ở tại địa chỉ lẻ tiếp theo Ví dụ, nếu một từ dữ liệu nằm tại địa chỉ xxx4h, kết thúc byte thấp của từ đữ liệu nằm tại địa chỉ xxx4h, và byte cao của từ đó năm tại địa chỉ

Trang 5

Tim hiéu KIT eZ430-RF2500 & ho vi diéu khién MSP430

CHUONG II: TAP LENH VI DIEU KHIEN

ross

2.1.1 Dinh dia chi truc tiép (Immediate Mode)

MOV #30H, RO ; diva gia tri 30h vao thanh ghi RO

Example:

Before:

OFF16h OFF14h OFF12h

O10AAh

010A8h 010A6h

MOV #45h,TONI

Address Register Space

01192h 00045h 040BDh | PC

0FF 16h Oxxxxh +01192h 01234h 010A8h Oxxxxh

After:

OFF 18h OFF 16h OFF 14h OFF 12h

010AAh 010A8h 010A6h

Address Space Oxxxxh

OFF14h | O4AEBh | PC R11] 002A7h OFF 14h | 04AEBh R11] OO2A7h

OFF12h | Oxxxxh OFF12h | Oxxxxh

DFA34h | Oxxxxh 0FA34h | 0xxxxh

0FA32h | 05BC1h 0FA32h | 05BC1h

OFA30h | Oxxxxh 0FA30h | 0xxxxh

002A8h 0xxh 002A8h 0xxh

002A7h 012h 002A7h [| 05Bh

002A6h 0xxh 002A6h Oxxh

Trang 6

-10-2.1.3 Định địa chỉ gián tiếp tự tăng (Tndicrect Autoincrement Mode)

MOV @R10+,0(RO); lấy nội dung của thanh ghỉ R10 vào thanh ghỉ R0 và đông thời tăng địa chỉ thanh ghi R10 lên 2

Ví dụ lúc đầu Thanh ghi R10 có Chứa địa chỉ của ô nhớ (123h) có chứa giá trị

là 10h, thanh ghi RO có chứa địa chỉ là 0AFH thì sao khi thực hiện lệnh đó ta có kết quả như sau: địa chỉ con trỏ của R10 tăng lên 125h, còn địa chỉ con trỏ của R0 không đối là 0AFH, Nhưng nó có chứa giá trị là 10h

2.1.4 Định địa chỉ trực tiếp thanh ghi (Immediate Mode)

MOV RO,R1 ; dua giá trị thanh ghỉ RŨ vào thanh ghi RÌ

Sinh vién thuc hién

Phan Thanh Nam

am

Trang 7

Tim hiéu KIT eZ430-RF2500 & ho vi diéu khién MSP430

2.1.5 Định địa chỉ tuyệt đối (Absoluto Mode)

MOV &EDE,&TONI ; diva gia trị của địa chỉ có chứa nhãn EDE vào địa chỉ

có chứa nhấn TONI

Ví dụ EDE có địa chỉ là 0FEOh chứa giá trị là 1234h, TONI có địa chỉ là IFFh

có giá trị bất kỳ Sau khi thực hiện lệnh thì TONI có giá trị là 1234h

2.1.6 Định địa chỉ giữ các biến (Symbolic Mode)

MOV EDE,TONI ; dica gia tri cua biến có địa chỉ của biến EDE vào biến TONI

Vi dụ EDE có giá trị 10h, TONI có giá trị bất kỳ Sau khi thực hiện lệnh TONI

;Dest address TONI=01114h

2.1.7 Định địa chỉ con trỏ (Indexed Mode)

MOV 2(R5),3(R6) ; dua gid tri tai dia chi cua R5 +2 vao dia chi R6+3

Phan Thành Nam

Trang 8

Example: MOV 2(R5),6(R6); Before: ; Address Register Address Register Space Space Oxxxxh PC 0FF16h | 00006h R5 01080h 0FF16h | 00006h R5| 01080h 0FF14h | 00002h R6| 0108Ch OFF14h | 00002h R6| 0108Ch 0FF12h | 04596h | PC 0FF12h | 04596h 0108Ch 01094h | 0xxxxh +0006h 01094h | 0xxxxh 01092h | 05555n 01092h gtogzn [ 01234n 01090h | 0xxxxh 01090h | 0xxxxh 01080h 01084h | 0xxxxh _ +0002h 01084h | 0xxxxh 01082h | 01234h HDD 01082h | 01234h 01080h | 0xxxxh 01080h | 0xxxxh

Tóm lại, các cách định địa chỉ rất quan trọng và cần thiết trong quá trình tìm hiểu vi điều khiến và tập lệnh của nó Đề dễ nhớ chúng ta có thê xem bảng tóm tắt các chế độ định địa chỉ ở bên đưới Bảng 2.1 Tóm tắt các chế độ định địa chỉ

ADDRESS MODE S|D SYNTAX EXAMPLE OPERATION

Register e\|e MOV Rs,Rd MOV R10,R11 R10 >Ri1

Indexed e«ịe MOV X(Rn).Y(Rm) MOV 2(R5).6(R6) M(2+R5) > M(6+R6)

Symbolic (PC relative) | @| @ MOV EDE,TONI M(EDE) > M(TONI)

Absolute @|@| MOV &MEM,&TCDAT M(MEM) > M(TCDAT) Indirect * MOV @Rn,Y(Rm) MOV @R10,Tab(R6) M(R10) > M(Tab+R6)

autoincrement |®| | MOV@Rnrm MOV @R10:.Rf1 B10 + 2-2 R0

Immediate s MOV #X,TONI MOV #45,TONI #45 > M(TONI)

NOTE: S = source

2.2

D = destination

Các lệnh thông dung

Sinh viên thực hiện

Phan Thành Nam

-_ 13-

Trang 9

0 0011010 | opcode |BW| As source Single-operand arithmetic

0 0;0;170;0 40;070 |BW] As source RRC Rotate right through carry

0 07;0;,170;0 470/071] 0 | As source SWPB Swap bytes

0 0011100101110 |BW|Ị A: source RRA Rotate right arithmetic

0 07;0;,170;0 ;0;171] 0 | As source SXT Sign extend byte to word

0 0;0;170;]0)11;/0]7 0 | BW] As source PUSH Push value onto stack

0 07;0;,170;0 471;071] 0 | As source CALL Subroutine call; push PC and move source to PC

0 07;0;,170;0 41;170] 0 10 | 010 | 0 | 0 | 0 | RETI Return from interrupt; pop SR then pop PC

0 0 | 1 condition 10-bit signed offset Conditional jump; PC = PC + 2xoffset

0 01101010 10-bit signed offset JNE/JNZ Jump if not equal/zero

0 011101011 10-bit signed offset JEQ/JZ Jump if equal/zero

0 01101110 10-bit signed offset JNC/JLO Jump if no carry/lower

0 0110111 10-bit signed offset JC/JHS Jump if carry/higher or same

0 01111010 10-bit signed offset JN Jump if negative

0 O;1;,1704 1 10-bit signed offset JGE Jump if greater or equal (N == V)

0 0111110 10-bit signed offset JL Jump if less (N != V)

0 011111 10-bit signed offset JMP Jump (unconditionally)

opcode source Ad| B/W} As | destination Two-operand arithmetic

0 1010 source Ad |B/W| As | destination |MOV Move source to destination

0 11011 source Ad |B/W| As | destination | ADD Add source to destination

0 1110 source Ad | B/W} As | destination | ADDC Add wicarry: dst += (src+C)

0 11/1] 1 source Ad | B/W} As | destination | SUBC Subtract w/ carry: dst -= (src+C)

1 01010 source Ad} B/W} As | destination | SUB Subtract: dst -= src

1 01011 source Ad | B/W} As | destination | CMP Compare; (dst-src); discard result

1 01110 source Ad | B/W} As ]| destination |DADD Decimal (BCD) addition: dst += sre

1 0/11 { 1 source Ad | B/W} As | destination | BIT Test bits; (dst & src); discard result

1 11010 source Ad | B/W | As destination | BIC Bit clear; dest &=~src

1 11011 source Ad| B/W} As | destination | BIS "Bit set" - logical OR; dst |= src

1 11/10 source Ad | B/W} As | destination | XOR Bitwise XOR; dst “= src

1 1/1] 1 source Ad | B/W | As destination | AND Bitwise AND; dst &= src

As src Syntax | Description

0 n Rn _| Register direct The operand is the contents of Rn

1 n x(Rn) | Indexed The operand is in memory at address Rn+x

2 n @Rn_ | Register indirect The operand is in memory at the address held in Rn

3 n @Rn+ | Indirect autoincrement As above, then the register is incremented by 1 or 2

Addressing modes using RO (PC)

3 | 0 | #X | Immediate @PC+ The operand is the next word in the instruction stream

Addressing modes using R2 (SP) and R3 , special-case decoding

1 2 &LABEL | Absolute The operand is in memory at address x

2 2 #4 ~—| Constant The operand is the constant 4

3 2 #8 Constant The operand is the constant 8

0 3 #0 ~—_| Constant The operand is the constant 0

1 3 #1 Constant The operand is the constant 1 There is no index word

2 3 #2 Constant The operand is the constant 2

3 3 #-1 | Constant The operand is the constant -1

Trang 10

CHUONG III: TRINH BIEN DICH

IAR EMBEDDED WORKBENCH

* Kickstart Version — Free

Gidi han 4KB trong code C

Không giới hạn code asm

Hỗ trợ từ web cia hang TI

#* Baseline Vesion ~ $795

Giới hạn 12KB trong code C

Không giới hạn code asm

Trang 11

Tim hiéu KIT eZ430-RF2500 & ho vi diéu khién MSP430

2#* JAR Embedded Workbench IDE

IAR Information Center for MSP430

Here you will find ail the information you need to get started: tutornals, example

and refe

USER GUIDES Complete product documentation in PDF formet give you all the user and reference information you need

=

EXAMPLE PROJECTS Exsmole sopliceations that demonstrates

hardware cerioherals for

specific devices and evaluation boards

ang reieaseé i

/ NUM

Hinh 3-1 Giao dién lam viéc

X“ IAR Fmbedded Workhench IDF

fet CF eT Sd Add Existing Project

Trang 12

5-Chọn ngôn ngữ lập trình trong dự án (ví dụ: asm, c, c++ ), xong ta chọn OK

để tiếp tục

Tool chain: MSP430 | Project templates:

Hình 3-4 Dat tén va lwu trie du an

Phan Thanh Nam

Trang 13

Tim hiéu KIT eZ430-RF2500 & ho vi diéu khién MSP430

Khi ta lưu lại dự án xong chương trình sẽ hiện ra như hình 3-5 khi đó có một file mau 1a: main.c trong dự án vừa tạo ra

2F” IRR Embedded Workbench IDE

Files ie E #include "iod30.h"™

rnain.c : ị

gi _] Qutput /f Stop watchdog timer to prevent time out reset

WOTCTL = WOTPW + WOTHOLD;

Tiếp theo ta chọn loại vi điều khiến để biên dịch Nhấp chuột phải vào My

Project - Debug rồi chon Options Ta chon General Options chon thé Target chon Device dé chon loai vi diéu khién dé bién dich

Phan Thanh Nam

Trang 14

Options for node “My Project”

Hinh 3-6 Cho loai vi diéu khién trong ho MSP430

Chon File/New/Flile dé tao mot tập tin mới, rồi tiếp tuc chon File/Save as dé lưu tập tin (có phần mở rộng *.asm hoặc *c ) vào thư mục chứa dự án Nhấp chuột

phai vao My Project - Debug r6i chon Add/Add files dé thém tap tin vào dự án

Phan Thanh Nam

Trang 15

Tim hiéu KIT eZ430-RF2500 & ho vi diéu khién MSP430

File Edit View Project Simulator Tools Window Help

1wnrksace ae

FilEs | con | ti | Of MSP430X2XX Demo — Software Toqwgle P1.0

5 i x

7 Bes ff ACLK = n/a, MCLE = SMCLE = default DCO

ff Stop watchdog timer

ff Set P1.0 to output direction

ff volatile to prevent optimization

ff Toggle Pi 0 using exclusive-OR

Phan Thanh Nam

Trang 16

9-34.3 Biên dịch và mô phỏng dự án

Sau khi soạn thảo xong chương trình nguồn Bạn tiến hành biên dịch chương

trình Để biên dịch dự án chúng ta chọn Projec1/Make Có một cửa số bắt buột chúng

ta phải lưu lại Workspace

Save irr l& My Project >| - HI F‡ E-

Hình 3-9 Lưu lại Workspace trước khi biên dịch

Sau khi lưu lại Workspace chúng ta sẽ thấy thông báo hiện ra báo chương trình

có lỗi hay không

x

Building configuration: My Project - Debug

Updating build tree

msp430x2xx_fet_l.c

Linking

Total number of errors: 0

Total number of warnings: 0

Hinh 3-10 Cita số biên dịch thành công

Sau khi biên dịch thành công chúng ta có thể mô phỏng thử dự án Công việc này khá quan trọng, nó cho phép ta kiểm tra và phát hiện ra các vấn đề về giải thuật của chương trình mà trình biên dịch không làm được Đề tiễn hành mô phỏng ta chọn Projec/Download and Debug (CưI + D) đề Debug — mô phỏng dự án

Phan Thành Nam

Ngày đăng: 09/05/2014, 13:28

TỪ KHÓA LIÊN QUAN

w