Cài đặt thiết bị

Một phần của tài liệu Khảo sát họ vi điều khiển MSP430 (Trang 68)

2.2 Mođun eZ430-RF2500

2.2.2.2 Cài đặt thiết bị

Cắm eZ430-RF2500 vào cổng USB của máy tính. Góc bên phải ở phía dưới destop sẽ xuất hiện:

Máy tính đã xác nhận có 1 ổ cứng mới. Sau đó sẽ xuất hiện:

Máy tính đã xác nhận chip của MSP430 theo chuẩn UART. Sau đó màn hình sẽ xuất hiện:

Máy tính tự động tìm ổ đĩa mới. Chọn No, not this time rồi nhấp Next. Màn hình sẽ xuất hiện:

Chọn Install the software automatically (Recommended) rồi tiếp tục bấm Next (Chỉ thực hiện được lệnh này khi đã cài đặt phần mềm IAR Embedded Workbench Kickstart for MSP430 V4.10E). Màn hình sẽ xuất hiện:

Bấm Continue Anyway để cho máy tính tiếp tục tìm ổ cứng mới. Khi quá trình này xong, máy tính đã nhận được thiết bị eZ430 – RF2500.

Sau đó chọn vào Device Manager. Màn hình sẽ xuất hiện:

Màn hình phía bên phải ta mở tab: Port (COM & LPT). Khi đó màn hình sẽ xuất hiện:

Ta thấy trong tab: Port (Com & LPT) có dịng MSP430 Application UART (COM 5). Cho biết rằng máy tính đã nhận thiết bị eZ430 – RF2500. Ở đây COM 5 chỉ là nơi cắm thiết bị, có nghĩa máy tính nhận thiết bị eZ430 – RF2500 ở cổng USB số 5.

Ta đã xong phần cài đặt thiết bị, phần tiếp theo là làm theo sử dụng phần mềm, cách tạo 1 Project mới và cách thêm vào 1 Project đã có.

2.2.2.3 Hướng dẫn sử dụng phần mềm (The IAR Embedded Workbench IDE):

2.2.2.3.1 Giới thiệu:

IAR Embedded Workbench IDE là phần mềm hỗ trợ đầy đủ các cơng cụ lập trình cho dịng sản phẩm MSP 430. Ở khn khổ một tài liệu hướng dẫn sử dụng xin được giới thiệu tới các bạn một vài đặc tính của phần mềm như sau:

+ Trình biên dịch cấp cao được tối ưu hóa MSP430 IAR C/C++. + Hỗ trợ trình biên dịch MSP430 IAR Assembler.

+ Cơng cụ gỡ lỗi mạnh IAR C-SPY® debugger.

Sau khi cài đặt xong click vào đường link thì màn hình sẽ xuất hiện biểu tượng sau:

Hình 29: Cửa xổ khởi động IAR Embedded Workbench IDE

Click vào biểu tượng ta có màn hình soạn thảo như sau:

Hình 30: Màn hình của IAR Embedded Workbench IDE

Giới thiệu cửa xổ soạn thảo của chương trình:

Hình 31: Cửa sổ soạn thảoIAR Embedded Workbench IDE

2.2.2.3.2 Hướng dẫn tạo New Project:

Tắt cửa xổ Startup . Để tạo một Project trước tiên bạn phải đóng hết các Workspace và Project có sẵn . Chọn File / close Workspake. Sau đó bạn vào Window / close All Editor Tabs .

Hình 32: Đóng Workspace có sẵn

Hình 33: Đóng tất cả Editor Tabs

Để tạo một Project ta chọn Project / Create New Project. Hộp thoại xuất hiện:

Hình 34: Cửa xổ tạo project mới

Kiểm tra Tool chain chọn MSP430 sau đó lick OK. Một cửa xổ mới hiện ra bạn đặt tên File rồi Save để hoàn thành các bước tạo một Project mới.

Bạn nên tạo sẵn một thư mục mới trong ổ đĩa cứng để lưu những Project của mình.

Hình 35: Cửa xổ Save chương trình

Project sẽ xuất hiện trong vùng làm việc .

Hình 36: Cửa xổ vùng làm việc

Bạn phải Save vùng làm việc một lần nữa. Chọn File / Save Workspace, một hộp thoại xuất hiện yêu cầu bạn chọn nơi lưu vùng làm việc. Bạn nên chọn Save vào cùng thư mục với Project đã tạo.

