1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

giáo trình thí nghiệm vi xử lý

40 285 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

Định dạng
Số trang 40
Dung lượng 5,8 MB

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

Nội dung

So sánh một vài tình năng giữa 2 loại MSP-FET430UIF và MSP- FET430PIF 2.2.Cài đặt driver của bộ Debug MSP-FET430UIF lên PC Hiện tại, phòng thí nghiệm Mô phỏng và Vi xử lý được trang bị

Trang 1

3 Tiêu chí đánh giá.

1 Mục tiêu chung.

Rèn luyện cho sinh viên các kỹ năng lập trình bằng ngôn ngữ Assembly và các ngôn ngữ bậc cao, giới thiệu tổng quan về thiết kế một hệ thống vi xử lý và việc sử dụng các công cụ hỗ trợ thiết kế hệ thống vi xử lý

2 Mục tiêu cụ thể.

- Kiến thức: Tổ chức hệ thống vi xử lý, Kiến trúc tập lệnh và Tổ chức bộ nhớ, Ngôn ngữ lập

trình, Thiết kế thuật toán

- Kỹ năng: Lập trình cho bộ xử lý bằng ngôn ngữ các ngôn ngữ Assembly/ C/ C++/ Java, thao tác trên các Kit phát triển hệ thống, sử dụng các công cụ phần cứng và phần mềm dùng cho việc thiết kế hệ thống Vi xử lý

- Thái độ: Có ý thức nâng cao khả năng, kiến thức Có ý thức tự tìm các tài liệu có liên quan về môn học

- Sinh viên phải tham gia đầy đủ các buổi thí nghiệm theo lịch của phòng đào tạo nếu nghĩ từ ½

số buổi thí nghiệm trở lên sẽ không được làm bài test

- Sinh viên phải tìm hiểu và đọc trước các tài liệu của thầy hướng dẫn yêu cầu

- Sinh viên phải hoàn tất các bài Lab của thầy hướng dẫn

- Thang đánh giá:

o Chuyên cần : 10%

o Thực hành : 20%

o Thuyết trình : 70%

Trang 2

1 Kit MSP-EXP430FG4618

1.1 Giới thiệu chung:

Có thể sử dụng một trong 2 gói công cụ sau để lập trình và debug: IAR Embeeded Workbench, TICode Composer Essential (CCE) và TI code Composer Studio (CCS) Thiết bị để lập trình và debug chochip 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

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ặc giao tiếp với các thiết bị bên ngoài

Trang 3

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

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 cho MSP430FG4618 dùng kiểu kết nối JTAG chuẩn 4 dây, còn JTAG cho MSP430F2013 dùng kiểu giao tiếp JTAG Spy-Bi-Wire (2 dây) Điều này cho phép các chân ở các port được sử dụng trong quá trình debug

Trang 4

Hai nút nhấn S1 và S2 được nối với cổng xuất/nhập số P1 có chức năng ngắt của MSP430FG4618

Hình 4 Sơ đồ nguyên lý kết nối nút nhấn S1 & S2 với MSP430FG4618 1.2.6 Các LED đơn

KIT MSP430FG4618 có 4 LED: LED1, LED2, và LED4 được kết nối với chip MSP430FG4618, LED3 được kết nối với chip MSP430F2013 LED3 và LED4 có thể được ngắt khỏi kết nối bằng Jumper đểtiết kiệm năng lượng cho kit (LED3 dùng jumper JP2, LED4 dùng JP3)

LED Kết nối với chip Port Ghi chú Jumper LED1 MSP430FG4618 P2.2

LED2 MSP430FG4618 P2.1

Bảng 1: Kết nối LED

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 MSP430F2013

Trang 6

Header Chức năng khi dung Jumper kết nối Khi không dùng jumper kết nối Yêu cầu

JTAG1 Bộ FET để lập trình-debug FG4618 FG4618 không được sử dụng X

JTAG2 Bộ FET để lập trình-debug F2013 F2013 không được sử dụng X

PWR1 Cung cấp nguồn cho FG4618 Ngoài ra,

dùng để đo dòng FG4618 không được cung cấp nguồn Yêu cầu cần gắn jumper này để sử dụng FG4618PWR2 Cung cấp nguồn cho F2013 Ngoài ra,

dùng để đo dòng F2013 không được cung cấp nguồn Yêu cầu cần gắn jumper này để sử dụng F2013 BATT Cung cấp nguồn cho kit bằng 2 pin

AAA Ngoài ra, dung để đo dòng tổng

cộng của kit

