Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
1,03 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ******************************* MÔN ĐỒ ÁN II Báo cáo tiến độ Đồ Án II: ĐiềukhiểnthiếtbịđiệnnhàquaModulethuphátRF315M Giáo viên hướng dẫn : Th.s Đinh Thị Nhung Sinh viên: Hà Quốc Việt - MSSV 20102546 Ich Vannak -MSSV 20102569 Trần Đức Thắng -MSSV 20106270 MỤC LỤC: I.Tổng quan MSP430 II.Giới thiệu KIT Launch Pad III.Phần thực hành KIT Phần I Tổng quan MSP430: MSP 430 họ vi điềukhiển cấu trúc RISC 16-bit sản xuất bởicông ty Texas Instruments.MSP chữ viết tắt “MIXED SIGNAL MICROCONTROLLER” - Làdòng vi điềukhiển siêu tiết kiệm lượng, sử 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 tính CPU đại tích hợp sẵn module ngoại vi Đặc biệt ChípMSP 430 giải pháp thích hợp cho ứng dụng yêu cầu trộn tín hiệu -Những đặc tính dòng MSP 430 bao gồm: +Điện áp nguồn: 1.8V – 3.6 V +Mức tiêu thụ lượng cực thấp: +Chế độ hoạt động: 270 μA 1MHz, 2,2 V +Chế độ chờ: 0.7 μA +Chế độ tắt (RAM trì): 0.1 μA +Thời gian đánh thức từ chế độ Standby nhỏ 1μs +Cấu trúc RISC-16 bit, Thời gian chu kỳ lệnh 62.5 ns +Cấu hình module Clock bản: +Tần số nội lên tới 16 MHz với 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 +Điện trở bên ngồi +Timer_A 16 bit với ghi hình, ghi so sánh độ rộng 16 bit +Timer_B 16 bit với ghi hình, ghi so sánh độ rộng 16 bit +Giao diện truyền thông nối tiếp: +Hỗ trợ truyền thông nối tiếp nâng cao UART, tự động dò tìmtốc độ Baud +Bộ mã hóa giải mã IrDA (Infrared Data Associatio) +Chuẩn giao tiếp động 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ấymẫu chốt Tự động quét kênh, điềukhiển chuyển đổi liệu +Hai khuếch đại thuật toán (hoạt động) định cấu hình (Đối vớiMSP 430x22x4) +Bảo vệ sụt áp +Bộ nạp chương trình +Module mơ chip +Các thành viên dòng MSP 430 bao gồm: +MSP430G2553: 16MB + 16kB Flash Memory 512B RAM MSP43G2213: 16MB + 2KB Flash Memory 256B RAM.MSP430G2203: 16MB + 2KB Flash Memory 256B RAM MSP430G2303: 16MB + 4KB Flash Memory 256B RAM.MSP430G2313: 16MB + 4KB Flash Memory 256B RAM.-MSP430 sử dụng biết đến đặc biệt ứng dụng thiết bịđo có sử dụng khơng sử dụng LCD với chế độ nguồn nuôi thấp Với chế độnguồn nuôi từ khoảng 1,8 đến 3,6v chế độ bảo vệ nguồn.Với tiêu thụ dòng thấp chế độ tích cực dòng tiêu thụ 200uA,1Mhz, 2.2v; với chế độ standby dòng tiêu thụ 0.7uA Và chế độ tắt trì nhớ Ram dòng tiêu thụ nhỏ 0.1uA.MSP430 có ưu chế độ nguồn ni Thời gian chuyển chế độ từ chế độstandby sang chế độ tích cực nhỏ (< 6us) Và có tích hợp 96 kiểu hình cho hiểnthị LCD 16 bit ghi, 16 bit RISC CPU.Có đặc điểm họ nhà MSP MCU khơng có tín hiệu dao độngngoại, MSP tự động chuyển sang hoạt động chế độ dao động nội Sơ đồ chân dòng MSP430G2x53va MSP430G2x13: Thanh ghi vào /ra -Bộ định thời: MSP430 có hai định thời 16 Bit Timer_A Timer_B đồngthời đóng vai trò đếm Timer_A:Đặc tính Timer_A: Là Timer/Counter 16 bit Với ba ghi lưu trữ ghi sosánh Là Timer đa chức Đếm thời gian, so sánh, PWM Timer_Acũng có khả ngắt counter đếm tràn ghi đếm tràn Cácđặc tính Timer_A bao gồm:+ Là Timer/counter 16 Bit không đồng với chế độ hoạt động.+ Có thể lựa chọn cấu hình nguồn xung+ Hai tới ghi cấu hình capture/compare+ Cấu hình đầu với chế độ PWM+ Chốt ngõ vào ngõ không đồng Sơ đồ khối Timer_A Phần 2: Giới thiệu kit launch pad 1.1.Giới thiệu kit: Hình minh họa kit LaunchPad Rev.1.1 (bản ổn định Rev.1.5) : Một kit LaunchPad gồm hai thành phần, với GND phủ chung: - Nửa trên: Là phần mạch nạp theo chuẩn spy-bi-wire Jtag (2 dây), kết hợp với chuyển đổi giao tiếp UART với máy tính Trên đầu USBmini để nối với máy tính, phía hàng Header để nối đối tượng cần giao tiếp, bao gồm chân: · TXD, RXD: phục vụ giao tiếp UART với máy tính · RST, TEST: phục vụ nạp debug (sửa lỗi) theo chuẩn spy-bi-wire Jtag · VCC: cấp nguồn 3V3 cho đối tượng (thường nửa LaunchPad) - Nửa dưới: mạch phát triển MSP430 đơn giản, bao gồm: · Socket cắm MSP430 (thường gắn sẵn chip MSP430G2553), Pad hàn thạch anh, Nút nhấn Reset chip · Nút nhấn gắn vào P1.3, hai Led hiển thị có jumper để gắn vào P1.0 P1.6 Hai hàng header để kết nối hai hàng chân chip ngoài, hàng header nguồnGND-GND-VCC để lấy nguồn 3V3 LaunchPad 1.2.Sơ đồ chân: 1.3.Cấp nguồn cho kit: Việc cấp nguồn cho mạch main tiến hành cách: *Cấp ng̀n ngoài vào mạch Main - Nguồn ngồi cấp qua Domino J1 khối nguồn mạch Nguồn vào AC hay DC, dải điện áp từ 8V đến 30V Với phương án này, tổng dòng tiêu thụ mạch giới hạn khoảng 1A (giới hạn 7805) Cụ thể, lựa chọn biến áp 220V/12-24V; cục sạc (adapter) AC, DC 9V, 12V, 19V, …; Ac-quy 12-24V; Pin 9V, … - Ngoài ra, có nguồn DC 5V, 3V3 bên ngồi cắm vào header nguồn J2 (5V) hay J14 (3V3) để sử dụng Khi làm cách làm cần phải chắn, đảm bảo điện áp cấp khoảng từ 3v3 đến 5v - Sau cấp nguồn, Led D1, D2 sáng Ta gạt công tắc để Led D4 sáng, cấp nguồnMSP430 *Tận dụng nguồn 3V3 launch pad: - Nguồn 3V3 LaunchPad cấp qua header J11, với dòng tối đa khoảng 250mA - Nguồn Launch Pad lấy từ nhiều điểm, đánh dấu VCC GND (chú ý trạng thái jumper VCC lấy nguồn) Thông thường, ta giữ jumperVCC lấy nguồn tự cụm header GND-GND-VCC phía kit - Sau cấp nguồn vào J11, Led D3 sáng Ta gạt công tắc để Led D4 sáng, cấp nguồn cho MSP430 - Chú ý mạch cấp nguồn 3V3, module dùng nguồn 5V (LCD, )sẽ khơng hoạt động *Tận dụng nguồn 5V - LaunchPad có thiết kế lỗ TP1 (5V), TP3 (GND) để người dùng lấy nguồn USB5V từ máy tính cần thiết Chúng ta hàn thêm header để lấy nguồn (chỉ cần hàn header vào TP1 đủ, GND lấy từ nhiều vị trí khác TP3) - Nguồn USB-5V có dòng tối đa khoảng 500mA, đủ cho việc chạy LCD mạch Main Tuy nhiên, sử dụng nguồn cần phải cẩn thận, tránh để chập nguồn, ảnh hưởng đến hoạt động máy tính Đặc biệt ý phần vỏ đầu cắm USBmini bắt dính với GND, khơng header TP1 dính vào - Chúng ta cấp nguồn 5V-USB vào mạch Main header nguồn J2 (5V) Sau cấp nguồn, Led D1, D2 sáng Ta gạt công tắc để Led D4 sáng, cấp nguồn cho MSP430 Phần 3: Thực hành kit: Code giao tiếp spi msp430g2553 capacitive touch #include int count_default[5], count_edge[5], k; char touch[4], touch_rem[4], touch_count[4], j, i, key, speed = 1, mode = 0, proximity = 0, slider = 0; const char sensivity = 30; //Threshold void Init(void) { P1DIR |= 0xff; P1SEL &= ~(BIT2 + BIT3 + BIT4 + BIT5); // Pin-Osc: PxSEL.x = 0; PxSEL2.x = 1; P1OUT &= ~(BIT2 + BIT3 + BIT4 + BIT5); P2DIR = 0xff; P2OUT &= ~BIT6; P2SEL &= ~BIT6; 0; PxSEL2.x = 1; //Config timer A TA0CTL = TASSEL_3+MC_2; TA0CCTL1 = CM_3+CCIS_3+CAP; } void Get_info(void) { P2SEL2 &= ~BIT6; P2OUT &= ~BIT6; // Pin-Osc: PxSEL.x = // TACLK, cont mode // Pos&Neg,GND,Cap //P2.6 -> Output //P2.6 -> Ground for (j = 0; j < 4; j++) { P1SEL2 &= ~(BIT2 + BIT3 + BIT4 + BIT5); P1SEL2 |= 0x04 P1.5 are output, Turn off Pin-Osc P1SEL2 &= ~(BIT2 + BIT3 + BIT4 + BIT5); P1DIR |= BIT0 + BIT2 + BIT3 + BIT4 + BIT5 + BIT6; P1OUT &= ~(BIT2 + BIT3 + BIT4 + BIT5); // Set P1.2 -> P1.5 = 0; P2SEL2 |= BIT6; TA0CTL |= TACLR; _delay_cycles(10000); TA0CCTL1 ^= CCIS0; count_edge[4] = TACCR1; // Clear Timer_A TAR // Create SW capture of CCR1 // Save result } void main(void) { WDTCTL = WDTPW + WDTHOLD; Init(); //Stop Watchdog Timer // touch_count[0]=1; for (i = 0; i < 10; i++) { Get_info(); for (j = 0; j < 5; j++) count_default[j] = (count_default[j] + count_edge[j]) /2; } while (1) { Get_info(); for (i = 0; i < 4; i++) { touch_rem[i] = touch[i]; if ((count_edge[i] + sensivity) < count_default[i]) { if (touch_count[i] > 0) touch_count[i]++; touch[i] = 1; } else { touch[i] = 0; touch_count[i] = 1; } if (touch_count[0] > 100) { touch_count[0] = 0; proximity = ++proximity % 2; P1OUT ^= BIT0; } if ((touch[i] != touch_rem[i]) && (touch[i] == 1)) { if (touch_rem[(i-1) % 4] == 1) slider =1; if (touch_rem[(i+1) % 4] == 1) slider = 2; switch (i) { case 0: break; case 1: speed++; if (speed > 10) speed = 10; break; case 2: mode = ++mode % 3; if (mode == 2) { P1OUT &= ~0x41; P1OUT |= BIT0; } break; case 3: speed ; if (speed < 1) speed = 1; break; } } // } if (slider == 1) { P1OUT &= ~0x41; for (i = 0; i < 29; i++) { P1OUT ^= BIT0; _delay_cycles(100000); } } else if (slider == 2) { P1OUT &= ~0x41; for (i = 0; i < 29; i++) { P1OUT ^= BIT6; _delay_cycles(100000); } } switch (proximity) { case 0: { switch (mode) { case 0: P1OUT &= ~BIT6; P1OUT |= BIT0; break; case 1: P1OUT &= ~BIT0; P1OUT |= BIT6; break; case 2: k = ++k % (3 * speed); if (k == 0) P1OUT ^= 0x41; break; } _delay_cycles(2000); } break; case 1: if (count_edge[4] > count_default[4]) count_default[4] = (count_default[4] + count_edge[4])/2; for (i = 0; i < 150; i++) { if (i < count_default[4] - count_edge[4] - 10) P1OUT |= BIT0 + BIT6; else P1OUT &= ~(BIT0 + BIT6); _delay_cycles(15); } break; } } } slider = 0; ...MỤC LỤC: I.Tổng quan MSP430 II.Giới thiệu KIT Launch Pad III.Phần thực hành KIT Phần I Tổng quan MSP430: MSP 430 họ vi điều khiển cấu trúc RISC 16-bit sản xuất bởicông... MICROCONTROLLER” - Làdòng vi điều khiển siêu tiết kiệm lượng, sử 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 tính CPU đại tích hợp sẵn module ngoại vi Đặc biệt ChípMSP... tiếp I2C +Bộ chuyển đổi ADC 10 bit, 200 ksps với điện áp tham chiếu nội, Lấymẫu chốt Tự động quét kênh, điều khiển chuyển đổi liệu +Hai khuếch đại thu t tốn (hoạt động) định cấu hình (Đối vớiMSP