Bạn đã tạo một Workspace, bạn có thể tạo nhiều Project khác nhau trong cùng một vùng làm việc. Như vậy bạn đã tạo thành công một Project mới, bạn có thể bắt đầu lập trình trong vùng soạn thảo.

Hình 38: Cửa sổ soạn thảo

2.2.2.3.3 Thiết lập các thông số cho Project:

Để thiết lập các thông số cho Project bạn Click Baitap1-Debug trên cửa xổ Workspace sau đó vào Project / Options .

Tùy chọn Target trong category General Options được hiển thị . Cửa xổ Device cho chúng ta chọn loại chip cần lập trình , bạn hãy chọn MSP 430F2274.

Hình 39: Cài đặt các tùy chọn

Chọn C/C++Compiler trong Category để hiển thị trang tùy chọn biên dịch, chọn ngơn ngữ lập trình C .

Hình 40: Setting compiler options

Chọn Debugger trong Category. Trong cửa xổ Driver chọn FET Debugger để chọn tính năng gỡ lỗi và nạp xuống cho vi điều khiển sau đó click OK.

2.2.2.3.4 Biên dịch và kiểm tra:

Sau khi đã soạn thảo chương trình bước tiếp theo là biên dịch và kiểm tra lỗi. Để biên dịch chương trình bạn chọn Project / Compile, chương trình biên dịch thành cơng sẽ hiện lên cửa xổ như sau:

Hình 45: Biên dịch và kiểm tra thành cơng

Để nạp chương trình cho vi điều khiển Bạn chọn Project / Debug, sau khi đã nạp thành công bạn chọn Debug / Go. Cửa xổ này chỉ hiện ra khi bạn đã nạp thành cơng, bạn có thể tạm dừng hoặc thốt bằng tác lệnh Break và Stop Debugging.

Hình 46: Nạp chưong trình

2.2.2.3.5 Thêm Project vào Workspace:

Như đã giới thiệu ở trên bạn có thể tạo nhiều project trong cùng một Workspace hoặc add các project đã có sẵn trong thư viện vào vùng làm việc của bạn. Bạn có thể sử dụng các ngơn ngữ lập trình khác nhau cho các project trong cùng một vùng làm việc, đây là một trong những tính năng ưu việt của IAR Embedded Workbench IDE giúp người lập trình so sánh và lựa chọn giải pháp lập trình tối ưu.

Để add files bạn Chọn Project-> Add Files, hộp thoại hiện ra yêu cầu bạn chọn file cần thêm vào, chọn file sau đó click OK để hồn tất. Bạn có thể Add một hoặc nhiều files kết quả ta được một vùng làm việc với nhiều projet mới như sau:

Hình 47: Thêm Project vào Workspace

2.2.3 Tập lệnh C sử dụng lập trình:

Tập lệnh C được viết dựa trên help của phần mềm IAR Embedded Wowkbench. Bạn có thể sử dụng tất cả các lệnh và hàm C cơ bản, ngồi ra IAR Embedded Wowkbench cịn hỗ trợ một số hàm chức năng đặc biệ t.

2.2.3.1 Các kiểu dữ liệu cơ bản:

Khi lập trình bạn phải lưu ý tới các phép tốn có thể tràn số, tính tốn với số âm hoặc ép kiểu dữ liệu. Bạn có thể khai báo một biến cục bộ hoặc biến toàn cục. Biến tồn cục ảnh hưởng tới tồn bộ chương trình cịn biến cục bộ chỉ có giá trị trong hàm hoặc khối lệnh mà bạn khai báo nó. Sau đây là các kiểu dữ liệu cơ bản.

Kiểu dữ liệu Kích thước (Byte) char 1 Unsigned char 1 signed char 1 int 2 unsigned int 2 signed int 2 short int 2

unsigned short int 2 signed short int 2

long int 4

signed long int 4 unsigned long int 4

float 4

double 8

long double 10

Trong chương trình đơi khi ta cịn gặp các từ khóa đặc biệt.

const: là từ khóa khai báo hằng số, có nghĩa là giá trị của biến khơng thay đổi.

volatile: khai báo trước tên biến là một loại biến không bị thay đổi bởi phần mềm, bản thân biến giúp tối ưu hóa lại cơ cấu chương trình.

