IV. NGÀY HOÀN THÀNH NHIỆM VỤ :
2.2.1.5 Chip CC2500
2.2.1.5.1 Giới thiệu:
CC2500 là chíp thu phát sóng vô tuyến RF tần số 2.4 GHz. Chip sử dụng nguồn thấp tiết kiệm năng lượng có thể sử dụng pin. Thích hợp với những thiết bị di động điều khiển bằng công nghệ không dây, thiết bị điện tử dân dụng, điều khiển đồ chơi, chuột và bàn phím không dây, các ứng dụng điều khiển từ xa khác.
Bộ thu phát được tích hợp với cấu hình modem dải gốc cao. Modem hỗ trợ nhiều hình thức điều chế tín hiệu khác nhau trong đó cấu hình dữ liệu lên tới 500 Kbaud.
CC2500 hỗ trợ phần cứng cho việc xử gói dữ liệu. Tích hợp cảm biến nhiệt độ.
Thường CC2500 kết hợp với một chip vi xử lý và các linh kiện thụ động khác để thực hiện chức năng điều khiển.
Phần cứng bao gồm 20 chân:
Hình 26: Sơ đồ chân của CC2500
+ Chân 4, 9, 11, 14, 15, 18: Là các chân nguồn nối lên Vcc. + Chân 16, 19 nối GND.
Chức năng chi tiết các chân còn lại như sau:
Bảng 13: Chức năng các chân CC2500
+ Chân 1: SCLK chân đầu vào số, chân đầu vào nhận xung clock và giao diện cấu hình nối tiếp
+ Chân 2: Đầu ra số. Giao diện cấu hình nối tiếp. Khi CSn ở mức cao thì chân có chức năng của một chân thông thường.
- Kiểm tra tín hiệu.
- Trạng thái tín hiệu FIFO. - Xóa chân được chỉ định.
- Chân đầu ra của xung clock sau khi đã được chia xung từ XOSC. - Chân truyền dữ liệu nối tiếp RX.
+ Chân 4: Chân nguồn DVDD. Sử dụng nguồn từ 1.8 tới 3.6V
+ Chân 5: DCOPUL: Chân nguồn 1.6-2V. Chân này chỉ sử dụng cấp nguồn + riêng cho CC2500 không sử dụng chung cho các thiết bị khác.
+ Chân 6: GDO0:Chân vào ra số. Ngoài các chức năng như chân 3 nó còn có vai trò là chân truyền nhận nối tiếp RX và TX.
+ Chân 7: CSn: Là chân đầu vào lựa chọn.
+ Chân 8, 10: XOSC_Q1, XOSC_Q2: Chân nối thạch anh.
+ Chân 9, 11, 14, 15: Chân nguồn cấp nguồn 1.8-3.6V cho khối Analog. + Chân 12 RF_P: Là chân truyền nhận tín hiệu RF. Là chân đầu vào trong chế độ truyền, chân đầu ra trong chế độ nhận.
+ Chân 13 RF_N: Có chức năng như chân 12 nhưng tín hiệu bị đảo. + Chân 16, 19: GND.
+ Chân 17 RBIAS: Chân vào ra tương tự.
+ Chân 20 SI: Chân ngõ vào số. Giao diện cấu hình nối tiếp.
2.2.1.5.2 Cấu tạo của chíp:
2.2.1.5.3 Nguyên lý hoạt động:
CC2500 đóng vai trò là bộ nhận. Tín hiệu được khuếch đại bởi bộ khuếch đại LNA và bộ đổi pha vuông góc giảm tín hiệu xuống tần xuống tần số trung bình (IF) sau đó tín hiệu được số hóa bởi các bộ chuyển đổi ADC. Tín hiệu đưa tới mạch tự động điều chỉnh độ lợi (AGC).
Những linh kiện sử dụng trong mạch điện ứng dụng:
S
Bảng 14: Những linh kiện sử dụng trong mạch điện
Sơ đồ mạch điện cụ thể như sau:
Giá trị điển hình của các linh liện được sử dụng trong mạch:
2.2.2 Phần mềm biên dịch và nạp chương trình (The IAR Embedded Workbench IDE):
Đối với MSP430 chúng ta có 2 phần mềm biên dịch và nạp chương trình là: + The IAR Embedded Workbench IDE.
+ CCE.
Sử dụng 2 ngôn ngữ Assembly và C/C++. Ở đây nhóm nghiêm cứu chỉ giới thiệu phần mềm The IAR Embedded Workbench IDE.
2.2.2.1 Cách cài đặt phần mềm:
Trong mỗi bộ thí nghiệm MSP430 có một đĩa CD giới thiệu cho ta 2 phần mềm The IAR Embedded Workbench IDE và CCE. Cách cài đặt và một chương trình demo đo nhiệt độ môi trường từ xa.
Sau khi bỏ đĩa vào máy, ta vào ổ đĩa CD; F:\Software nhấp đúp vào file
FET_R511.exe bắt đầu quá trình cài đặt. Sau khi nhấp vào ta thấy màn hình có:
Nhấp vô chữ Setup phần mềm bắt đầu được cài đặt. Sau đó màn hình sẽ xuất hiện như sau và bấm Next, sau đó bấm Accept:
Chọn thư mục cài đặt phần mềm (ta nên để nguyên),sau đó bấm Next:
Sau đó bấm Next, cài đặt phần mềm vào máy:
Cuối cùng bấm Finish, hoàn tất quá trình cài đặt.
Ngoài màn hình Destop vô: Start/ All Programs / IAR Systems / IAR Embedded Workbench Kickstart for MSP430 V4.10E nhấp đúp vô IAR Embedded Workbench bắt đầu chạy chương trình IAR Embedded Workbench.
Sau khi đã cài đặt xong phần mềm, chúng ta bắt đầu cài đặt thiết bị (Chú ý: Phải cài đặt xong phần mềm rồi mới cài đặt thiết bị).
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. Ở khuôn 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 sổ 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 sổ soạn thảo của chương trình:
Hình 31: Thanh công cụ soạn thảoIAR Embedded Workbench IDE
2.2.2.3.2 Hướng dẫn tạo New Project:
Tắt cửa sổ 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
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 sổ tạo project mới
Kiểm tra Tool chain chọn MSP430 sau đó lick OK. Một cửa sổ 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 sổ Save chương trình
Project sẽ xuất hiện trong vùng làm việc .
Hình 36: Cửa sổ 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 sổ Workspace sau đó vào Project / Options .
Tùy chọn Target trong category General Options được hiển thị . Cửa sổ Device cho chúng ta chọn loại chip cần lập trình , bạn hãy chọn MSP 430F2274.
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 sổ 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 sổ 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 sổ 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 thoát bằng tác lệnh Break và Stop Debugging.
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 để hoà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, ngoà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 toán có thể tràn số, tính toá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 toàn cục ảnh hưởng tới toà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.
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
Toá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
Toá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 haitoá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ộttrong 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ượclạ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 toá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"
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 ,#endif:
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
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
__interrupt void my_interrupt_handler(void);
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ý