34
Báo cáo project 2 Mụ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 Nhóm 1 Page 1

Report Peoject II

Embed Size (px)

Citation preview

Bo co project 2

Bo co project 2

Mc Lc:

Mc Lc:1A.Li Ni u.3B.Ni Dung.4Phn 1: M T Ti.41.Cc Phn Mm V Thit B M Phng S Dng.42.Yu Cu Ca Ti.5Phn 2: Tm Hiu V Linh Kin Phn Cng S Dng.51.Vi iu Khin MSP430G2553.52.LCD 16x2.123.Module thu pht nRF24L01 2.4Ghz.15Phn 3: Code Cho MPS430G2553 V Thit K Mch.181.Code Cho MPS430G2553.182.Thit K Mch.213.Mch Thc T Hon Thnh.22C.Kt Lun.23D.Ph Lc24

Danh sch Hnh V

Hnh 1: Kit launchpad msp4305Hnh 2: MSP430G25535Hnh 3: S chn MSP430G25537Hnh 4: Mch RESET cho chip10Hnh 5 : Hnh dng ca loi LCD thng dng12Hnh 6 : S chn ca LCD12Hnh 7: Module thu pht nRF24L0115Hnh 8: S khi ca nRF24L01.16Hnh 9: Mch Layout ca nRF24L01.17Hnh 10: Mch Nguyn L.21Hnh 11: Lp Top.22Hnh 12: Lp Bottom22Hnh 13:Mch sau khi hon thnh.23

A.Li Ni u. gip sinh vin hc tp, trau di thm kin thc v thit k phn cng v tip cn su hn vi vi iu khin th Vin in T Vin Thng trng H.Bch Khoa H Ni t chc mn hc Project 2. Trong mn hc Project 2 ny nhm em c phn cng di s hng dn ca thy ThS.Nguyn Tin Dng. Nh c s ch bo hng dn c th ca thy ln nhm em hon thnh c Project 2.Trong qu trnh thc hin Project 2 c s hng dn ch bo tn tnh ca thy ThS.Nguyn Tin Dng cng anh hng dn Nguyn Quang Tun Anh, chng em hc tp v trau di cho bn thn nhiu kin thc mi l, b ch, bit cch tip cn mt vn v a ra tng gii quyt vn . Qua rn luyn cho mnh phm cht ca nhng k s trong tng lai.Mc d nhn c s gip , ch bo, tn tnh t pha cc thy nhng do bc u lm quen vi loi vi iu khin mi ln chng em cng gp phi mt vi kh khn khi tip cn nhng cng nhanh chng tm hiu v lm ch c n.Cui cng chng em xin c gi li cm n ti thy ThS.Nguyn Tin Dng v anh Nguyn Quang Tun Anh hng dn chng em hon thnh Project 2.Chng em xin chn thnh cm n!

B.Ni Dung.

Phn 1: M T Ti.

1. Cc Phn Mm V Thit B M Phng S Dng. Phn mm altium designer 10: v mch phn cng. Phn Mm CCS4.0: dng vit code cho vi iu khin MSP430, v gip lp xung kit launchpad msp430. Kit launchpad msp430: cng c test m phng phn cng.

Hnh 1: Kit launchpad msp430

2. Yu Cu Ca Ti. Mch OBU thu tn hiu tr ph. Mch pht tn hiu tr ph t ti cng thu ph. Hin th thng tin ty chn. Khng pht trng lp tn hiu ti nhiu OBU. Truyn thng tc ti 20km/h.

Phn 2: Tm Hiu V Linh Kin Phn Cng S Dng.

1. Vi iu Khin MSP430G2553.

Hnh 2: MSP430G2553 Gii thiu tng qut :Cc dng vi iu khin msp430 ny do hng TI ( Texas Instruments) sn xut, ngoi ra th TI cn sn xut v cung cp nhiu linh kin in t v cc module khc .Vi iu khin( Micro controller unit MCU ) l n v x l nh, n c tch hp ton b cc b nh nh ROM , RAM , cc port truy xut , giao tip ngoi vi trc tip trn 1 con chip ht sc nh gn. c thit k da trn cu trcVON-NEUMAN, c im ca cu trc ny l ch c duy nht 1 bus gia CPU v b nh (data v chng trnh) , do m chng phi c rng bit tng t nhau.MSP430 c mt s phinbn nh: MSP430x1xx, MSP430x2xx, MSP430x3xx,MSP430x4xx, MSP430x5xx. Di y l nhng c im tng qut ca h vi iu khin MSP430:+ Cu trc s dng ngun thp gip ko di tui th ca Pin-Duy tr 0.1A dng nui RAM.-Ch 0.8A real-time clock.-250 A/ MIPS.+ B tng t hiu sut cao cho cc php o chnh xc-12 bit hoc 10 bit ADC-200 kskp, cm bin nhit , Vref ,-12 bit DAC.-B gim st in p ngun.+ 16 bit RISC CPU cho php c nhiu ng dng, th hin mt phn kch thc Code lp trnh.-Thanh ghi ln nn loi tr c trng hp tt nghn tp tin khi ang lm vic.-Thit k nh gn lm gim lng tiu th in v gim gi thnh.-Ti u ha cho nhng chng trnh ngn ng bc cao nh C, C++-C 7 ch nh a ch.-Kh nng ngt theo vc t ln.+ Trong lp trnh cho b nh Flash cho php thay i Code mt cch linh hot, phm vi rng, b nh Flash cn c th lu li nh nht k ca d liu. S chn :Chip MSP430 c kch thc nh gn , ch vi 20 chn i vi kiu chn DIP.Bao gm 2 port I/O (hay GPIO general purprose input/ output : cng nhp xut chung).