shifts: dịch chuyển bit.

2.2.3.2 Toán tử quan hệ và logic:

Toán tử quan hệ dùng để kiểm tra mối quan hệ giữa hai biến hay giữa một biến và một hằng. Toán tử quan hệ. Toán tử Ý nghĩa > Lớn hơn >= Lớn hơn hoặc bằng < Nhỏ hơn

<= Nhỏ hơn hoặc bằng

== Bằng

!= Khơng bằng

Tốn tử logic Toán tử Ý nghĩa

&& AND: Kết quả là True khi cả 2 điều kiện đều đúng || OR : Kết quả là True khi chỉ một trong hai điều kiện

là đúng

! NOT: Tác động trên các giá trị riêng lẻ, chuyển đổi True thành False và ngược lại.

Toán tử xử lý bit: Toán tử chỉ được xử lý khi là các bit nhị phân

Tốn tử Mơ tả

AND

( x & y) Mỗi vị trí của bit trả về kết quả là 1 nếu bit của hai toán hạng là 1. OR

( x | y)

Mỗi vị trí của bit trả về kết quả là 1 nếu bit của một trong hai toán hạng là 1.

NOT ( ~ x)

Ðảo ngược giá trị của toán hạng (1 thành 0 và ngược lại).

XOR

( x ^ y) Mỗi vị trí của bit chỉ trả về kết quả là 1 nếu bit của một trong hai toán hạng là 1 mà khơng khơng phải cả hai tốn hạng cùng là 1.

>> Dịch phải bit

<< Dịch trái bit.

2.2.3.3 Tập lệnh ngôn ngữ C:

Để viết chương trình cho vi điều khiển yêu cầu người lập trình cần có kiến thức lập trình cơ bản, nhóm thực hiện để tài chỉ xin liệt kê cấu trúc các lệnh thường dùng để thuận tiện cho người học:

if (biểu thức luận lý) {khối lệnh;}if (biểu thức luận lý) {khối lệnh 1;} else {khối lệnh 2;}if (biểu thức luận lý 1) {khối lệnh 1;}

else if (biểu thức luận lý 2) {khối lệnh 2;} …………. else {khối lệnh n;}switch (biểu thức) {case giá trị 1 : lệnh 1; break; case giá trị 2 : lệnh 2; break; case giá trị n : lệnh n; break;}switch (biểu thức) {case giá trị 1 : lệnh 1; break; case giá trị 2 : lệnh 2; break; case giá trị n : lệnh n; default : lệnh; [ break;] }

for (biểu thức 1; biểu thức 2; biểu thức 3) {khối lệnh;}while (biểu thức) {khối lệnh;}do {khối lệnh;} while (biểu thức); 2.2.3.4 Chỉ thị tiền xử lý: a. #include

Cú pháp: #include <filename> hoặc # include “filename”. Tên file có thể (.h) hoặc (.c).

Ví dụ: #include "msp430x22x4.h"

Ta đã khai báo thư viện cho vi điều khiển MSP430x22x4. b. # define

Dùng để định nghĩa biến hoặc giá trị trong header file.

Ví dụ: Từ tần số tham chiếu 32KHz, ta có thể thiết lập các giá trị tần số khác nhau (ACLK = LFXT1/8 = 32768/8, MCLK = SMCLK = target DCO).

#define DELTA_1MHZ 244 // 244 x 4096Hz = 999.4Hz #define DELTA_8MHZ 1953 // 1953 x 4096Hz = 7.99MHz #define DELTA_12MHZ 2930 // 2930 x 4096Hz = 12.00MHz #define DELTA_16MHZ 3906 // 3906 x 4096Hz = 15.99MHz Sử dụng các BIT đã được định nghĩa trong header file:

#define LED1 BIT3 #define LED2 BIT4

c.

#ifdef ,#en dif:

Bổ xung các dịng code cho chương trình kiểm tra. d.

#pragma basic_template_matching

Sử dụng trước một hàm mẫu để khai báo sử dụng các thuộc tính đầy đủ của bộ nhớ MSP430 IAR C/C++ Compiler Reference Guide.

Ví dụ: # pragma basic_template_matching template<typename T> void fun(T *); fun((int __data16 *) 0);

/* Template parameter T becomes int __data16 */ e.

# warning message

Sử dụng chỉ thị tiền xử lý này để nhận được các tin nhắn cảnh báo lỗi.

