Bài 1 chúng ta đã biết cách tạo một project trên CCS, rồi đã biết cách nạp chương trình vào chip MSP430G2553. Các bạn nên tìm hiểu thêm về phần mềm CCS như sử dụng chức năng Debuger để kiểm tra từng dòng lệnh mình viết, sử dụng Grace trong CCS để giúp cho việc khởi tạo, thiết lập các thông số hoạt động ban đầu của MCU nhanh hơn...
Các bài học sau chúng ta vẫn tìm hiểu MSP430 trên kit Launchpad với chip MSP430G2553 vì vậy các bạn phải đảm bảo rằng đã có ít nhất 3 tài liệu gốc để tìm hiểu, đó là:
- -MSP430x2xx Family User's Guide (Rev. J) (Tài liệu 1)
- -MSP430G2x53, MSP430G2x13 Mixed Signal Microcontroller (Rev. J (Tai liệu 2)
- Ban vẽ nguyên lý của kit launchpad, download tại: http://www.ti.com/tool/msp-exp430g2
Việc khởi tạo các thông số ban đầu cho vi điều khiển là rất cần thiết. Nó giống như việc bạn sử dụng máy giặt quần áo, trước khi bắt đầu ta phải cài đặt các chế độ cho nó: giặt nhanh hay chậm, nhiều nước hay ít nước ?...Nếu bạn không cài đặt thì nó sẽ hoạt động theo các thông số mặc định và có thể sẽ không như ý muốn của bạn. Vi điều khiển cũng vậy, muốn hoạt động đúng theo ý muốn của mình thì trước hết ta cũng phải khởi tạo các thông số hoạt động cho nó như: Chọn tốc độ xử lý (Clock)cho CPU và các module ngoại vi , nếu sử dụng các chân I/O thì phải khởi tạo để chân nào là Input, chân nào là Ouput, tương tự nếu muốn dùng ADC, USART, SPI, I2C... ta cũng phải khởi tạo một các thông số ban đầu cho nó...
Ở bài số 2 này chúng ta sẽ tìm hiểu về cách khởi tạo các thông số cơ bản ban đầu cho MSP430 như GPIO, Clock. Cụ thể:
- Phần 1 chúng ta sẽ tìm hiểu về các cổng vào ra căn bản (GPIO) và cách khởi tạo
- Phần 2 chúng ta sẽ tìm hiểu về các module Clock trong MSP430 và cách khởi tạo
Để tìm hiểu kĩ về GPIO của MSP430 các bạn tìm đến chương 8 (Digital I/O)của tài liệu 1, còn chức năng cụ thể của từng chân I/O của MSP430G2553 thì các bạn phải xem tài liệu 2.
Trong bài này chúng ta chỉ sử dụng các chân I/O của MSP430G2553 như các chân đọc dữ liệu và xuất dữ liệu bình thường, các chức năng khác chúng ta sẽ tìm hiểu sau.
Mình xin tóm tắt một số ý chính trong tài liệu như sau:
Các I/O của MSP430G2553 được chia thành 2 Port, P1 và P2, mỗi Port có 8 I/O từ Px1.0 - Px1.7.Để khởi tạo cho các chân I/O này ta cần phải biết một số thanh ghi sau:
- Thanh ghi Input - PxIN (P1IN dùng cho Port1, P2IN dùng cho Port2):
Đây là thanh ghi chỉ đọc được dữ liệu (read only), thanh ghi này có 8 bit,từ Bit 0 đến Bit 7.
Giá trị mỗi bit tương ứng với giá trị điện áp cấp tới chân I/O của Port.
Bit = 0 ~ chân Input ở mức thấp (khoảng 0Vdc),
Bit = 1 ~ chân input ở mức cao (khoảng 3.3VDC).
- Thanh ghi Output - PxOUT:
Khi cấu hình các chân với chức năng I/O và không dùng điện trở kéo trong thì giá trị các bit của thanh ghi PxOUT thể hiện giá trị điện áp xuất ra ở chân I/O của Port tương ứng.
Bit = 0 ~ Điện áp ở chân ouput ở mức thấp
Bit = 1 ~ Điện áp ở chân ouput ở mức cao
Khi sử dụng điện trở kéo trong, các bit của PxOUT sẽ qui định điện trở đó sẽ được kéo xuống đất (0VDC) hay được kéo lên nguồn
Bit = 0 ~ điện trở được kéo xuống 0VDC (pulled down)
Bit = 1 ~ điện trở được kéo lên nguồn (pulled up)
Khi nào thì dùng trở kéo bên trong? Người ta thường sử dụng điện trở kéo trong khi muốn sử dụng chân I/O làm chân input. Nếu không có trở kéo thì tín hiệu đọc được ở chân Input lúc ở mức cao, lúc ở mức thấp >> có thể đọc sai giá trị
- Thanh ghi chỉ hướng - PxDIR
Các bit của thanh ghi này qui ước chân nào là input, chân nào là chân output
Bit = 0 ~ chân tương ứng của Port được chọn làm chân Input
Bit = 1 ~ chân tương ứng của Port được chọn làm chân Ouput
- Thanh ghi cho phép sử dụng trở kéo trong - PxREN
Các bit của thanh ghi này qui ước việc dùng hay không dùng điện trở kéo ở chân tương ứng
Bit = 0 ~ cho phép dùng
Bit = 1 ~ không cho phép dùng
- Thanh ghi chọn chức năng cho các chân - PxSEL và PxSEL2
Tham khảo phần "PORT SCHEMATICS" trong tài liệu 2
Ở trạng thái mặc định PxSEL=0, PxSEL2=0 ~ các chân được chọn với chức năng I/O
Thực hành trên kit LaunchPad
Bài 1: Viết chương trình nhấp nháy 2 led P1.0 và P1.6, ở một thời điểm chỉ có một led sáng. Ở trạng thái ban đầu Led P1.0 sáng, led P1.6 tắt.
Bài 2:Viết chương trình khi bấm nút bấm P1.3 thì 2 led P1.0 và P1.6 đổi trạng thái.Ở trạng thái ban đầu led P1.0 sáng, led P1.6 tắt
Các bạn thử tự làm bài tập sau để kiểm tra hàm chống rung phím có hiệu quả không nhé!
Bài tập tự làm: Bấm 6 lần phím P1.3 thì các led P1.0 và P1.6 mới đổi trạng thái
Sau bài học này chúng ta đã có thể cấu hình và điều khiển được các chân I/O với chức năng cơ bản rồi!
Chúc các bạn thành công! Hẹn gặp lại các bạn trong các bài học tiếp theo.
http://mlab.vn/ (Phạm Tuấn Anh - MLab)
Trả lời bạn đọc
tuan |
05/25/2014
mọi người cho em hỏi cái đoạn mà |= với &= ~ hiểu như thế nào ạ, em mới tập làm quen với c nữa, k hiểu gì hết
Trả lời:
Đây là các phép toán thao tác bit trong C bạn Tuấn ạ!
Dưới đây là chuỗi các bài học MSP430: