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 10 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

Thông tin cơ bản

Tiêu đề Báo Cáo Thí 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
Tác giả Nguyễn Thanh Thanh
Người hướng dẫn Trần Văn Líc
Trường học Trường Đại Học Bách Khoa - Đại Học Đà Nẵng
Chuyên ngành Khoa Điện Tử - Viễn Thông
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 24
Dung lượng 2,62 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Điều này cho phépcác chân ở các port được sử dụng trong quá trình debug... Do đó, FET được dùng để phát triển các ứng dụng trên họ MCU này qua 2 cơ chế giaotiếp của FET là qua USB cổng s

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐẠI HỌC ĐÀ NẴNG

KHOA ĐIỆN TỬ - VIỄN THÔNG

Đà Nẵng 2023

Trang 3

Mục tiêu:

- Sử dụng KIT MSP-EXP430FG4618 để thực hiện các bài lab cơ bản

- Sử dụng bộ Debug MSP-FET430UIF để nạp chương trình cho chip MSP430trên KIT MSP-EXP430FG4618

- Sử dụng phần mềm IAR để lập trình một chương trình đơn giản

- Thực hiện các bài liên quan đến xuất/nhập, ngắt, timer

1 KIT MSP-EXP430FG4618:

1.1 Giới thiệu chung:

KIT MSP-EXP430FG4618 của hãng TI là bo mạch tích hợp 2 chip

MSP430FG4618 và MSP430F2013 nên cung cấp các ngoại vi phổ biến trong họMSP430 Đặc biệt, 2 chip 4618 và 2013 có thể giao tiếp với nhau (xem hình 2) hoặcgiao tiếp với các thiết bị bên ngoài

Có thể sử dụng một trong 2 gói công cụ sau để lập trình và debug: IAR EmbeededWorkbench, TI Code Composer Essential (CCE) và TI code Composer Studio (CCS).Thiết bị để lập trình và debug cho chip TI là TI USB Flash Emulation Tool (FET)

 Hình 1. KIT MSP-EXP430FG4618 do TI tài trợ cho bộ môn Kỹ thuật Máy tính

1.2 Sơ đồ khối phân bổ linh kiện trên KIT MSP-EXP430FG4618:

Trang 4

 Hình 2. Sơ đồ khối phân bổ linh kiện trên KIT MSP-EXP430FG4618

1.2.1 JTAG:

Hai header JTAG1 và JTAG2 để lập trình và debug mỗi MSP430 riêng biệt:JTAG1 cho MSP430FG4618 và JTAG2 cho MSP430F2013 JTAG1 choMSP430FG4618 dùng kiểu kết nối JTAG chuẩn 4 dây, còn JTAG choMSP430F2013 dùng kiểu giao tiếp JTAG Spy-Bi-Wire (2 dây) Điều này cho phépcác chân ở các port được sử dụng trong quá trình debug

Trang 5

 Hình 5. Sơ đồ nguyên lý kết nối LED1, LED2 & LED4 với MSP430FG4618

 Hình 6 Sơ đồ nguyên lý kết nối LED3 với MSP430FG4618

Trang 6

 Hình 8 Sơ đồ bố trí jumper ở trên KIT MSP430FG4618

 Bảng 2 Liệt kê chức năng của jumper trên KIT MSP430FG4618 khi được kếtnối

Header Chức năng khi dung Jumper 

Yêu cầu cần gắn jumper này để sửdụng FG4618PWR2 Cung cấp nguồn cho

 pin AAA Ngoài ra, dung để

đo dòng tổng cộng của kit

Pin không cung cấpnguồn cho cả 2chip MSP430

Yêu cầu khi cầndùng pinJP1 Để sử dụng buzzer (nối với Không dùng buzzer Tùy chọn

Trang 7

chân FG4618-P3.5)

JP2 Cho phép LED3 hoạt

động (LED3 nối với

chân F2013-P1.0)

Không dùng LED3 Tùy chọn/ yêu cầu

khi dùng LED3

JP3 Cho phép LED4 hoạt

