Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam và được ứng dụng rất nhiều trong các lĩnh vực của đời sống xã hôi. Những sinh viên ngành điện, điện tử, cơ điện tử, tin học, viễn thông….hầu như ai cũng biết cách để làm việc với vi điều khiển, kéo theo đó là nhu cầu sử dụng các bộ kit trong học tập, nghiên cứu cũng như ứng dụng trên thực tế là không nhỏ. Trong số các kit đang có trên thị trường hiện nay, … dòng MSP430 của TI được đánh giá cao về sự ổn định, tiết kiệm năng lượng cũng như dễ học tập và nghiên cứu. Nhằm giúp tiếp cận thực tế về dòng vi điều khiển này nhóm chúng em đã tiến hành làm bài tập lớn thiết kế mạch đo nhiệt độ,độ ẩm sử dụng MSP430G253 và kit phát triển MSP430 của TI. Để có thể hoàn thiện được đề tài này, chúng em xin chân thành cám ơn Quý Thầy, Cô đã tận tình hướng dẫn, chỉ dạy cho chúng em suốt thời gian thực hiện và thiết kế đề tài.
Trang 1M C L C Ụ Ụ
LỜI NÓI ĐẦU 3
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI VÀ TÌM HIỂU VỀ MSP430 CÙNG KÍT PHÁT TRIỂN MSP430 4
1.1 GIỚI THIỆU VỀ ĐỀ TÀI 4
1.1.1 Tên đề tài 4
1.1.2 Khái quát đề tài 4
1.2 TÌM HIỂU VỀ MSP430 4
1.2.1 Tổng quan về MSP430 4
1.2.2 Cấu trúc MSP430 7
1.2.3 Đặc tính của MSP430 8
1.3 BỘ KÍT MSP430G2 LaunchPad 9
1.3.1 Các thành phần của bộ kit 9
1.3.2 Tính năng 9
CHƯƠNG 2: NỘI DUNG ĐỀ TÀI 11
I Yêu cầu đề tài 11
1 Yêu cầu phần cứng 11
2 Yêu cầu chức năng 11
3 Yêu cầu phi chức năng 11
4.Sơ đồ khối hệ thống 11
II Nội dung 12
1 Cảm biến nhiệt độ, độ ẩm: 12
2 Giao tiếp với SHT11 13
3 Truyền dữ liệu qua NRF24L01: 14
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG 16
I.Sơ đồ từng khối chi tiết 16
1.Khối nguồn 16
2.Khối mạch phát 17
3.Khối mạch nhận 18
4.Khối hiển thị 19
II.Sơ đồ nguyên lý 20
Trang 2CHƯƠNG 4 KẾT QUẢ THỰC HIỆN 21
1.Sơ đồ mạch in 21
2.Một số hình ảnh về sản phẩm 23
CHƯƠNG 5 KẾT LUẬN 24
TÀI LIỆU THAM KHẢO 25
Trang 3LỜI NÓI ĐẦU
Bộ vi điều khiển, viết tắt Microcontroller là mạch tích hợp trên 1 chip có thể lậptrình được, dùng để điều khiển hoạt động của hệ thống Theo các tập lệnh của ngườilập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thờigian và tiến hành đóng mở 1 cơ cấu nào đó
Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam và được ứng dụngrất nhiều trong các lĩnh vực của đời sống xã hôi Những sinh viên ngành điện, điện
tử, cơ điện tử, tin học, viễn thông….hầu như ai cũng biết cách để làm việc với viđiều khiển, kéo theo đó là nhu cầu sử dụng các bộ kit trong học tập, nghiên cứucũng như ứng dụng trên thực tế là không nhỏ Trong số các kit đang có trên thịtrường hiện nay, … dòng MSP430 của TI được đánh giá cao về sự ổn định, tiếtkiệm năng lượng cũng như dễ học tập và nghiên cứu
Nhằm giúp tiếp cận thực tế về dòng vi điều khiển này nhóm chúng em đã tiếnhành làm bài tập lớn thiết kế mạch đo nhiệt độ,độ ẩm sử dụng MSP430G253 và kitphát triển MSP430 của TI
Để có thể hoàn thiện được đề tài này, chúng em xin chân thành cám ơn Quý Thầy,
Cô đã tận tình hướng dẫn, chỉ dạy cho chúng em suốt thời gian thực hiện và thiết kế
đề tài
Mặc dù đã cố gắng hết mình tuy nhiên kết quả của nhóm em cũng không thểtránh khỏi những thiếu sót, chúng em rất mong sẽ nhận được sự góp ý, đánh giá vàgiúp đỡ của Thầy Cô để có thể hoàn thiện và đạt được kết quả tốt hơn nữa
Em xin chân thành cảm ơn!
Trang 4
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI VÀ TÌM HIỂU VỀ MSP430
CÙNG KÍT PHÁT TRIỂN MSP430
1.1 GIỚI THIỆU VỀ ĐỀ TÀI
1.1.1 Tên đề tài
Thiết kế mạch đo nhiệt độ, độ ẩm dùng MSP430 truyền qua NRF
1.1.2 Khái quát đề tài
Trong phạm vi đề tài này, nhóm chúng em tập trung tìm hiểu và nghiên cứunhững nội dung chính sau:
- Hiển thị nhiệt độ ,độ ẩm trên LCD
Trang 5- GPIO Options: 14, 22, 48 pins
- ADC Options: Slope, 10 & 12-bit SAR
- Other Integrated peripherals: Analog Comparator, DMA, HardwareMultiplier, SVS, 12-bit DAC
1.2.1.2 MSP430F2xx Series
Series 2xx cũng tương tự như 1xx nhưng tiêu thụ năng lượng ít hơn, tốc độ có thểlên tới 16MHz, đồng hồ on-chip có độ chính xác cao hơn (±2%) nên có thể hoạtđộng mà không cần thạch anh gắn ngoài
- 1.8–3.6 V
- Tốc độ Flash/ROM: 16 MIPS
- Có tích hợp điện trở kéo lên/kéo xuống (pull-up/pull-down)
Trang 6- Ultra-Fast Wake-Up From Standby Mode in <1 μs
- Device Parameters
- Flash Options: 1–120 KB
- RAM Options: 128 B–8 KB
- GPIO Options: 10, 16, 24, 32, 48, 64 pins
- ADC Options: Slope, 10 & 12-bit SAR, 16-bit Sigma Delta
- Other Integrated peripherals: Analog Comparator, Hardware Multiplier,DMA, SVS, 12-bit DAC, Op Amps
1.2.1.3 MSP430G2xx Series
- Tương tự F2xx, chức năng ít hơn và giá thấp hơn:
- Flash Options: 0.5–16 KB
- RAM Options: 128–512 B
- GPIO Options: 10, 16, 24 pins
- ADC Options: Slope, 10-bit SAR
- Other Integrated peripherals: Analog Comparator
- GPIO Options: 14, 40 pins
- ADC Options: Slope, 14-bit SAR
- Other Integrated peripherals: LCD controller, Hardware Multiplier
- GPIO Options: 14, 32, 48, 56, 68, 72, 80 pins
- ADC Options: Slope, 10 &12-bit SAR, 16-bit Sigma Delta
- LCD Controller, Analog Comparator, 12-bit DAC, DMA, Hardware
Trang 7Tốc độ lên tới 25 MHz Đây là dòng có mức tiêu thụ năng lượng thấp nhấttrong họ MSP430, được tích hợp Module Giám sát Năng lượng (PowerManagement Module) để tối ưu điện năng tiêu thụ Một số chip tích hợp USB.
- Fast Wake-Up From Standby Mode in <5 μs
- 1.8-3.6V
- Flash Options: up to 256 KB
- RAM Options: up to 16 KB
- ADC Options: 10 & 12-bit SAR
- USB, Analog Comparator, DMA, Hardware Multiplier, RTC, USCI, 12-bitDAC
1.2.2 Cấu trúc MSP430
Hình 1 Sơ đồ cấu trúc bên trong của MSP430
Cấu trúc bên trong :
- ADC10/12/16/24-bit : 200 ksps với điện áp tham chiếu nội, lấy mẫu vàchốt Tự động quét kênh, điều khiển chuyển đổi dữ liệu
Trang 8sử dụng nguồn thấp, khoảng điện áp nguồn cấp từ 1.8V – 3.6V.
MSP 430 kết hợp các đặc tính của một CPU hiện đại và tích hợp sẵn cácmodule ngoại vi Đặc biệt chip MSP 430 là giải pháp thích hợp cho những ứng dụngyêu cầu trộn tín hiệu
Những đặc tính của dòng MSP 430 bao gồm:
• Điện áp nguồn: 1.8V – 3.6 V
• Mức tiêu thụ năng lượng cực thấp:
– Chế độ hoạt động: 270 μA tại 1MHz, 2,2 V
– Chế độ chờ: 0.7 μA
– Chế độ tắt (RAM vẫn được duy trì): 0.1 μA
• Thời gian đánh thức từ chế độ Standby nhỏ hơn 1μs
• Cấu trúc RISC-16 bit, Thời gian một chu kỳ lệnh là 62.5 ns
• Cấu hình các module Clock cơ bản:
– Tần số nội lên tới 16 MHz với 4 hiệu chỉnh tần số +- 1%
– Thạch anh 32 KHz
– Tần số làm việc lên tới 16 MHz
– Bộ cộng hưởng
– Nguồn tạo xung nhịp bên ngoài
– Điện trở bên ngoài
• Timer_A 16 bit với 3 thanh ghi hình, 3 thanh ghi so sánh độ rộng 16 bit
• Timer_B 16 bit với 3 thanh ghi hình, 3 thanh ghi so sánh độ rộng 16 bit
• Giao diện truyền thông nối tiếp:
Trang 9– Bộ mã hóa và giải mã IrDA (Infrared Data Associatio).
– Chuẩn giao tiếp động bộ SPI
– Chuẩn giao tiếp I2C
• Bộ chuyển đổi ADC 10 bit, 200 ksps với điện áp tham chiếu nội, Lấy mẫu vàchốt Tự động quét kênh, điều khiển chuyển đổi dữ liệu
• Hai bộ khuếch đại thuật toán (hoạt động) có thể định cấu hình (Đối với MSP430x22x4)
• Bảo vệ sụt áp
• Bộ nạp chương trình
• Module mô phỏng trên chip
MSP430 được sử dụng và biết đến đặc biệt trong những ứng dụng về thiết bị
đo có sử dụng hoặc không sử dụng LCD với chế độ nguồn nuôi rất thấp Với chế
độ nguồn nuôi từ khoảng 1,8 đến 3,6v và 5 chế độ bảo vệ nguồn
Với sự tiêu thụ dòng rất thấp trong chế độ tích cực thì dòng tiêu thụ là200uA, 1Mhz, 2.2v; với chế độ standby thì dòng tiêu thụ là 0.7uA Và chế độ tắtchỉ duy trì bộ nhớ Ram thì dòng tiêu thụ rất nhỏ 0.1uA
MSP430 có ưu thế về chế độ nguồn nuôi Thời gian chuyển chế độ từ chế độstandby sang chế độ tích cực rất nhỏ (< 6us) Và có tích hợp 96 kiểu hình chohiển thị LCD 16 bit thanh ghi, 16 bit RISC CPU
Có một đặc điểm của họ nhà MSP là khi MCU không có tín hiệu dao độngngoại, thì MSP sẽ tự động chuyển sang hoạt động ở chế độ dao động nội
MSP-EXP430G2 LaunchPad cũng đi kèm với 2 con chip MSP430 lên đến16KB Flash, 512B RAM, 16MHz tốc độ CPU và thiết bị ngoại vi tích hợp như 8ch10-bit ADC, giờ, giao tiếp nối tiếp (UART, I2C và SPI) và hơn thế nữa!
Trang 10Miễn phí công cụ phát triển phần mềm cũng có sẵn, chẳng hạn như dựa trênEclipse của TI Code Composer Studio, IAR Embedded Workbench Phát triển mãnguồn mở cũng có sẵn nhờ vào các dự án dựa vào cộng đồng như trình biên dịchMSPGCC hoặc Energia, một chi nhánh của khung dây phổ biến.
Giao diện giả lập tích hợp của LaunchPad kết nối đèn flash dựa trên các thiết
bị dòng MSP430 giá trị gia tăng với một máy tính cho thời gian thực, lập trình trong
hệ thống và sửa lỗi thông qua USB:
• Bao gồm một cáp mini USB để giao tiếp với máy tính
• Bao gồm các tính năng thiết bị MSP430G2xx:
- MSP430G2553IN20 - 16KB Flash, 512B RAM, ngắt GPIO(capacitive cảm giác có khả năng), giờ 16-bit, 8ch 10-bit ADC,sánh, nối tiếp truyền thông (USCI - I2C, SPI và UART)
- MSP430G2452IN20 - 8KB Flash, 256B RAM, ngắt GPIO(capacitive cảm giác có khả năng), 16-bit giờ, 8ch 10-bit ADC,sánh, nối tiếp truyền thông (USI - I2C và SPI) và hơn thế nữa Thiết bị MSP430G2xx bao gồm có các chương trình mẫu cài đặt sẵn
Phiên bản tải về miễn phí của IAR Kickstart và Mã Composer Studio Phiênbản 5 môi trường phát triển tích hợp có sẵn và bao gồm lắp ráp, mối liên kết, môphỏng, nguồn cấp gỡ lỗi, và C-trình biên dịch Những IDE miễn phí không hạn chếtrên các thiết bị dòng MSP430 giá trị
Tuân theo chuẩn RoHS
Trang 11KHỐI NGUỒN NHẬN
KHỐI LED- 74HC595
CHƯƠNG 2: NỘI DUNG ĐỀ TÀI
I Yêu cầu đề tài
1 Yêu cầu phần cứng
• Sử dụng chip MSP430 của TI
• Sản phẩm : thiết kế mạch
2 Yêu cầu chức năng
• Đo nhiệt độ ,độ ẩm từ cảm biến
• Truyền dữ liệu qua NRF24L01
• Có cảnh báo mức nguy hiểm khi nhiệt độ , độ ẩm vượt ngưỡng
• Hiển thị kết quả lên LCD và LED 7 thanh
3 Yêu cầu phi chức năng
• Độ ổn định cao
• Đo nhiệt độ, độ ẩm dưới 100oC
• Sắp xếp linh kiện đẹp, tránh nhiễu và ảnh hưởng nhiệt độ hệ thống đến cảmbiến
4.Sơ đồ khối hệ thống.
Trang 12II Nội dung
1 Cảm biến nhiệt độ, độ ẩm:
- Cảm biến SHT11 là cảm biến đo nhiệt độ và độ ẩm Đây là dòng cảm biến( SHT10,SHT11, SHT15, SHT75 ) chuyên dùng, có độ chính xác cao Nó được sửdụng rộng dãi trong công nghiệp và dân dụng
Trang 13- Cấu hình chân:
Hình 4 : Sơ đồ chân SHT11
- Sơ đồ ghép nối Vi Xử Lý:
Hình 5: Sơ đồ ghép nối SHT11 với Vi xử lý
Trang 142 Giao tiếp với SHT11
Hình 6 : Quá trình truyền dữ liệu SHT11
Quá trình gửi dữ liệu xuống SHT11 gồm 3 bước:
• Truyền xung Start:
• Chân DATA =1
• SCK có xung( từ thấp lên cao) sau đó VDK kéo chân DATA xuống thấp
• SCK có xung tiếp theo, VDK giữ DATA ở thấp Khi đó chân SHT11 biết làVĐK muốn giáo tiếp với nó
• Ta đưa chân DATA lên 1 Chuẩn bị quá trình gửi lệnh xuống SHT
• Gửi lệnh xuống SHT
• Gửi 0: cho chân DATA xuống 0, sau đó kích xung SCK từ Thấp lên Cao.Khi đó SHT11 sẽ đọc tín hiệu tại chân DATA và nhận giá trị
• Gửi 1: cho chân DATA lên 1, sau đó kích xung SCK từ thấp lên cao
• VĐK gửi lệnh 8 bít xuống SHT11 :Trong đó 3 bit đầu là 0, 5 bit sau xác địnhyêu cầu của VĐK với SHT11
Hình 7 : Bảng mã lệnh SHT11
• Kiểm tra lỗi:
Trang 15• Cho chân DATA lên 1, sau đó chuyển chế độ là chân INPUT
• Kích 1 xung từ thấp lên cao tại SCK
• Đọc lại chân DATA
Nếu =0: Gửi lệnh OK
Nếu =1 : Gửi lệnh có lỗi
• Nếu gửi lệnh OK, ta chờ 1 thời gian để SHT11 đo nhiệt độ và gửi lại datacho VDK Lúc này chân DATA vẫn là chân INPUT SHTT11 sẽ kéo chân DATA lên
1 trong quá trình đo chờ kết quả
3 Truyền dữ liệu qua NRF24L01:
• Có bộ lọc nhiễu tại đầu thu
• Kếch đại bị ảnh hưởng bởi nhiễu thấp (LNA)
• 3-32 bytes trên 1 khung truyền nhận
Trang 16Hình 8: Sơ đồ truyền nhận SPI
Phân tích:
• Modul nRF24L01 hoạt động ở tần số sóng ngắn 2.4G nên Modul này khảnăng truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi trường cóvật cản
• Modul nRF24L01 có 126 kênh truyền Điều này giúp ta có thể truyền nhận
dữ liệu trên nhiều kênh khác nhau
• Modul khả năng thay đổi công suất phát bằng chương trình, điều này giúp nó
có thể hoạt động trong chế độ tiết kiệm năng lượng
• Chú ý: Điện áp cung cấp cho là 1.9à3.6V Điện áp thường cung cấp là 3.3V.Nhưng các chân IO tương thích với chuẩn 5V Điều này giúp nó giao tiếp rộng dãivới các dòng vi điều khiển
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG
I.Sơ đồ từng khối chi tiết
1.Khối nguồn
Mạch nguồn đầu vào pin 9V được ổn áp qua LM7805 cho đầu ra 5V cấp cho LED
7 THANH và LCD Đồng thời cho đầu ra 5V trên qua LM117 để có them đầu ra3.3V cấp cho chip MSP430G2553 và NRF24L01
Trang 172.Khối mạch phát.
Lấy dự liệu nhiệt độ, độ ẩm từ SHT11 , truyền dữ liệu qua NRF24L01
Trang 183.Khối mạch nhận.
Nhận dữ liệu nhiệt độ, độ ẩm từ mạch phát thông qua NRF24L01.
Trang 19GVHD : TS.Đinh Thị Nhung và TS.Vương Hoàng Nam Page 19
Trang 21GVHD : TS.Đinh Thị Nhung và TS.Vương Hoàng Nam Page 21
Trang 22CHƯƠNG 4 KẾT QUẢ THỰC HIỆN
1.Sơ đồ mạch in
a.Sơ đồ mặt trên
Trang 23GVHD : TS.Đinh Thị Nhung và TS.Vương Hoàng Nam Page 23
Trang 242.Một số hình ảnh về sản phẩm
Hình 9 Một số hình ảnh kết quả thu được
Trang 25 Kết quả thu được sau đề tài này:
Do kinh nghiệm còn ít và hạn chế về thời gian cho việc chỉnh sửa nên mạch có phát sinh một số lỗi.
Ưu điểm :
- Mạch thực hiện được các chức năng chính theo yêu cầu.
- Mạch in đẹp.
- Sắp xếp linh kiện đẹp
Khuyết điểm của mạch:
- Mạch chạy chưa được ổn định.
Hướng phát triển của đề tài này:
Trang 26TÀI LIỆU THAM KHẢO
Trang 27unsigned char RBuf[32];
unsigned char so[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x6f};
if(a==1)
Trang 28{ if(RBuf[0]>'2')
t=1;
else t=0;
if(t==1) {
if(k==0) {
lcd_clear();
k=1;
} lcd_gotoxy(0,0);
lcd_puts("Nguy hiem");
n=0;
} else {
if(n==0) {
lcd_clear();
n=1;
} k=0;
Trang 29unsigned char RBuf[32];
unsigned char so[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x6f};
/*
* main.c */
Trang 30// ham lcd void main() {
Config_stop_WDT(); // stop WDT, see description in Basic_config.c
Trang 31#define LCD_RS P2_out -> _bit.b0
#define LCD_RS_DIR P2_dir -> _bit.b0
#define LCD_EN P2_out -> _bit.b1
#define LCD_EN_DIR P2_dir -> _bit.b1
// This driver just help you to "write" LCD, not to read LCD "status".
// So that, you must pull your pin LCD_RW to GND (0V).
#define LCD_DATA_4 P2_out -> _bit.b2
#define LCD_DATA_4_DIR P2_dir -> _bit.b2
#define LCD_DATA_5 P2_out -> _bit.b3
Trang 32#define LCD_DATA_5_DIR P2_dir -> _bit.b3
#define LCD_DATA_6 P2_out -> _bit.b4
#define LCD_DATA_6_DIR P2_dir -> _bit.b4
#define LCD_DATA_7 P2_out -> _bit.b5
#define LCD_DATA_7_DIR P2_dir -> _bit.b5
void lcd_delay_us (unsigned long t)
Trang 34lcd_delay_ms(200); // delay for LCD reset
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,FOUR_BIT & LINES_5X7); // Set LCD type
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,DOFF&CURSOR_OFF&BLINK_OFF); // display off
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,DON&CURSOR_OFF&BLINK_OFF); // display on
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,0x01); // clear display and move cursor to home
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,SHIFT_CUR_LEFT); // cursor shift mode
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,0x01); // clear display and move cursor to home
lcd_delay_ms(2); // wait for LCD
}
void lcd_clear(void)
Trang 35lcd_put_byte(0,0x01); // display off
lcd_delay_ms(2); // wait for LCD
// Put a writable character on LCD
// If the character is '\f', clear the LCD
// If the character is '\n', move cursor to the second line
lcd_delay_ms(2); // wait for LCD
Trang 37void lcd_put_num (unsigned long val, char dec, unsigned char neg)
Trang 38if ( (dec - total)> 0) // ex: val = 55; dec = 3 put 0.055
#define set_CE (P1OUT|=BIT4)
#define clear_CE (P1OUT&=~BIT4)
#define set_CSN (P1OUT|=BIT3)
#define clear_CSN (P1OUT&=~BIT3)
#define set_SCK (P1OUT|=BIT5)
#define clear_SCK (P1OUT&=~BIT5)
#define set_MOSI (P1OUT|=BIT6)