Hnh 3: S chn MSP430G2553Ta thy rng mi port u c 8 chn.Port 1 : c 8 chn t P1.0 n P1.7 tng ng vi cc chn t 2-7 v 14 , 15.Port 2 : cng gm c 8 chn P2.0 P2.7 ng vi cc chn 8 13 , 18,19.Ngoi chc nng I/O th trn mi pin ca cc port u l nhng chn a chc nng, ta th thy r trong bng sau :

Trn bng l chc nng ca tng chn , ngoi ra i vi cc MCU c kiu chn SMD loi 28 chn th n c thm port 3 na,nhng y ch xt i vi kiu DIP 20 chn v kiu TSSOP 20 chn , kiu cn li cc bn c th tm hiu trn trang ch ca nh sn xut . Gii thch s lc cc chn :- Chn s 1 l chn cp ngun Vcc( k hiu trn chip l DVcc ) , y ngun cho chip ch c cp mc 3,3V , nu cp ngun cao qu mc ny th chip c th hot ng sai hay chy chip . c c mc ngun ny th ta phi dng 1 IC n p ring c k hiu LM1117 hay AD1117 , IC ny c kiu chn SMD nh gn , cch mc chip ny th cng ging nh vi nhng IC ngun nh LM78xx , tuy nhin lu y l th t chn y c hi khc 1 cht.Cc bn c th xem datasheet ca IC m mc cho ph hp.-Chn 20 l chn ni cc m (0V) , chn ny th khng c g c bit.-Chn reset : Chnh l chn s 16 RST , nu cc bn tng hc v PIC th s thy chn reset c k hiu l MCLR , cc bn thy du gch ngang trn c ngha l chn ny tch cc mc thp . Mc ch ca vic reset l nhm cho chng trnh chy li t u .

Mch reset cho chip :

Hnh 4: Mch RESET cho chip

Ch : t y l t pi v chnh xc l t 102, nu thay i th khi kt ni Jtag np code cho chip s khng c.

-Mch dao ng : Cng ging nh nhng dng vi iu khin khc th Msp430 cng h tr ngi dng thch anh ngoi ( external crystal ), nhng thch anh ngoi vi cho php ch c th ln ti 32,768 kHz m thi, v tn hiu ny c mc trn 2 chn 18 v 19. Nhng msp430 li h tr thch anh ni c th ln n 16Mhz, ty vo cch khai bo trong lp trnh. V mc nh ca chip l thch anh ni. Nh vy th chng ta khng cn thit phi s dng mch dao ng ngoi cho chip ging nh nhng dng khc.

- Port I/O : Port 1 : c 8 chn t P1.0 n P1.7 tng ng vi cc chn t 2-7 v 14 , 15. Port 2 : cng gm c 8 chn P2.0 P2.7 ng vi cc chn 8 13 , 18,19.Trong ch nhp (input) th c 2 port u c 1 mch iu khin in tr ko dng gi l PULL UP nhng gi tr ca in tr ny rt ln khong 47K nn gi l WEAK PULL UP RESISTAN. Vic iu khin PULL UP s c tin hnh thng qua lp trnh tc ng ln thanh ghiPxRENs c cp chng sau .

iu ny cng ging nh vic thit lp input port B ca vi iu khin PIC, port B cng c in tr ko ln , v ngi lp trnh phi thao tc qua thanh ghi OPTION_REG.

2. LCD 16x2.

Hnh dng v kch thc:

C rt nhiu loi LCD vi nhiu hnh dng v kch thc khc nhau, trn hnh 1 l loi LCD thngdng.

Hnh 5 : Hnh dng ca loi LCD thng dng

Khi sn xut LCD, nh sn xut tch hp chp iu khin (HD44780) bn trong lp v v ch acc chn giao tip cn thit. Cc chn ny c nh s th t v t tn nh hnh 2 :

Hnh 6 : S chn ca LCD Chc nng Cc Chn

ChnK HiuM T