động (LED4 nối với

Không giao tiếp qua I2C Yêu cầu cho giao

tiếp bên trong processorH1(1-2,

Không giao tiếp qua SPI Yêu cầu cho giao

tiếp bên trong processor

Vcc VCC_1: 3 chân phía dưới

Dùng cho FG4618/JTAG1

VCC_2: 3 chân phía trên

Dùng cho F2013/JTAG2

LCL: cung cấp Vcc đến FET

FET: nguồn từ FET

(jumper BATT không

được thiết lập)

 Nguồn từ JTAG Yêu cầu khi sử

dụng không cần pin

Trang 8

1.3 Sơ đồ nguyên lý của KIT MSP-EXP430FG4618:

 

Trang 9

 Hình 9 Sơ đồ nguyên lý toàn KIT MSP430FG4618

2 ĐẶ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 quachuẩn kết nối JTAG đầy đủ(4 dây) và JTAG tiết kiệm chân (2 dây, Spy Bi-Wire) Do

đó, FET được dùng để phát triển các ứng dụng trên họ MCU này qua 2 cơ chế giaotiếp của FET là qua USB cổng song song, tương ứng với các loại MSP-FET430UIF (Hình 10) và MSP- FET430PIF Hiện tại, Công ty TI chỉ tài trợ loạiMSP – FET430UIF cho bộ môn Kỹ thuật Máy tính nên tất cả các bài thí nghiệm trênKIT MSP430FG4618 sẽ sử dụng loại này

 Hình 10 Bộ Debug MSP-430UIF  Bảng 3 So sánh một vài tính năng giữa 2 loại MSP-FET430UIF và MSP-

FET430PIF

MSP-FET430UIF

FET430PIF

MSP-Hỗ trợ tất cả họ MSP430 dựa trên Flash (F1xx,

Debug dùng JTAG chuẩn 2 dây (Spy-Bi-Wire) x KHÔNG

Trang 10

Hỗ trợ bởi CCE x x

3 THIẾT LẬP CƠ BẢN CHO THÍ NGHIỆM:

Sau đây là các bước cơ bản nhất mà người làm thí nghiệm phải nắm kỹ trước khi bắt tay vào sử dụng mọi công cụ để thực hiện các bài thí nghiệm Trong từng bài thínghiệm, sẽ trình bày các bước thiết lập thêm tùy thuộc từng bài

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 giữa kit, phía bên phải chip M430G4618, nếu đặt kit như vị tríhình 1)

- Kiểm tra/ không sử dụng jumper BATT (jumper BATT ở phía dưới, bên phảikit) Khi thí nghiệm, thiết lập như vậy để không sử dụng pin cung cấp nguồn cho 2chip 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ếtlập sử dụng nguồn từ FET (khi không dùng pin), thiết lập jumper ở vị trí FET cho cả

2 hàng 1 và 2 (nghĩa là 2 jumper kết nối, mỗi jumper kết nối 2 header tận cùng bên phải: 2 header phía dưới: dùng cho FG4618/JTAG1, 2 chân phía trên: dùng choF2013/JTAG2)

Bước 2: Kết nối FET430UIF 

- Kết nối dây USB giữa máy tính và FET

- Kết nối dây 14 pin JTAG giữa FET và kit MSP-EXP430FG4618

Trang 11

Thay đổi các Jump trên mạch:

Trên mạch nạp,led xanh (Power) báo hiệu nguồn,led đỏ (Mode) báo hiệu khimạch được nạp

Bước 3: Sử dụng IAR để lập trình-debug

Bước 4: Thực hiện các bài thí nghiệm

4 CẤU TRÚC MỘT CHƯƠNG TRÌNH C THÔNG THƯỜNG CHOMSP430:

Trang 12

o Trong C cho MSP430, thì có các hằng số được định nghĩa trước (ở fileheader), ta rất hay dùng các hằng số này: BIT0 = 0000 0001

P1DIR = 0xFF; // toàn bộ port1 là Output

P1DIR = 0x00; //toàn bộ port1 là Input

 Như vậy nếu muốn một số chân của port1 là Output và một số chân của port1 làInput thì làm thế nào? Không giống một số VĐK khác, MSP430 không cho phép tatác động trực tiếp đến 1 chân nào riêng lẻ, chỉ có thể tác động lên port (8 chân) Nhưvậy muốn tác động lên chân riêng lẻ nào thì ta dùng phép toán OR, AND và XOR

P2DIR |= BIT0 + BIT1 + BIT3; //chân P2.0, P2.1, P2.3 sẽ là Output

Lệnh trên cũng có thể viết lại: P2DIR |= 0x0B; // BIT0 + BIT1 + BIT3 = 11d=0Bh

P2DIR &= ~(BIT4+BIT5); //P2DIR &=~0x30;//chân P2.4, P2.5 là Input

o Xuất ra port theo từng bit riêng lẻ

 Như việc định nghĩa các chân, MSP430 cũng không cho ta tác động trực tiếp đếntừng chân nào, muốn xuất ra một bit hay nhiều bit bất kỳ ta sử dụng cách như đã dùngvớ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 có thể đảo một bit ở chân bất kỳ bằng lện XOR ^

P1OUT ^= BIT4 ;//chân P1.4 đảo trạng tháio Kiểm tra trạng thái một chân. Ngoài ngắt ra ta có thể kiểm tra trạng thái một chân nào đó đang ở 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 bằng 0

 //do anything else

 //do anything

 // nếu viết if( P1IN&BIT2==0 ), thiếu 1 ngoặc là sai  

Trang 13

5 CÁC BÀI THÍ NGHIỆM:

Bài 1: GPIO

1 Các thanh ghi liên quan đến GPIO:

1.1 Direction Register PxDIR (P1DIR, P2DIR):

Đây là các thanh ghi 8 bit điều khiển chiều của 8 chân port P1DIR điều khiểnPORT1, P2DIR  điều khiển PORT2

 Bit = 1: Chân PORT tương ứng được cấu hình thành output

 Bit = 0: Chân PORT tương ứng được cấu hình thành input

1.2 Input Register (PxIN):

Đây là các thanh ghi 8 bit chứa giá trị đọc được từ các 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 là các thanh ghi điều khiển ngõ ra của các PORT

 Bit = 1: Xuất mức cao ra chân PORT tương ứng

 Bit = 0: Xuất mức thấp ra chân PORT tương ứng

1.4 Function Select Register:

Đây là các thanh ghi chọn chức năng cho chân PORT Mỗi chân PORT có thểcấu hình chọn chức năng Input/Output hay là chức năng đặc biệt khác

 Bit = 1: Chọn chức năng đặc biệt

 Bit = 0: Chọn chức năng GPIO

2 Các lưu ý khi viết chương trình cho lab này:

2.1 Watchdog Timer:

Trong lab này, chúng ta không cần sử dụng Watchdog timer Để tắt Watchdogtimer, ghi giá trị 5A vào 8 bit cao của thanh ghi WDTCTL và set thứ 7 của thanhghi WDTCTL WDTCTL = 0x5A00 | 0x0080 hoặc:

(WDTCTL = WDTPW | WDTHOLH )2.2 Delay:

Bởi vì trong chương trình chưa định nghĩa clock nên CPU sẽ sử dụng thạch anh32.768 kHz Để  có thời gian delay khoảng 1s, vòng delay sẽ đếm xuống từ30.000SV có thể dùng câu lệnh dưới đây để 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 và LED2 sáng tắt luân phiên.Thời gian giữa 2 lần sáng tắt là khoảng 1s

Trang 14

Câu hỏi 1: Các LED được kết nối với MCU như hình trên Điền vào chỗ trống

để trả lời các câu hỏi dưới đây

+ LED1 nối vào chân nào của MCU? (Cổng (Port) nào?)

Trả lời: LED1 nối vào chân P2.2 của MCU

+ LED2 nối vào chân nào của MCU? (Cổng (Port) nào?)

Trả lời: LED2 nối vào chân P2.1 của MCU

+ Để điều khiển LED, các chân port phải là input hay output?

Trả lời: Để điều khiển LED, các chân port phải là output

+ Để LED sáng, phải xuất giá trị gì ra chân port?

Trả lời: Để LED sáng, phải xuất giá trị Bit = 1

Câu hỏi 2: Hoàn chỉnh chương trình bằng cách điền vào các chỗ trống:

#include <msp430xG46x.h>

void main (void)

{

volatile unsigned int i;

WDTCTL = WDTPW |WDTHOLD; //Stop Watchdog TimerP2DIR |=BIT0 +BIT 6 ; //Configure P2.1 and P2.2

as OutputP2OUT &= BIT0 +BIT 6 ; // Turn off LED1, LED2P2OUT |= BIT3;

}

}

Trang 15

+ SW1 nối vào chân nào của MCU? (Cổng (Port) nào?)

Trả lời: SW1 nối vào chân P1.8 của MCU

+ SW2 nối vào chân nào của MCU? (Cổng (Port) nào?)

Trả lời: SW2 nối vào chân P1.1 của MCU

+ Để đọc trạng thái switch, các chân port phải là input hay output?

Trả lời: Để đọc trạng thái switch, các chân port phải là input

Câu hỏi 2: Hoàn chỉnh chương trình bằng cách điền vào các chỗ trống:

#include <msp430xG46x.h>

void main (void)

{

volatile unsigned int i;

WDTCTL = WDTPW |WDTHOLD; //Stop Watchdog Timer

(LED1)P1DIR &= ~ BIT0 ;

for(i=30000;i<0;i ); //Delay, button debouncewhile ((P1IN & 0x01)!=BIT0); //Wait for the release of the

 buttonfor(i=30000;i<0;i ); //Delay, button debounce

Trang 16

Bài 2: GPIO & INTERRUPT

MSP430 được thiết k để làm việc với các ứng dụng công suất thấp Vì vậyCPU thường ở trạng thái “off” trong phần lớn thời gian Để đưa CPU vào trạngthái “off”, các bit SCG1, SCG0 và CPUOFF trong thanh ghi SR được set

Một ngắt xảy ra sẽ đánh thức CPU Khi đó thanh ghi SR được lưu vào stack vàCPU thực thi ISR

Khi thoát khỏi ISR, thanh ghi SR được lấy ra từ stack và làm cho CPU tắt trởlại

Đưa CPU vào trạng thái công suất thấp và cho phép ngắt:  

Bit GIE trong thanh ghi SR khi được set sẽ cho phép ngắt

Ta đưa CPU vào trạng thái công suất thấp, cho phép ngắt bằng lệnh:

 _BIS_SR (LPM3_bits + GIE);

Trong đó:

LPM3_bits = (SCG1+SCG0+CPUOFF)

Định nghĩa chương trình phục vụ ngắt (ISR): 

Ta định nghĩa 1 ISR tại vector ngắt ISR_VECTOR bằng cấu trúc sau:

#pragma vector=ISR_VECTOR interrupt

void myISR (void) {

………

}

1.5 Các thanh ghi cấu hình ngắt cho các chân PORT:

Mỗi chân PORT của MSP430 đều có thể dùng để tạo ngắt Các ngắt này đượccấu hình thông qua các thanh ghi PxIFG, PxIE, PxIES

1.5.1 Interrupt enable Register (PxIE):

Mỗi bit trong thanh ghi này dùng để cho phép/không cho phép ngắt trên chânPORT tương ứng

 Bit = 1: Cho phép ngắt

 Bit = 0: Cấm ngắt

1.5.2 Interrupt Edge Select Register (PxIES):

Dùng để chọn cạnh của tín hiệu ngắt:

 Bit = 1: Ngắt tại cạnh xuống của tín hiệu

 Bit = 0: Ngắt tại cạnh trên của tín hiệu

1.5.3 Interrupt Flag Register (PxIFG):

Thanh ghi này chứa các cờ ngắt Các cờ này được tự đọng bật bởi phần cứng, phải được xóa bằng phần mềm Các cờ này có thể được bật bằng phần mềm đểcho phép ngắt

 Bit = 1: Một ngắt đang chờ xử lý

 Bit = 0: Không có ngắt nào đang chờ

Trang 17

+ SW1 nối vào chân Port gì của CPU?

Trả lời: SW1 nối vào chân Port 1.0 của CPU

+ Khi Switch được nhấn, sẽ có chuyển trạng thái như thế nào trên chân PORT?

+ Để cho phép ngắt trên chân P1.0, ta phải ghi 1 vào bit 0 của thanh ghiPxIE?

X

Trang 18

+ Để chọn cạnh xuống cho ngắt trên chân P1.0, ta phải ghi 1 vào bit 0 củathanh ghi PxIES?

Câu hỏi 2: Hoàn chỉnh chương trình bằng cách điền vào các chỗ trống:

#include <msp430xG46x.h>

#pragma vector= PORT1 _VECTOR

  interrupt void Port_1 (void)

0xFFE8 volatile unsigned int i;

P2OUT ^= BIT2; //Toggle Port P2.2

for(i=30000;i<0;i ); //Delay, button debounce

while ((P1IN&BIT0)!=BIT0); //Wait for the release of the button

for(i=30000;i<0;i ); //Delay, button debounce

P1IFG &= ~0x01; //Clean P1.0 Interrupt Flag (bit 0 ofP1IFG register)

}

void main (void)

{

WDTCTL = WDTPW |WDTHOLD ;//Stop Watchdog Timer

P2DIR |=BIT2; //Configure P2.2 as Output (LED1)P1DIR &= ~BIT0; //Configure P1.0 as Input (S1)

P1IE |=BIT0; //Interrupt Enable in P1.0

P1IES |=BIT0; //P1.0 Interrupt flag high-to-low

Trang 19

điều khiển LED1 Sinh viên có thể sử dụng một số gợi ý sau đây để viết chươngtrình.

Để phát hiện nút nhấn có được nhấn hay không, sử dụng cấu trúc lệnh:

if ( !P1IN & 0x01)Sau đó khai báo một biến điều khiển chương trình phát hiện LED nhấp nháy haykhông, khi nút được nhấn:

-Định nghĩa biến chỉ thị khi LED đang nháy:

Unsigned char blink_status = 1;

-Thiết lập chương trình hoạt động phụ thuộc vào trạng thái của biến

// Delay, button debounce

while (!(P1IN &

if (blink_status ==1){ // If led is blinking, stop it

P2OUT&= ~ 0x04; // Turn Led off

Trang 20

P1OUT &= ~BIT0;

 blink_status = 0;

}else blink_status = 1;

}}

}

Bài 2.3

Yêu cầu: Sinh viên viết chương trình cho phép/không cho phép LED1 nhấpnháy khi Switch 1 được nhấn Trong chương trình sử dụng ngắt trên chân port giaotiếp switch

Hướng dẫn: Sinh viên vận dụng kiến thức và các hướng dẫn đã có trong bài 2.1

  WDTCTL = WDTPW + WDTHOLD; // Disable Watchdog Timer 

  P1DIR |= BIT0; // Set P1.0 as output (to control LED1)

  P1OUT &= ~BIT0; // Turn off LED1 initially

  P1DIR &= ~BIT3; // Set P1.3 as input (to read the status of SW1)

Trang 21

  P1REN |= BIT3; // Enable internal resistor for P1.3

  P1OUT |= BIT3; // Set P1.3 as pull-up resistor 

  P1IE |= BIT3; // Enable interrupt for P1.3

  P1IES |= BIT3; // Set interrupt on falling edge

  P1IFG &= ~BIT3; // Clear interrupt flag

Hướng dẫn: Sinh viên vận dụng kiến thức và các hướng dẫn đã có trong bài 2.1

và 2.2 để viết chương trình

Viết chương trình vào đây:

#include  <msp430.h>

#define  SW1 BIT3

#define  LED1 BIT0

#define  LED2 BIT6

volatile   char  blink_status = 1;

Trang 22

void   main ( void )

{

Hướng dẫn: Sinh viên vận dụng kiến thức và các hướng dẫn đã có trong bài 2.1

và 2.2 để viết chương trình

Viết chương trình vào đây:

#include  <msp430.h>

volatile   char  blink_status = 1;

void   main ( void )

Trang 23

  P1REN |= BIT3; // Enable internal resistor for P1.3

void delayMS(int msecs);

unsigned int OFCount;

Trang 24

unsigned char ledState = 0;

#pragma vector = TIMER0_A0_VECTOR

interrupt void Timer_A_CCR0_ISR(void)

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

HÌNH ẢNH LIÊN QUAN

Hình 2. Sơ đồ khối phân bổ linh kiện trên KIT MSP-EXP430FG4618 - 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
Hình 2. Sơ đồ khối phân bổ linh kiện trên KIT MSP-EXP430FG4618 (Trang 4)
Hình 5. Sơ đồ nguyên lý kết nối LED1, LED2 &amp; LED4 với MSP430FG4618 - 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
Hình 5. Sơ đồ nguyên lý kết nối LED1, LED2 &amp; LED4 với MSP430FG4618 (Trang 5)
Hình 6. Sơ đồ nguyên lý kết nối LED3 với MSP430FG4618 - 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
Hình 6. Sơ đồ nguyên lý kết nối LED3 với MSP430FG4618 (Trang 5)
Hình 8. Sơ đồ bố trí jumper ở trên KIT MSP430FG4618 - 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
Hình 8. Sơ đồ bố trí jumper ở trên KIT MSP430FG4618 (Trang 6)
1.3. Sơ đồ nguyên lý của KIT MSP-EXP430FG4618: - 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
1.3. Sơ đồ nguyên lý của KIT MSP-EXP430FG4618: (Trang 8)
Hình 9. Sơ đồ nguyên lý toàn KIT MSP430FG4618 - 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
Hình 9. Sơ đồ nguyên lý toàn KIT MSP430FG4618 (Trang 9)

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w