Báo cáo project 2
Trang 1Mục Lục:
Mục Lục: 1
A.Lời Nói Đầu 3
B.Nội Dung 4
Phần 1: Mô Tả Đề Tài 4
1 Các Phần Mềm Và Thiết Bị Mô Phỏng Sử Dụng 4
2 Yêu Cầu Của Đề Tài 5
Phần 2: Tìm Hiểu Về Linh Kiện Phần Cứng Sử Dụng 5
1 Vi Điều Khiển MSP430G2553 5
2 LCD 16x2 12
3 Module thu phát nRF24L01 2.4Ghz 15
Phần 3: Code Cho MPS430G2553 Và Thiết Kế Mạch 18
1 Code Cho MPS430G2553 18
2 Thiết Kế Mạch 21
3 Mạch Thực Tế Hoàn Thành 22
C.Kết Luận 23
D.Phụ Lục 24
Trang 2Danh sách Hình Vẽ
Hình 1: Kit launchpad msp430 5
Hình 2: MSP430G2553 5
Hình 3: Sơ đồ chân MSP430G2553 7
Hình 4: Mạch RESET cho chip 10
Hình 5 : Hình dáng của loại LCD thông dụng 12
Hình 6 : Sơ đồ chân của LCD 12
Hình 7: Module thu phát nRF24L01 15
Hình 8: Sơ đồ khối của nRF24L01 16
Hình 9: Mạch Layout của nRF24L01 17
Hình 10: Mạch Nguyên Lý 21
Hình 11: Lớp Top 22
Hình 12: Lớp Bottom 22
Hình 13:Mạch sau khi hoàn thành 23
Trang 3A.Lời Nói Đầu.
Để giúp sinh viên học tập, trau dồi thêm kiến thức về thiết kế phần cứng và tiếp cậnsâu hơn với vi điều khiển thì Viện Điện Tử Viễn Thông trường ĐH.Bách Khoa HàNội đã tổ chức môn học Project 2 Trong môn học Project 2 này nhóm em đã đượcphân công dưới sự hướng dẫn của thầy ThS.Nguyễn Tiến Dũng Nhờ có sự chỉ bảohướng dẫn cụ thể của thầy lên nhóm em đã hoàn thành được Project 2
Trong quá trình thực hiện Project 2 được sự hướng dẫn chỉ bảo tận tình của thầyThS.Nguyễn Tiến Dũng cùng anh hướng dẫn Nguyễn Quang Tuấn Anh, chúng em đãhọc tập và trau dồi cho bản thân nhiều kiến thức mới lạ, bổ ích, biết cách tiếp cận mộtvẫn đề và đưa ra ý tưởng giải quyết vẫn đề Qua đó rèn luyện cho mình phẩm chấtcủa những kỹ sư trong tương lai
Mặc dù nhận được sự giúp đỡ, chỉ bảo, tận tình từ phía các thầy nhưng do bước đầulàm quen với loại vi điều khiển mới lên chúng em cũng gặp phải một vài khó khănkhi tiếp cận nhưng cũng đã nhanh chóng tìm hiểu và làm chủ được nó
Cuối cùng chúng em xin được gửi lời cảm ơn tới thầy ThS.Nguyễn Tiến Dũng vàanh Nguyễn Quang Tuấn Anh đã hướng dẫn chúng em hoàn thành Project 2
Chúng em xin chân thành cảm ơn!
Trang 42 Yêu Cầu Của Đề Tài.
Mạch OBU thu tín hiệu trả phí
Mạch phát tín hiệu trả phí đặt tại cổng thu phí
Hiển thị thông tin tùy chọn
Không phát trùng lặp tín hiệu tới nhiều OBU
Trang 5Phần 2: Tìm Hiểu Về Linh Kiện Phần Cứng Sử Dụng.
1 Vi Điều Khiển MSP430G2553.
Hình 2: MSP430G2553
Giới thiệu tổng quát :
Các dòng vi điều khiển msp430 này do hãng TI ( Texas Instruments) sản xuất, ngoài ra thì TI còn sản xuất và cung cấp nhiều linh kiện điện tử và các module khác
Vi điều khiển( Micro controller unit – MCU ) là đơn vị xử lý nhỏ, nó được tích hợp toàn bộ các bộ nhớ như ROM , RAM , các port truy xuất , giao tiếp ngoại vi trực tiếp trên 1 con chip hết sức nhỏ gọn Được thiết kế dựa trên cấu trúc VON-NEUMAN , đặc điểm của cấu trúc này là chỉ có duy nhất 1 bus giữa CPU và bộ nhớ (data và chương trình) , do đó mà chúng phải có độ rộng bit tương tự nhau.MSP430 có một số phiênbản như: MSP430x1xx, MSP430x2xx, MSP430x3xx,MSP430x4xx, MSP430x5xx Dưới đây là những đặc điểm tổng quát của họ vi điều khiển MSP430:
+ Cấu trúc sử dụng nguồn thấp giúp kéo dài tuổi thọ của Pin
-Duy trì 0.1µA dòng nuôi RAM
-Chỉ 0.8µA real-time clock
Trang 6-250 µA/ MIPS.
+ Bộ tương tự hiệu suất cao cho các phép đo chính xác
-12 bit hoặc 10 bit ADC-200 kskp, cảm biến nhiệt độ, Vref ,
-12 bit DAC
-Bộ giám sát điện áp nguồn
+ 16 bit RISC CPU cho phép được nhiều ứng dụng, thể hiện một phần ở kích thước Code lập trình
-Thanh ghi lớn nên loại trừ được trường hợp tắt nghẽn tập tin khi đang làm việc.-Thiết kế nhỏ gọn làm giảm lượng tiêu thụ điện và giảm giá thành
-Tối ưu hóa cho những chương trình ngôn ngữ bậc cao như C, C++
-Có 7 chế độ định địa chỉ
-Khả năng ngắt theo véc tơ lớn
+ Trong lập trình cho bộ nhớ Flash cho phép thay đổi Code một cách linh hoạt, phạm vi rộng, bộ nhớ Flash còn có thể lưu lại như nhật ký của dữ liệu
Sơ đồ chân :
Chip MSP430 có kích thước nhỏ gọn , chỉ với 20 chân đối với kiểu chân DIP.Bao gồm 2 port I/O (hay GPIO general purprose input/ output : cổng nhập xuất chung)
Hình 3: Sơ đồ chân MSP430G2553
Trang 7Ta thấy rằng mỗi port đều có 8 chân.
Port 1 : có 8 chân từ P1.0 đến P1.7 tương ứng với các chân từ 2-7 và 14 , 15 Port 2 : cũng gồm có 8 chân P2.0 – P2.7 ứng với các chân 8 – 13 , 18,19
Ngoài chức năng I/O thì trên mỗi pin của các port đều là những chân đa chức năng, ta thể thấy rõ trong bảng sau :
Trang 8Trên bảng là chức năng của từng chân , ngoài ra đối với các MCU có kiểu chân SMD loại 28 chân thì nó có thêm port 3 nữa,nhưng ở đây chỉ xét đối với kiểu DIP
20 chân và kiểu TSSOP 20 chân , kiểu còn lại các bạn có thể tìm hiểu trên trang chủ của nhà sản xuất
Giải thích sơ lược các chân :
- Chân số 1 là chân cấp nguồn Vcc( ký hiệu trên chip là DVcc ) , ở đây nguồn cho chip chỉ được cấp ở mức 3,3V , nếu cấp nguốn cao quá mức này thì chip có thể hoạt động sai hay cháy chip
Để có được mức nguồn này thì ta phải dùng 1 IC ổn áp riêng có ký hiệu LM1117 hay AD1117 , IC này có kiểu chân SMD nhỏ gọn , cách mắc chip này thì cũng giống như với những IC nguồn như LM78xx , tuy nhiên lưu ý ở đây là thứ tự chân
ở đây có hơi khác 1 chút.Các bạn có thể xem datasheet của IC mà mắc cho phù hợp
-Chân 20 là chân nối cực âm (0V) , chân này thì không có gì đặc biệt
-Chân reset : Chính là chân số 16 RST , nếu các bạn đã từng học về PIC thì sẽ thấy chân reset có ký hiệu là MCLR , các bạn để ý thấy dấu gạch ngang trên có nghĩa là chân này tích cực ở mức thấp Mục đích của việc reset là nhằm cho chương trình chạy lại từ đầu
Trang 9Mạch reset cho chip :
Hình 4: Mạch RESET cho chip
Chú ý: tụ ở đây là tụ pi và chính xác là tụ 102, nếu thay đổi thì khi kết nỗi Jtag đểnạp code cho chip sẽ không được
-Mạch dao động : Cũng giống như những dòng vi điều khiển khác thì Msp430cũng hỗ trợ người dùng thạch anh ngoài ( external crystal ), nhưng thạch anhngoại vi cho phép chỉ có thể lên tới 32,768 kHz mà thôi, và tín hiệu này đượcmắc trên 2 chân 18 và 19 Nhưng msp430 lại hỗ trợ thạch anh nội có thể lên đến16Mhz, tùy vào cách khai báo trong lập trình Và mặc định của chip là thạch anh
Trang 10nội Như vậy thì chúng ta không cần thiết phải sử dụng mạch dao động ngoại chochip giống như những dòng khác.
Điều này cũng giống như việc thiết lập input ở port B của vi điều khiển PIC, ở port
B cũng có điện trở kéo lên , và người lập trình phải thao tác qua thanh ghi
OPTION_REG
Trang 112 LCD 16x2.
Hình dáng và kích thước:
Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên hình 1 là loại LCD thông dụng
Hình 5 : Hình dáng của loại LCD thông dụng
Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780)bên trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết Các chân này được đánh
số thứ tự và đặt tên như hình 2 :
Trang 12Hình 6 : Sơ đồ chân của LCD
Chức năng Các Chân
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này
với GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với VCC=5V của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD
4 RS Chân chọn thanh ghi (Register select) Nối chân RS với
logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
DR bên trong LCD
5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W
với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc
6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt
lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1
Trang 13+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện mộtxung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E
và được LCD giữ ở bus đến khi nào chân E xuống mức thấp
7-14 DB0-DB7 Tám đường của bus dữ liệu dùng để trao đổi thông tin
với MPU Có 2 chế độ sử dụng 8 đường bus này :+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, vớibit MSB là bit DB7
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7
3 Module thu phát nRF24L01 2.4Ghz.
Giới thiệu
Trang 14- Có bộ lọc nhiễu tại đầu thu.
- Khuếch đại bị ảnh hưởng bởi nhiễu thấp (LNA)
Nguồn cấp:
- Hoạt động từ 1,9 – 3,6V
Trang 15- Các chân I/O chạy được cả 3,3 lẫn 5V.
Giao tiếp:
- 4 pin SPI
- Tốc độ tối đa 8Mbps
- 3-32 bytes trên 1 khung truyền nhận
Hình 8: Sơ đồ khối của nRF24L01
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
dữ liệu trên nhiều kênh khác nhau
nó có thể hoạt động trong chế độ tiết kiệm năng lượng
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ãi với các dòng vi điều khiển
Trang 16Hình 9: Mạch Layout của nRF24L01.
Phần 3: Code Cho MPS430G2553 Và Thiết Kế Mạch.
Trang 18unsigned long i = 0;
unsigned char RxBuf[128];
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step +
Trang 20Mạch nguyên lý module thu tín hiệu:
Hình 10: Mạch Nguyên Lý
Mạch in:
Trang 22C.Kết Luận.
Qua những ngày trải nghiệm thực tế khi tiến hành thực hiện Project 2
này,chúng em đã học tập và làm việc thực sự, nhờ những kiến thức học hỏi được cùng sự chỉ bảo tận tình của các thầy, chúng em đã hiểu và lắm vững được quy trình làm việc để tạo ra một sản phẩm, học được cách làm việc nhóm, cách tổ chức công việc hiệu quả Đúc rút được những kinh nghiệm thực tế quý báu Từ những kinh nghiệm cũng như những bài học quý báu chúng em đã học được sẽ giúp ích cho chúng em rất nhiều cho công việc học tập và nghiên cứu tiếp theo của mình
Một lần nữa em xin cảm ơn thầy Ths.Nguyễn Tiến Dũng đã tạo mọi điều kiện tốt nhất cho chúng em có thể hoàn thần tốt Project 2 này
Trang 23void UartSend(unsigned char* pBuff, unsigned char u8Length);
unsigned char g_pUartBuffer[UART_BUFFER_MAX] = { 0 };
unsigned char g_u8UartBufferPtr = 0;
unsigned char g_u8StartSendFlag = 0;
unsigned char RxBuf[128];
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step +
UartSend(RxBuf, strlen(RxBuf));
SetRX_Mode();
}
if (g_u8StartSendFlag == 1) {
SetTX_Mode();
nRF24L01_TxPacket(g_pUartBuffer);
Trang 24SPI_RW_Reg(WRITE_REG+STATUS, 0XFF); // Clear Bit Send g_u8StartSendFlag = 0;
g_u8UartBufferPtr = 0;
LED_TOGGLE;
SetRX_Mode();
} }
UCA0BR0 = 104; // 1MHz 9600
UCA0BR1 = 0; // 1MHz 9600
UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1 UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
bis_SR_register(GIE); // Enter LPM0, interrupts enabled }
void UartSend(unsigned char* pBuff, unsigned char u8Length)
Trang 252 Code Xây Dựng Hàm Điều Khiển Mạch Thu.
void UartSend(unsigned char* pBuff, unsigned char u8Length);
unsigned char g_pUartBuffer[UART_BUFFER_MAX] = { 0 };
unsigned char g_u8UartBufferPtr = 0;
unsigned char g_u8StartSendFlag = 0;
Trang 26unsigned long i = 0;
unsigned char RxBuf[128];
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */
if (nRF24L01_RxPacket(RxBuf) == 1) {
Trang 27}