CC1101 – SimpliciTI – TIVA Phần 1

Hướng dẫn sử dụng thư viện simpliciTI cho module CC1101 với MCU TM4C123G

Phần 1 – Tạo project đơn giản

Trong bài viết này, mình sẽ hướng dẫn các bạn sử dụng thư viện SimpliciTI đơn giản chỉ bao gồm giao tiếp truyền nhận gói tin giữa MCU và CC1101 (chỉ để test module RF xem có tèo không thôi :)) . Hiện tại nó chỉ dùng được với các loại module RF của TI sử dụng giao tiếp SPI (không phải loại truyền UART =)) ) như các module trong các link sau:

Đầu tiên là giới thiệu sơ lược về thư viện simpliciTI:
SimpliciTI là một bộ thư viện dùng để thiết lập một mạng không dây với qui mô nhỏ, sử dụng các dòng chip RF của TI như CC1XXX/CC25XX/CC430. SimpliciTI cung cấp cho các bạn công cụ để hiện thực một mạng không dây đơn giản, vừa dễ sử dụng. Thông tin và tài liệu về simpliciTI các bạn có thể dễ dàng tìm được tại địa chỉ:

http://www.ti.com/tool/SimpliciTI?keyMatch=simpliciTI&tisearch=Search-EN.

Trong file tải về từ link trên sẽ có phần tài liệu hướng dẫn đầy đủ bằng tiếng anh như các bạn có thể thấy ở hình dưới, các bạn có thể đọc để tìm hiểu sâu hơn về hoạt động của bộ thư viện này :D

Tuy nhiên, bộ thư viện này chỉ hổ trợ cho dòng vi điều khiển msp430 và lõi 8051 trong các SoC RF của TI. Để sử dụng được với KIT ek-tm4c123gxl thì cần phải sử dụng bản chỉnh sửa dành cho chip TM4C123.
1/ Việc đầu tiên là cần phải tải thư viện về, bản SimpliciTI v1.1 cho kit TM4C123gxl có thể được tải ở link:
Sau khi giải nén, ta được các folder như hình:
+ Folder app sẽ chứa code của chương trình sẽ viết,
+ Folder bsp chứa các mô tả về MCU, board, nếu muốn thay đổi các thiết lập phần cứng, hoặc muốn port qua cho một MCU khác thì có thể chỉnh sửa trong này
+ Folder driverlib chứa các driver của Tivaware
+ Folder mrfi chứa các file về giao tiếp với ic RF
+ Folder simpliciTI chứa các file về mạng của simpliciTI
2/ Khởi động CCS, phiên bản sử dụng trong bài này là CCS 6.0.1
3/ Tạo project với vi điều khiển TM4C123GH6PM (chọn empty project)
4/ Add các file cần thiết vào project:
+ Chuột phải vào tên project, chọn import>import
+ Chọn file system> next
+ Tìm đến nơi chứa code:
 
+ Trong folder app chọn tất cả, main.c là một ví dụ đơn giản được viết sẵn, simpliciTI_config.h là 1 file thiết lập mẫu (có thể add file tự tạo nếu thích :misdoubt:)
+ Trong folder bsp chọn bsp.c
+ Trong mục driverlib chọn chọn file driverlib.lib như hình:
+ Trong mục mrfi chọn mrfi.c
5/ Thêm các đường dẫn vào project:
+ Chuột phải vào project, chọn Property, chọn include Option
+ Thêm vào các đường dẫn tương tự như hình:
+ Chọn Predefined Symbols như hình
 
 

Sau khi tạo xong project, việc tiếp theo là nói về code:

Muốn chạy được code, cần sửa lại file tm4c123gh6pm_startup_ccs.c 1 tí :D
+ Thêm extern void MRFI_GpioIsr(void); vào trước đoạn khai báo các vector ngắt
+ Sửa lại trình phục vụ ngắt của GPIOB thành MRFI_GpioIsr thay vì IntDefaultHandler
Sau khi chỉnh sửa xong các file đó thì bắt đầu build để chạy thôi nào :brick:
Nếu muốn chỉ nhận thì giữ nguyên code file main, nếu muốn gửi thì xóa mấy dấu “//” trước 2 câu lệnh trong while(1) của file main.c
Các module CC1101 khác nhau sẽ có các anten loại khác nhau và đi kèm với nó là tần số hoạt động khác nhau, nếu như các bạn cài đặt sai tần số thì khoảng cách truyền được sẽ rất ngắn, các bạn có thể sửa file mrfi\smartrf\CC1101\smartrf_CC1101.h để cài đặt lại tần số như mong muốn.
Cuối cùng là lời kết cho một bài viết dài, đây là bước khởi đầu cho việc thiết lập thư viện simpliciTI, phía sau còn nhiều tình tiết hấp dẫn, hy vọng các bạn đừng vội hoang mang vì nó còn nhiều bước làm tào lao phía sau nếu như muốn xây dựng được một mạng hoàn chỉnh:6cool_boss:, còn nhiều điều mình định nhắn nhủ mà quên mất tiêu rồi, hẹn gặp lại ở các post sau :met:

 

Update:
+ Đây là clip sau khi nạp code cho 2 board, cái chớp xanh là board gửi, board chớp đỏ là board nhận:

+ Code có các phần BSP led, thực ra phần này ko cần thiết vì có thể điều khiển led bằng code tự viết, nhưng mình đưa vào cho biết tới sự tồn tại của nó :6cool_boss:

Thảo luận:

Xem tiếp:

Comments are closed.