Pin không cung cấp nguồn cho cả 2 chip MSP430 Yêu cầu khi cần dùng pin JP1 Để sử dụng buzzer (nối với 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 chân FG4618-P5.1) Không dùng LED4 Tùy chọn/ yêu cầu khi dùng LED4 JP4 Suy hao mức điện áp ra của audio (69%) 98% suy hao của ngõ ra audio DAC12 Tùy chọn

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

bên trong processor H1(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

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

Trang 7

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

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

Trang 8

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 qua chuẩ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ế giao tiế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ại MSP – 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ên KIT MSP430FG4618

sẽ sử dụng loại này

Hình 10 Bộ Debug MSP-FET430UIF

Hỗ trợ tất cả họ MSP430 dựa trên Flash (F1xx, F2xx, F4xx, F5xx) x x

Cho phép tạo ra nguồn cấp chỉnh được 1.8V-3.6V ở 100mA x KHÔNG

Bảng 3 So sánh một vài tình năng giữa 2 loại MSP-FET430UIF và MSP- FET430PIF

2.2.Cài đặt driver của bộ Debug MSP-FET430UIF lên PC

Hiện tại, phòng thí nghiệm Mô phỏng và Vi xử lý được trang bị PC cài đặt windows 7 nên việc thiết lập driver cho bộ Debug MSP-FET430UIF đều tuân theo các bước sau

Bước 1: Download driver cho FET430UIF và lưu vào PC

Đối với Windows 7-64 bit: processors.wiki.ti.com/images/d/dc/TUSBWINVCP_Win7-64.zip

Đối với Windows 7-32 bit: processors.wiki.ti.com/images/6/6a/TUSBWINVCP_Win7-32.zip

Đối với WindowsXP-32 bit: processors.wiki.ti.com/images/7/73/TUSBWINVCP_XP32.zip

Đối với WindowsXP-64 bit: processors.wiki.ti.com/images/3/3b/TUSBWINVCP_XP64.zip

Đối với các hệ điều hành khác, lựa chọn drive phù hợp tại địa chỉ:

Trang 9

http://processors.wiki.ti.com/index.php/MSP430_JTAG_Interface_USB_Driver

Bước 2: Gắn FET430UIF vào máy vi tính qua cổng USB

Bước 3: Click phải chuột vào Computer/ chọn Properties sẽ cho cửa sổ sau

Tiếp theo click vào Device Manager.

Bước 4: Click phải trên phần thiết bị mà chưa được cài đặt, rồi chọn Properties Tiếp đến chọn tab Driver / Update Driver… và chọn đường dẫn đến file driver đã được download ở bước 1

3 Công cụ soạn thảo, mô phỏng, biên dịch và nạp chương trình:

Để lập trình và debug, người phát triển ứng dụng có thể sử dụng một trong 3 gói công cụ sau đây: IAR Embeeded Workbench, TI Code Composer Essential (CCE) và TI Code Composer Studio (CCS) IAR được chọn sử dụng vì tính đơn giản, gọn nhẹ của nó

Tham khảo website http://www.iar.com/ để biết thêm thông tin về IAR Download IAR Embedded Workbench Code size limited Kickstart version tại: http://www.ti.com/lit/zip/slac050

Cơ bản về sử dụng IAR để tạo 1 project và lập trình trên MSP430 đều tuân theo các bước sau đây

Trang 10

Bước 1: chạy chương trình IAR Embedded Workbench IDE theo đường dẫn

Start/All Programs/IAR Systems/ IAR Embeeded Workbench Kickstart for MSP430 4.21/ IAR Embeeded Workbench

Hoặc click chuột vào Icon trên desktop Sau đó cửa sổ giao diện chương trình sẽ hiển thị như hình dưới đây

Bước 2: Từ cửa sổ giao diện chính, chọn Project/ Create New Project

Bước 3: chọn ngôn ngữ sử dụng Trong thí nghiệm này, chúng ta chọn Empty project hoặc

C/main hoặc Asm/asm và click OK Ở đây, lựa chọn Empty project được sử dụng, sau đó click vào nút

Trang 11

OK để tiến hành bước tiếp theo.

Bước 4: Chọn đường dẫn muốn lưu project và tên Project Trong ví dụ này, tên project là lab1 và

được lưu trong thư mục “my lab”

Nếu ở bước 3 chọn Empty project thì cửa sổ có giao diện như sau:

Trang 12

Nếu ở bước 3 chọn C/main thì cửa sổ có giao diện như sau:

Bước 5: thiết lập các tùy chọn: vi điều khiển, debug, file nạp,…

Chọn Project/Option… (hoặc Alt+F7)

Trong mục General Options -> chọn tab Target -> chọn MSP430FG4618

Trang 13

Tiếp tục, chọn các tab khác để thiết lập như sau (các lựa chọn còn lại, xem help để rõ hơn)

Trong tab Output: chọn Output file: Executable

Trong tab Library Configuration: chọn Library: CLIB

Trong mục C/C++ Compiler: (nếu lựa chọn ngôn ngữ lập trình là ngôn ngữ C)

Trong tab Optimizations: chọn level: None (để hỗ trợ tối đa quá trình debug)

Trong tab List: chọn Output list file: Assembler mnemonics

Trong mục Debugger:

Trong tab Setup: chọn Driver: FET Debugger

Trang 14

Trong FET Debugger:

Trong tab Setup: chọn Connection: Texas Instrument USB-IF

Xong các chọn lựa ở trên trong bước 5, click OK để lưu lại tùy chọn để tiếp tục bước 6

Bước 6: Thiết lập file lập trình

(Nếu ở bước 3 đã chọn ngôn ngữ C hoặc Asm thì đã có sẵn một số file mặc định trên cửa sổ làm việc, ta có thể sử dụng để lập trình, hoặc remove chúng để tạo các file khác, hoặc add thêm file vào.)

File/ New/File, cửa sổ có giao diện như hình sau:

Với màn hình soạn thảo phía bên phải cửa sổ làm việc, người lập trình có thể biên soạn chương trình

Trang 15

Sau đó, file được lưu bằng: File/Save với tên và định dạng: “lab1.c”

( Hoặc nếu ở bước 3 đã chọn ngôn ngữ C thì cửa sổ soạn thảo sẽ giống như hình dưới đây

)

Trang 16

File “lab1.c” này chưa được đưa vào project lab1 Để đưa file “lab1.c” vào project để dùng, ta cần: Project/Add file…, một cửa sổ hiện ra và chọn “lab1.c” như giao diện sau:

Lúc này, trong cửa sổ làm việc project sẽ như sau:

Bước 7: Biên dịch file lập trình

Thực hiện: Project/Compile (hoặc Ctrl + F7), lúc này IAR sẽ yêu cầu lưu lại Workspace làm việc với giao diện sau Nhập tên Workspace, trong hướng dẫn này, là lab.eww

Trang 17

Sau khi lưu Workspace, quá trình biên dịch sẽ được thực hiện Nếu không có lỗi thì sẽ hiện ra thông báo như sau (nếu có lỗi, tra cứu từ help)

Bước 8: Lập trình-debug cho chip

Thực hiện Project/Download and Debug (hoặc Ctrl+D)

Để thấy kết quả thực hiện trên kit: Debug/Go (hoặc F5)

Trang 18

Khi biên dịch và nạp thành công, ta có thể tiến hành debugger trực tiếp trên mạch bằng các Step

4 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ải kit) Khi thí