1VssChn ni t cho LCD, khi thit k mch ta ni chn ny vi GND ca mch iu khin

2VDDChn cp ngun cho LCD, khi thit k mch ta ni chn ny vi VCC=5V ca mch iu khin

3VEEiu chnh tng phn ca LCD.

4RSChn chn thanh ghi (Register select). Ni chn RS vi logic 0 (GND) hoc logic 1 (VCC) chn thanh ghi.+ Logic 0: Bus DB0-DB7 s ni vi thanh ghi lnh IR ca LCD ( ch ghi - write) hoc ni vi b m a ch ca LCD ( ch c - read)+ Logic 1: Bus DB0-DB7 s ni vi thanh ghi d liu DR bn trong LCD.

5R/WChn chn ch c/ghi (Read/Write). Ni chn R/W vi logic 0 LCD hot ng ch ghi, hoc ni vi logic 1 LCD ch c

6EChn cho php (Enable). Sau khi cc tn hiu c t ln bus DB0-DB7, cc lnh ch c chp nhn khi c 1 xung cho php ca chn E.+ ch ghi: D liu bus s c LCD chuyn vo(chp nhn) thanh ghi bn trong n khi pht hin mt xung (high-to-low transition) ca tn hiu chn E.+ ch c: D liu s c LCD xut ra DB0-DB7 khi pht hin cnh ln (low-to-high transition) chn E v c LCD gi bus n khi no chn E xung mc thp.

7-14DB0-DB7Tm ng ca bus d liu dng trao i thng tin vi MPU. C 2 ch s dng 8 ng bus ny :+ Ch 8 bit : D liu c truyn trn c 8 ng, vi bit MSB l bit DB7.+ Ch 4 bit : D liu c truyn trn 4 ng t DB4 ti DB7, bit MSB l DB7

15ANgun dng cho n nn

16KGND cho n nn

3. Module thu pht nRF24L01 2.4Ghz. Gii thiu Hnh 7: Module thu pht nRF24L01 Thng s k thutRadio: Hot ng gii tn 2.4 Ghz. C 126 knh. Truyn v nhn d liu. Truyn tc cao 1Mbps hoc 2 Mbps.Cng sut pht: C th ci t c 4 cng sut ngun pht: 0,-6,-12,-18 dBm.Thu: C b lc nhiu ti u thu. Khuch i b nh hng bi nhiu thp (LNA).Ngun cp: Hot ng t 1,9 3,6V Cc chn I/O chy c c 3,3 ln 5V.Giao tip: 4 pin SPI. Tc ti a 8Mbps. 3-32 bytes trn 1 khung truyn nhn.

Hnh 8: S khi ca nRF24L01. Phn Tch Modul nRF24L01 hot ng tn s sng ngn 2.4G nn Modul ny kh nng truyn d liu tc cao v truyn nhn d liu trong iu kin mi trng c vt cn. Modul nRF24L01 c 126 knh truyn. iu ny gip ta c th truyn nhn d liu trn nhiu knh khc nhau. Modul kh nng thay i cng sut pht bng chng trnh, iu ny gip n c th hot ng trong ch tit kim nng lng. Ch : in p cung cp cho l 1.93.6V. in p thng cung cp l 3.3V. Nhng cc chn IO tng thch vi chun 5V. iu ny gip n giao tip rng di vi cc dng vi iu khin.

Hnh 9: Mch Layout ca nRF24L01.

Phn 3: Code Cho MPS430G2553 V Thit K Mch.

1. Code Cho MPS430G2553. Code xy dng giao tip UART gia my tnh v MSP430 pht:#pragma vector=USCIAB0RX_VECTOR__interrupt void USCI0RX_ISR(void){unsigned char u8Receive;u8Receive = UCA0RXBUF;if (u8Receive == '\n'){g_u8StartSendFlag = 1;return;}if (g_u8UartBufferPtr < UART_BUFFER_MAX){g_pUartBuffer[g_u8UartBufferPtr++] = u8Receive;g_pUartBuffer[g_u8UartBufferPtr] = 0;}

}