2.2.3.5 Các hàm xử lý số:

Các hàm xử lý số được giới thiệu trong help, người học có thể tìm hiểu để biết chi tiết, sau đây là một số hàm cơ bản:

abs() : Hàm lấy giá trị tuyệt đối.

asin(), acos(), atan() : là các hàm arcsin, arccos, arctan.

sin(), cos(), tan() : các hàm lượng giác cơ bản.

pow() : hàm tính lũy thừa.

sqrt(): hàm tính căn bậc 2.

exp(): hàm mũ ex.

rand(): lấy giá trị ngẫu nhiên.

2.2.3.6 Các hàm hỗ trợ đặc biệt:

1) __cc_version1

Ví dụ: __cc_version1 int func(int arg1, double arg2) Chức năng: Gọi chương trình con trong C.

2) __set_R4_register

Ví dụ: void __set_R4_register(unsigned short);

Chức năng: Ghi giá trị đặc biệt vào thanh ghi R4, chức năng này chỉ sử dụng khi R4 bị khóa.

3) __set_SP_register

Ví dụ: void __set_SP_register(unsigned short);

Chức năng: Ghi một giá trị đặc biệt vào con trỏ ngăn xếp SP. 4) __swap_bytes

Ví dụ: unsigned short __swap_bytes(unsigned short);

Chức năng: Trèn vào một giá trị và đảo ngược giá trị phần trên và phần dưới:

__swap_bytes(0x1234) returns 0x3412 5) __set_interrupt_state

Cú pháp: void __set_interrupt_state(__istate_t);

Chức năng: Phục hồi trạng thái ngắt bằng cách thiết lập giá trị trả về bằng hàm __get_interrupt_state.

6) __interrupt Ví dụ:

#pragma vector=0x14

Là hàm dùng chỉ thị tới một hoặc nhiều ngắt. Khai báo bằng chỉ thị tiền xử lý # pragma vetor= (địa chỉ của các véc tơ ngắt).

7) __no_operation

Cú pháp: void __no_operation(void); Chức năng: Trèn một lệnh NOP. 8) __low_power_mode_n

Cú pháp: void __low_power_mode_n(void);

Chức năng: Sử dụng chế độ nguồn thấp của MSP430, n có giá trị 0-4. 9) __get_R4_register

Cú pháp: unsigned short __get_R4_register(void); Chức năng: Trả về giá trị của thanh ghi R4.

10) __get_SP_register

Cú pháp: unsigned short __get_SP_register(void); Chức năng: Trả về giá trị của con trỏ ngăn xếp SP. 11) __get_SR_register

Cú pháp: unsigned short __get_SR_register(void);

Chức năng: Trả về giá trị của thanh ghi trạng thái xử lý SR 12) __get_interrupt_state

Cú pháp: __istate_t __get_interrupt_state(void); Chức năng: Trở về trạng thái ngắt tồn cục Ví dụ: __istate_t s = __get_interrupt_state(); __disable_interrupt();

/* Do something */ __set_interrupt_state(s); 13) __delay_cycles

Cú pháp: void __delay_cycles(unsigned long cycles);

Chức năng: Trèn một chương trình tạo trễ với thời gian được chỉ định. 14) __enable_interrupt

Cú pháp: void __enable_interrupt(void);

Chức năng: Cho phép ngắt bằng cách trèn vào lệnh EI. 14) __disable_interrupt

Cú pháp: void __disable_interrupt(void);

Chức năng: Cấm ngắt bằng cách trèn vào lệnh DI. 15) __bis_SR_register

Cú pháp: void __bis_SR_register(unsigned short); Chức năng: Set các bit trong thanh ghi trạng thái.

16) __bis_SR_register_on_exit

Cú pháp: void __bis_SR_register_on_exit(unsigned short);

Chức năng: Set các bit trong thanh ghi trạng thái xử lý khi trỏ về từ chương trình phục vụ ngắt.

17) __bic_SR_register

Cú pháp: void __bic_SR_register(unsigned short); Chức năng: Xóa bit trong thanh ghi trạng thái xử lý 18) __bic_SR_register_on_exit

Cú pháp: void __bic_SR_register_on_exit(unsigned short);

Chức năng: Xóa các bít thanh ghi trạng thái xử lý khi trở về từ một ngắt.