nghiệm, thiết lập như vậy để không sử dụng pin cung cấp nguồn cho 2 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 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 cho F2013/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 19

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 khi mạ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

5.Cấu trúc một chương trình C thông thường cho MSP430

Trang 20

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 ta tá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

Ví dụ:

P1DIR |= BIT1; //chân P1.1 sẽ là chân Output, các chân khác ko bị ảnh hưởng bởi lệnh này

P1DIR &= ~BIT1; // chân P1.1 sẽ là chân Input (nếu ta ko định nghĩa thì nó mặc định là Input)

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 đến từ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ù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 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ái

o 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.2 bằng 0

//do anything

else

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

Trang 21

6 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ển PORT1, 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à 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à 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 Watchdog timer, ghi giá trị 5A vào 8 bit cao của thanh ghi WDTCTL và set thứ 7 của thanh ghi WDTCTL

WDTCTL = 0x5A00 | 0x0080Hoặc:

Trang 22

WDTCTL = ……… | ………; //Stop Watchdog Timer P2DIR |= ……….; //Configure P2.1 and P2.2 as Output P2OUT &= ……….; // Turn off LED1, LED2

P2OUT |= ………; // Turn on LED 1, turn off LED 2 while(1)

Trang 23

Bài 1.2

Yêu cầu: Sinh viên viết chương trình để đảo trạng thái LED1 mỗi khi SW1 được nhấn

Câu hỏi 1: Các SW(switch) đượ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

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

WDTCTL = ……….; //Stop Watchdog Timer P2DIR |= ……… ; //Configure P2.2 as Output (LED1) P1DIR &= ……… ; //Configure P1.0 as Input (S1) while (1)

{ while ((P1IN & 0x01)); //Wait for the press of the button P2OUT ^= ……….; //Toggle Port P2.2

for(……… ); //Delay, button debounce while (……… ); //Wait for the release of the button for(……… ); //Delay, button debounce

} }

Ngày đăng: 03/03/2018, 18:05

TỪ KHÓA LIÊN QUAN

w