Code truyn tn hiu thng qua module RF/* * main.c (Transmitter) */void main(void){unsigned long i = 0;unsigned char RxBuf[128]; WDTCTL = WDTPW | WDTHOLD;// Stop watchdog timer

BCSCTL1 = CALBC1_1MHZ; // Set rangeDCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */

P1DIR |= BIT0;P1OUT &= ~BIT0;UartInit();init_NRF24L01();SetRX_Mode();

while (1){if (nRF24L01_RxPacket(RxBuf) == 1){UartSend(RxBuf, strlen(RxBuf));SetRX_Mode();}

if (g_u8StartSendFlag == 1){SetTX_Mode();nRF24L01_TxPacket(g_pUartBuffer);SPI_RW_Reg(WRITE_REG+STATUS, 0XFF); // Clear Bit Sendg_u8StartSendFlag = 0;g_u8UartBufferPtr = 0;LED_TOGGLE;SetRX_Mode();}}}

2. Thit K Mch.

Mch nguyn l module thu tn hiu:

Hnh 10: Mch Nguyn L.

Mch in:

Hnh 11: Lp Top.

Hnh 12: Lp Bottom

3. Mch Thc T Hon Thnh.

Hnh 13:Mch sau khi hon thnh.

C.Kt Lun.

Qua nhng ngy tri nghim thc t khi tin hnh thc hin Project 2 ny,chng em hc tp v lm vic thc s, nh nhng kin thc hc hi c cng s ch bo tn tnh ca cc thy, chng em hiu v lm vng c quy trnh lm vic to ra mt sn phm, hc c cch lm vic nhm, cch t chc cng vic hiu qu. c rt c nhng kinh nghim thc t qu bu. T nhng kinh nghim cng nh nhng bi hc qu bu chng em hc c s gip ch cho chng em rt nhiu cho cng vic hc tp v nghin cu tip theo ca mnh. Mt ln na em xin cm n thy Ths.Nguyn Tin Dng to mi iu kin tt nht cho chng em c th hon thn tt Project 2 ny.

D.Ph Lc

1. Code Xy Dng Hm iu Khin Mch Pht.main.c#include #include "nRF24l01.h"#include "string.h"#include "stdio.h"#include "LCD.h"#define LED_TOGGLEP1OUT ^= BIT0

#define UART_BUFFER_MAX32

void UartInit(void);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;

/* * main.c (Transmitter) */void main(void){unsigned long i = 0;unsigned char RxBuf[128]; WDTCTL = WDTPW | WDTHOLD;// Stop watchdog timer

BCSCTL1 = CALBC1_1MHZ; // Set rangeDCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */

P1DIR |= BIT0;P1OUT &= ~BIT0;UartInit();init_NRF24L01();SetRX_Mode();

while (1){if (nRF24L01_RxPacket(RxBuf) == 1){UartSend(RxBuf, strlen(RxBuf));SetRX_Mode();}

if (g_u8StartSendFlag == 1){SetTX_Mode();nRF24L01_TxPacket(g_pUartBuffer);SPI_RW_Reg(WRITE_REG+STATUS, 0XFF); // Clear Bit Sendg_u8StartSendFlag = 0;g_u8UartBufferPtr = 0;LED_TOGGLE;SetRX_Mode();}}}

// Uart received handler#pragma vector=USCIAB0RX_VECTOR__interrupt void USCI0RX_ISR(void){unsigned char u8Receive;u8Receive = UCA0RXBUF;if (u8Receive == '\n'){g_u8StartSendFlag = 1;return;}if (g_u8UartBufferPtr < UART_BUFFER_MAX){g_pUartBuffer[g_u8UartBufferPtr++] = u8Receive;g_pUartBuffer[g_u8UartBufferPtr] = 0;}

}

void UartInit(void){P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXDP1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXDUCA0CTL1 |= UCSSEL_2; // SMCLKUCA0BR0 = 104; // 1MHz 9600UCA0BR1 = 0; // 1MHz 9600UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1UCA0CTL1 &= ~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){unsigned char i;

for (i = 0; i < u8Length; i++){while (!(IFG2 & UCA0TXIFG)); // USCI_A0 TX buffer ready?UCA0TXBUF = pBuff[i]; // TX -> RXed character}}

2. Code Xy Dng Hm iu Khin Mch Thu.main.c#include #include "nRF24l01.h"#include "string.h"#include "stdio.h"#include "LCD.h"#define LED_TOGGLEP1OUT ^= BIT0

#define UART_BUFFER_MAX32

void UartInit(void);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;

/* * main.c (Receiver) */void main(void){unsigned long i = 0;unsigned char RxBuf[128]; WDTCTL = WDTPW | WDTHOLD;// Stop watchdog timer

BCSCTL1 = CALBC1_1MHZ; // Set rangeDCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */

P1DIR |= BIT0;P1OUT &= ~BIT0;

init_NRF24L01();SetRX_Mode();lcd_init(0);lcd_clear();while (1){if (nRF24L01_RxPacket(RxBuf) == 1){lcd_gotoxy(0,0);lcd_puts("ky tu hien thi");lcd_gotoxy(0,1);lcd_putc(RxBuf[0]);lcd_putc(RxBuf[1]);lcd_putc(RxBuf[2]);SetTX_Mode();nRF24L01_TxPacket("Received: ");nRF24L01_TxPacket(RxBuf);nRF24L01_TxPacket("\n\r");SPI_RW_Reg(WRITE_REG+STATUS, 0XFF); // Clear Bit SendLED_TOGGLE;SetRX_Mode();}}}

Nhm 1Page 27