1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáothí nghiệm kỹ thuật vi xử lý sử dụng kit msp exp430fg4618 để thực hiện các bài lab cơ bản

24 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐẠI HỌC ĐÀ NẴNG KHOA ĐIỆN TỬ - VIỄN THÔNG -   - BÁO CÁO THÍ NGHIỆM KỸ THUẬT VI XỬ LÝ Giáo viên hướng dẫn: Trần Văn Líc Sinh viên thực hiện: Nguyễn Thanh Thanh Lớp SH: 20KTMT1 Lớp HP: 20.44 MSSV: 106200245 Đà Nẵng 2023 Mục tiêu: - Sử dụng KIT MSP-EXP430FG4618 để thực lab - Sử dụng Debug MSP-FET430UIF để nạp chương trình cho chip MSP430 KIT MSP-EXP430FG4618 - Sử dụng phần mềm IAR để lập trình chương trình đơn giản - Thực liên quan đến xuất/nhập, ngắt, timer KIT MSP-EXP430FG4618: 1.1 Giới thiệu chung: KIT MSP-EXP430FG4618 hãng TI bo mạch tích hợp chip MSP430FG4618 MSP430F2013 nên cung cấp ngoại vi phổ biến họ MSP430 Đặc biệt, chip 4618 2013 giao tiếp với (xem hình 2) giao tiếp với thiết bị bên Có thể sử dụng gói cơng cụ sau để lập trình debug: IAR Embeeded Workbench, TI Code Composer Essential (CCE) TI code Composer Studio (CCS) Thiết bị để lập trình debug cho chip TI TI USB Flash Emulation Tool (FET)  Hình 1. KIT MSP-EXP430FG4618 TI tài trợ cho môn Kỹ thuật Máy tính 1.2 Sơ đồ khối phân bổ linh kiện KIT MSP-EXP430FG4618:  Hình 2. Sơ đồ khối phân bổ linh kiện KIT MSP-EXP430FG4618 1.2.1 JTAG: Hai header JTAG1 JTAG2 để lập trình debug MSP430 riêng biệt: JTAG1 cho MSP430FG4618 JTAG2 cho MSP430F2013 JTAG1 cho MSP430FG4618 dùng kiểu kết nối JTAG chuẩn dây, JTAG cho MSP430F2013 dùng kiểu giao tiếp JTAG Spy-Bi-Wire (2 dây) Điều cho phép chân port sử dụng trình debug 1.2.2 Microphone: Microphone (MIC) kết nối với MSP430FG4618 qua chân hình Microphone kích hoạt hay khơng qua chân MSP430FG4618    Hình 3. Sơ đồ nguyên lý Microphone KIT MSP430FG4618 1.2.3 Buzzer: Buzzer kết nối với port I/O P3.5 MSP430FG4618 Buzzer hồn tồn bị cách ly với jumper JP1 Lưu ý: q trình thí nghiệm, sau thử nghiệm thành công, sinh viên nên tháo JP1 để tránh làm ảnh hưởng người xung quanh 1.2.4 LCD: LCD kit loại SoftBaugh SBLCDA4, có chế độ: tĩnh, 2-mux, 3mux 4-mux LCD hỗ trợ giao tiếp với MSP430FG4618 qua LCD driver có sẵn 1.2.5 Nút nhấn S1 S2: Hai nút nhấn S1 S2 nối với cổng xuất/nhập số P1 có chức ngắt MSP430FG4618 1.2.6 Các LED đơn: KIT MSP430FG4618 có LED: LED1, LED2, LED4 kết nối với chip MSP430FG4618, LED3 kết nối với chip MSP430F2013 LED3 LED4 ngắt khỏi kết nối Jumper để tiết kiệm lượng cho kit (LED3 dùng jumper JP2, LED4 dùng JP3)  Bảng 1. Kết nối LED LED Kết nối với chip LED1 MSP430FG4618 LED2 MSP430FG4618 LED3 MSP430F2013 LED4 MSP430FG4618 Port P2.2 P2.1 P1.0 P5.1 Ghi Jumper   JP2 JP3    Hình 5. Sơ đồ nguyên lý kết nối LED1, LED2 & LED4 với MSP430FG4618  Hình Sơ đồ nguyên lý kết nối LED3 với MSP430FG4618 1.2.7 Giao tiếp RS232: Chip MSP430FG4618 hỗ trợ chuẩn giao tiếp RS-232 chân thơng qua ngoại vi USC chip (được cấu hình chế độ UART) 1.2.8  Hình 7. Sơ đồ nguyên lý giao tiếp cổng RS232 với MSP430FG4618 Jumper:  Hình Sơ đồ bố trí jumper KIT MSP430FG4618  Bảng Liệt kê chức jumper KIT MSP430FG4618 kết nối Header Chức dung Jumper  Khi không dùng jumper  kết nối kết nối JTAG1 Bộ FET để lập FG4618 khơng trình-debug FG4618 sử dụng JTAG2 Bộ FET để lập F2013 khơng sử trình-debug F2013 dụng PWR1 Cung cấp nguồn cho FG4618 không FG4618 Ngồi ra, dùng để cung cấp nguồn đo dịng PWR2 Cung cấp nguồn cho F2013 khơng cung F2013 Ngồi ra, dùng để cấp nguồn đo dòng BATT Cung cấp nguồn cho kit 2Pin không cung cấp  pin AAA Ngồi ra, dung để nguồn cho đo dịng tổng cộng kit chip MSP430 JP1 Để sử dụng buzzer (nối với Không dùng buzzer Yêu cầu X X Yêu cầu cần gắn  jumper để sử dụng FG4618 Yêu cầu cần gắn  jumper để sử dụng F2013 Yêu cầu cần dùng pin Tùy chọn chân FG4618-P3.5) JP2 Cho phép LED3 hoạt động (LED3 nối với chân F2013-P1.0) JP3 Cho phép LED4 hoạt động (LED4 nối với chân FG4618-P5.1) JP4 Suy hao mức điện áp audio (69%) H1(1-2, Cấu hình cho I2C 3-4) 1-2: SDA-UCBOSDA 3-4: SCL-UCBOSCL H1(1-2, Cấu hình cho SPI 3-4, 56,7-1-2: SDI – UCB0SIMO 8) 3-4: SDO – UCB0SOMI 5-6: P1.4 – P3.0 (CS) 7-8: SCLK – UCB0CLK Vcc VCC_1: chân phía Dùng cho FG4618/JTAG1 VCC_2: chân phía Dùng cho F2013/JTAG2 LCL: cung cấp Vcc đến FET FET: nguồn từ FET (jumper BATT không thiết lập) Không dùng LED3 Tùy chọn/ yêu cầu dùng LED3 Không dùng LED4 Tùy chọn/ yêu cầu dùng LED4 98% suy hao ngõ ra Tùy chọn audio DAC12 Không giao tiếp qua I2C Yêu cầu cho giao tiếp bên  processor Không giao tiếp qua SPI Yêu cầu cho giao tiếp bên  processor  Nguồn từ JTAG Yêu cầu sử dụng không cần pin 1.3 Sơ đồ nguyên lý KIT MSP-EXP430FG4618:    Hình Sơ đồ nguyên lý tồn KIT MSP430FG4618 ĐẶC TÍNH VÀ CÁCH CÀI ĐẶT BỘ DEBUG MSP-FET430UIF: 2.1 Giới thiệu công cụ FET: FET (Flash Emulation Tool) cho phép lập trình - debug họ vi xử lý MSP430 qua chuẩn kết nối JTAG đầy đủ(4 dây) JTAG tiết kiệm chân (2 dây, Spy Bi-Wire) Do đó, FET dùng để phát triển ứng dụng họ MCU qua chế giao tiếp FET qua USB cổng song song, tương ứng với loại MSPFET430UIF (Hình 10) MSP- FET430PIF Hiện tại, Công ty TI tài trợ loại MSP – FET430UIF cho mơn Kỹ thuật Máy tính nên tất thí nghiệm KIT MSP430FG4618 sử dụng loại  Hình 10 Bộ Debug MSP-430UIF   Bảng So sánh vài tính loại MSP-FET430UIF MSPFET430PIF Đặc tính Hỗ trợ tất họ MSP430 dựa Flash (F1xx, F2xx, F4xx, F5xx) Cho phép cấu hình bảo mật JTAG để bảo vệ code Cho phép tạo nguồn cấp chỉnh 1.8V-3.6V 100mA Cố định tạo nguồn cấp 2.8V Debug dùng JTAG chuẩn dây Debug dùng JTAG chuẩn dây (Spy-Bi-Wire) MSPFET430UIF x MSPFET430PIF x x x KHÔNG KHÔNG KHÔNG x x x x KHÔNG Hỗ trợ CCE Hỗ trợ IAR x x x x THIẾT LẬP CƠ BẢN CHO THÍ NGHIỆM: Sau bước mà người làm thí nghiệm phải nắm kỹ trước  bắt tay vào sử dụng công cụ để thực thí nghiệm Trong thí nghiệm, trình bày bước thiết lập thêm tùy thuộc Bước 1: Thiết lập MSP-EXP430FG4618  - Kiểm tra/sử dụng  jumper PWR1 để cung cấp nguồn cho FG4618 (jumper  PWR1 nằm khoảng kit, phía bên phải chip M430G4618, đặt kit vị trí hình 1) - Kiểm tra/ không sử dụng jumper BATT (jumper BATT phía dưới, bên phải kit) Khi thí nghiệm, thiết lập để không sử dụng pin cung cấp nguồn cho chip với mục đích tiết kiệm pin - Kiểm tra/ sử dụng jumper Vcc (jumper Vcc phía dưới, bên phải kit) Để thiết lập sử dụng nguồn từ FET (khi không dùng pin), thiết lập jumper vị trí FET cho hàng (nghĩa jumper kết nối, jumper kết nối header tận bên  phải: header phía dưới: dùng cho FG4618/JTAG1, chân phía trên: dùng cho F2013/JTAG2) Bước 2: Kết nối FET430UIF  - Kết nối dây USB máy tính FET - Kết nối dây 14 pin JTAG FET kit MSP-EXP430FG4618 Thay đổi Jump mạch: Trên mạch nạp, led xanh (Power) báo hiệu nguồn, led đỏ (Mode) báo hiệu mạch nạp Bước 3: Sử dụng IAR để lập trình-debug Bước 4: Thực thí nghiệm CẤU TRÚC MỘT CHƯƠNG TRÌNH C THƠNG THƯỜNG CHO MSP430: Chú ý: Trong hàm main ta thường thấy dòng lệnh: WDTCTL = WDTPW + WDTHOLD; Stop watchdog timer để khỏi reset chip Nếu khơng có lệnh (và khơng có tùy chọn khác WDTCTL) mạch khơng hoạt động  o o Trong C cho MSP430, có số định nghĩa trước (ở file header), ta hay dùng số này: BIT0 = 0000 0001 BIT1 = 0000 0010 BIT2 = 0000 0100 … BIT7 = 1000 0000 o Một chân MSP430 thường có nhiều chức năng, ta muốn sử dụng chức định nghĩa cho Ví dụ:  P1DIR = 0xFF; // toàn port1 Output P1DIR = 0x00; //toàn port1 Input  Như muốn số chân port1 Output số chân port1 Input làm nào? Khơng giống số VĐK khác, MSP430 không cho phép ta tác động trực tiếp đến chân riêng lẻ, tác động lên port (8 chân) Như muốn tác động lên chân riêng lẻ ta dùng phép tốn OR, AND XOR Ví dụ: P1DIR |= BIT1; //chân P1.1 chân Output, chân khác ko bị ảnh hưởng lệnh P1DIR &= ~BIT1; // chân P1.1 chân Input (nếu ta ko định nghĩa mặc định Input) P2DIR |= BIT0 + BIT1 + BIT3; //chân P2.0, P2.1, P2.3 Output Lệnh viết lại: P2DIR |= 0x0B; // BIT0 + BIT1 + BIT3 = 11d=0Bh P2DIR &= ~(BIT4+BIT5); //P2DIR &=~0x30; //chân P2.4, P2.5 Input o Xuất port theo bit riêng lẻ  Như việc định nghĩa chân, MSP430 không cho ta tác động trực tiếp đến chân nào, muốn xuất bit hay nhiều bit ta sử dụng cách dùng với định nghĩa chân Ví dụ muốn cho P1.1=1, P1.3=1, P2.1=0 P1OUT |= BIT1+BIT3 ; //P1.1=1, P1.3=1 P2OUT &=~ BIT1 ; //P2.1=0 Hoặc đảo bit chân lện XOR ^ P1OUT ^= BIT4 ; //chân P1.4 đảo trạng thái o Kiểm tra trạng thái chân  Ngồi ngắt ta kiểm tra trạng thái chân mức thấp (0V) hay mức cao (1.8V đến 3.6V) Ví dụ kiểm tra chân P1.2 if( (P1IN&BIT2)==0 ) //nếu chân P1  //do anything else  //do anything  // viết if( P1IN&BIT2==0 ), thiếu ngoặc sai   o CÁC BÀI THÍ NGHIỆM: Bài 1: GPIO Các ghi liên quan đến GPIO: 1.1 Direction Register PxDIR (P1DIR, P2DIR): Đây ghi bit điều khiển chiều chân port P1DIR điều khiển PORT1, P2DIR  điều khiển PORT2  Bit = 1: Chân PORT tương ứng cấu hình thành output  Bit = 0: Chân PORT tương ứng cấu hình thành input 1.2 Input Register (PxIN): Đây ghi bit chứa giá trị đọc từ chân PORT  Bit = 1: Chân PORT tương ứng mức cao  Bit = 0: Chân PORT tương ứng mức thấp 1.3 Output Register (PxOUT): Đây ghi điều khiển ngõ PORT  Bit = 1: Xuất mức cao chân PORT tương ứng  Bit = 0: Xuất mức thấp chân PORT tương ứng 1.4 Function Select Register: Đây ghi chọn chức cho chân PORT Mỗi chân PORT cấu hình chọn chức Input/Output chức đặc biệt khác  Bit = 1: Chọn chức đặc biệt  Bit = 0: Chọn chức GPIO Các lưu ý viết chương trình cho lab này: 2.1 Watchdog Timer: Trong lab này, không cần sử dụng Watchdog timer Để tắt Watchdog timer, ghi giá trị 5A vào bit cao ghi WDTCTL set thứ ghi WDTCTL WDTCTL = 0x5A00 | 0x0080 hoặc: (WDTCTL = WDTPW | WDTHOLH) 2.2 Delay: Bởi chương trình chưa định nghĩa clock nên CPU sử dụng thạch anh 32.768 kHz Để  có thời gian delay khoảng 1s, vịng delay đếm xuống từ 30.000SV dùng câu lệnh để tạo delay:  for(int i=30000;i>0;i++); Bài 1.1 Yêu cầu: Sinh viên viết chương trình cho LED1 LED2 sáng tắt luân phiên Thời gian lần sáng tắt khoảng 1s Câu hỏi 1: Các LED kết nối với MCU hình Điền vào chỗ trống để trả lời câu hỏi + LED1 nối vào chân MCU? (Cổng (Port) nào?) Trả lời: LED1 nối vào chân P2.2 MCU + LED2 nối vào chân MCU? (Cổng (Port) nào?) Trả lời: LED2 nối vào chân P2.1 MCU + Để điều khiển LED, chân port phải input hay output? Trả lời: Để điều khiển LED, chân port phải output + Để LED sáng, phải xuất giá trị chân port? Trả lời: Để LED sáng, phải xuất giá trị Bit = Câu hỏi 2: Hồn chỉnh chương trình cách điền vào chỗ trống: #include void main (void) { volatile unsigned int i; WDTCTL = WDTPW |WDTHOLD; //Stop Watchdog Timer P2DIR |=BIT0+BIT 6; //Configure P2.1 and P2.2 as Output P2OUT &= BIT0+BIT6; // Turn off LED1, LED2 P2OUT |= BIT3; // Turn on LED 1, turn off while(1) LED { //Infinite loop i= 30000; //Delay (i ); while (i !=0); //Toggle Port P2.1 and P2.2using an exclusive-OR P2OUT ^= BIT +BIT ; } } Bài 1.2 Yêu cầu: Sinh viên viết chương trình để đảo trạng thái LED1 SW1 nhấn.  Câu hỏi 1: Các SW(switch) kết nối với MCU hình Điền vào chỗ trống để trả lời câu hỏi + SW1 nối vào chân MCU? (Cổng (Port) nào?) Trả lời: SW1 nối vào chân P1.8 MCU + SW2 nối vào chân MCU? (Cổng (Port) nào?) Trả lời: SW2 nối vào chân P1.1 MCU + Để đọc trạng thái switch, chân port phải input hay output? Trả lời: Để đọc trạng thái switch, chân port phải input Câu hỏi 2: Hồn chỉnh chương trình cách điền vào chỗ trống: #include void main (void) { volatile unsigned int i; WDTCTL = WDTPW |WDTHOLD; //Stop Watchdog Timer P2DIR |= BIT2; //Configure P2.2 as Output (LED1) P1DIR &= ~ BIT0 ; //Configure P1.0 as Input (S1) while (1) { while ((P1IN & 0x01)); //Wait for the press of the  button P2OUT ^=BIT2; //Toggle Port P2.2 for(i=30000;i

Ngày đăng: 12/12/2023, 15:10

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w