CHƯƠNG 3

THIẾT KẾ PHẦN CỨNG MỞ RỘNG PORT VÀ CÁC BÀI THỰC

3.1 Vấn đề đặt ra:

Như đuợc giới thiệu ở trên bộ thí nghiệm eZ430-RF2500 cho ta 18 chân bên ngoài để sử dụng điều khiển những thiết bị khác . Do kết cấu của quy cách đóng gói ta khơng sử dụng được 4 chân (chân số 1-4), một chân mass (chân số 12), hai chân đuơc sử dụng để điều khiển tụ thạch anh cho con CC2500 (chân số 13 và 14). Cuối cùng ta còn lại 11 chân, với 11 chân ta chỉ có thể điều khiển những thiết bị đơn giản. Một yêu cầu được đề ra là làm sao để có thể điều khiển những thiết bị cần nhiều chân điều khiển (Một ví dụ đơn giản là điều khiển 32 led đơn sáng). Từ vấn đề trên nhóm đã quyết định sử dụng IC 74HC595 để mở rộng Port.

Và trong qúa trình làm thực nghiệm 1 vấn đề nữa cũng đã nảy sinh . Vì vi điều khiển MSP430 là loại tiết kiệm năng lượng nên mức logic 1 của nó chỉ ở 3.6V (Đó là lý thuyết) cịn trong thực nghiệm khi đo chỉ được khoảng 3.2V . Gây khó khăn trong việc xử lý cũng như điều khiển các thiết bị khác, vì với 3.2V các loại thiết bị khác khơng hiểu được đó là mức logic 1 hay 0. Chính vì lý do đó nhóm đã sử dụng thêm IC 2803, một IC đệm đảo điện áp.

Với 2 vấn đề trên nhóm đã sử dụng 2 IC 74HC595 và 2803 để giải quyết,và chúng ta sẽ nói qua về 2 IC này.

3.2 Các IC sử dụng trong việc mở rộng Port:3.2.1 IC 74HC595: 3.2.1 IC 74HC595:

3.2.1.1 Giới thiệu:

IC 74HC595 có các đặc điểm sau: + IC có 16 chân.

+ 8 bit nối tiếp ở ngõ vào.

+ 8 bít nối tiếp hoặc song song ở ngõ ra.

+ Chốt thanh ghi dịch với 3 trạng thái ở ngõ ra. + Tần số nhịp xung clock là 100MHz.

Hình 49: Sơ đồ chân IC 74HC595

Chức năng từng chân:

+ Chân 15: Ngõ ra dữ liệu song song bit 0. + Chân 1 - 7: Ngõ ra dữ liệu song song bit 1 – 7. + Chân 8: Nối Mass.

+ Chân 9: Ngõ ra dữ liệu nối tiếp.

+ Chân 10: Reset (Hoạt động mức thấp). + Chân 11: Nhận xung clock.

+ Chân 12: Chốt dữ liệu ngõ ra.

+ Chân 13: Cho phép ngõ ra (Hoạt động mức thấp). + Chân 14: Ngõ vào dữ liệu nối tiếp.

+ Chân 16: Cấp nguồn (5V).

3.2.1.3 Cấu tạo và nguyên tắc hoạt động:3.2.1.3.1 Cấu tạo: 3.2.1.3.1 Cấu tạo:

Hình 50: Cấu tạo IC 74HC5959

Bên trong gồm 8 con FlipFlop D mắc nối tiếp . Từ tầng 0 - 7 cho ngõ ra từ Q0 - Q7 .

3.2.1.3.2 Nguyên tắc hoạt động:Bảng sự thật: Bảng sự thật: Bảng 16: Bảng sự thật IC 74HC595 Trong đó: + H: Mức điện áp cao. + L: Mức điện áp thấp.

+ ↑: Chuyển đổi điện áp từ thấp lên cao. + ↓: Chuyển đổi điện áp từ cao xuống thấp. + n.c.: Khơng thay đổi.

Dạng sóng điều khiển:

Hình 51: Dạng sóng điều khiển IC 74HC595

Hình 52: Ngun lý hoạt động

Để IC hoạt động ta phải nối chân số 10 lên nguồn 5V (không tác động

Một phần của tài liệu Khảo sát họ vi điều khiển MSP430 (Trang 68)

Tải bản đầy đủ (PDF)

(164 trang)