1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lab1 hardware and software set up i mc

55 4 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 đề Lab1 Hardware and Software Set Up I
Trường học University of Technology and Education
Chuyên ngành Electrical Engineering
Thể loại Laboratory guide
Năm xuất bản 2023
Thành phố Ha Noi
Định dạng
Số trang 55
Dung lượng 1,32 MB

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

Nội dung

Mục tiêu:  Download và cài đặt phần mềm Code Composer Studio, cũng như download nhiều tài liệu và phần mềm hỗ trợ để sử dụng trong toàn bộ các bài lab.. Double click vào shortcut Code

Trang 1

Lab1: Hardware and Software Set Up

I Mục tiêu:

 Download và cài đặt phần mềm Code Composer Studio, cũng như download

nhiều tài liệu và phần mềm hỗ trợ để sử dụng trong toàn bộ các bài lab

 Tìm hiểu các thành phần của kit và kiểm tra hoạt động của chương trình demo

đã được nạp sẵn trên kit

 Các công cụ phát triển này sẽ được sử dụng trong xuyên suốt các bài lab về

Trang 2

 Một multi – meter

Download và cài đặt Code Composer Studio

2 Download phần mềm Code Composer Studio (CCS) 5.x web installer từ địa chỉ

http://processors.wiki.ti.com/index.php/Download_CCS (không download bất kì

bản dùng thử nào) Yêu cầu kết nối mạng cho đến khi quá trình hoàn tất Nếu

không có kết nối mạng thì có thể sử dụng offline version để cài đặt

3 Nếu sử dụng file offline, chạy file ccs_setup_5.xxxxx.exe trong folder sau khi giải

nén

4 Đồng ý Software License Agreement và click Next

5 Ngoại trừ việc muốn cài đặt CCS một vị trí khác, thì tốt nhất nên chọn folder

mặc định theo chương trình cài đặt và Click Next

6 Chọn “Custom” cho phần Setup type và Click Next

Trang 3

7 Trong hộp thoại tiếp theo, chọn processors mà CCS sẽ hỗ trợ Chọn “Stellaris Cortex M MCUs” để thực hiện các bài lab Ngoài ra, nếu quan tâm tới MSP430

thì có thể chọn “MSP430 Low Power MCUs” Có thể chọn thêm các kiến trúc

khác, tuy nhiên sẽ mất th i gian cài đặt cũng như kích thước cài đặt sẽ lớn Click

Next

8 Trong hộp thoại Component, giữ mặc định các lựa chọn và Click Next

Trang 4

9 Trong hộp thoại Emulator, bỏ chọn Blackhawk and Spectrum Digital emulators, tr ừ khi có ý định sử dụng chúng.

10 Khi tới đến hộp thoại cài đặt cuối cùng, Click Next Quá trình cài đặt sẽ bắt đầu

Khi hoàn tất quá trình cài đặt, không chạy CCS

Trang 5

Cài đặt StellarisWare

11 Download và cài đặt version cuối cùng của StellarisWare từ địa chỉ:

http://www.ti.com/tool/sw-lm3s Nếu có thể, nên cài đặt StellarisWare vào folder

mặc định C:\StellarisWare.

Cài đặt LM Flash Programmer

12 Download, giải nén, và cài đặt mới nhất LM Flash Programmer

(LMFLASHPROGRAMMER) từ http://www.ti.com/tool/lmflashprogrammer

Download ICDI Drivers

13 Download phiên bản mới nhất của in-circuit debug interface drivers từ địa chỉ

http://www.ti.com/tool/stellaris_icdi_drivers Giải nén file di chuyển folder

stellaris_icdi_drivers vào trong địa chỉ C:\StellarisWare

Download và cài đặt Workshop Lab Files

14 Download the lab installation file từ địa chỉ Wiki site bên dưới Các file lab sẽ được cài đặt trong C:\StellarisWare\boards\MyLaunchPadBoard Do đó, phải

chắc chắn rằng StellarisWare phải được cài đặt trước đó

www.ti.com/StellarisLaunchPadWorkshop

Download Workshop Workbook Lab Files

15 Có thể download file Tiếng Anh hướng dẫn các bài lab này với nhiều bài lab hơn theo địa chỉ sau:

Window-side USB Examples

17 Download và cài đặt StellarisWare Windows-side USB examples từ địa chỉ:

www.ti.com/sw-usb-win

Download và cài đặt GIMP

18 Chúng ta sẽ cần một công cụ thao tác đồ họa có khả năng xử lí các ảnh định dạng

PNM GIMP có thể làm điều đó Download và cài đặt GIMP từ địa chỉ:

www.gimp.org

Trang 6

LaunchPad Board Schematic

19 Để tham khảo, schematic sẽ có phần cuối của tài liệu này

20 Có rất nhiều tài liệu hữu dụng, tuy nhiên ít nhất bạn nên có các tài liệu sau

Tìm trong C:\StellarisWare\docs sẽ thấy:

Peripheral Driver User’s Guide (SW-DRL-UGxxxx.pdf)

USB Library User’s Guide (SW-USBL-UGxxxx.pdf)

Graphics Library User’s Guide (SW-GRL-UGxxxx.pdf)

LaunchPad Board User’s Guide (SW-EK-LM4F120XL-UG-xxxx.pdf )

21 Vào địa chỉ: http://www.ti.com/product/lm4f120h5qr và download LM4F120H5QR Data Sheet Stellaris Data Sheet thực sự là một hướng dẫn sử

dụng đầy đủ cho các device

22 Download the ARM Optimizing C/C++ Compilers User Guide từ địa chỉ

http://www.ti.com/lit/pdf/spnu151 (SPNU151)

23 Các gợi ý được trình bày trong cuối mỗi bài labs (nếu có) để cung cấp các thông

tin hữu dụng khi gặp phải các vấn đề trong các bài labs

24 Tìm kiếm TI website cho các tài liệu tham khảo thêm:

SPMU287: Stellaris Driver Installation Guide (for ICDI and FTDI drivers)

SPMU288: BoosterPack Development Guide

SPMU289: LaunchPad Evaluation Board User’s Manual (includes schematic)

Có th ể tìm thêm thông tin ở các websites sau:

Main page: www.ti.com/launchpad

Stellaris LP: www.ti.com/stellaris-launchpad

EK-LM4F120XL product page: http://www.ti.com/tool/EK-LM4F120XL

BoosterPack webpage: www.ti.com/boosterpack

LaunchPad WiKi: www.ti.com/launchpadwiki

LM4F120H5QR folder: http://www.ti.com/product/lm4f120h5qr

Kit

25 M hộp kit ra

Trang 7

Sẽ có trong đó:

 The LM4F120H5QR LaunchPad Board

 USB cable (A-male to micro-B-male)

 README First card

Cài đặt Board ban đầu

26 Kết nối board với máy tính và cài đặt drivers

LM4F120 LaunchPad Board ICDI USB port (có ghi nhãn trên board là DEBUG

và có thể thấy như trong hình dưới) là cổng USB và bao gồm 3 kết nối:

Stellaris ICDI JTAG/SWD Interface - debugger connection Stellaris ICDI DFU Device - firmware update connection Stellaris Virtual Serial Port - a serial data connection

Drivers sẽ được cài đặt tự động

QuickStart Application

LaunchPad Board đã được lập trình trước với một ứng dụng QuickStart Chỉ cần cung

cấp nguồn cho board, ứng dụng này sẽ chạy một cách tự động

27 Phải chắc chắn rằng Power switch phía trên góc trái của board được gạt qua vị

trí bên phải DEBUG như trong hình:

Trang 8

28 Phần mềm trong LM4F120H5QR sử dụng timers như là pulse-width modulators (PWMs) để thay đổi cư ng độ của tất cả 3 màu trên Led đơn RGB (red, green,

and blue) B i vậy, mắt sẽ cảm nhận được nhiều màu sắc khác nhau được tạo ra

thông qua việc kết hợp các màu cơ bản

Hai plushbuttons phía dưới của board được đánh nhãn SW1 (bên trái) và SW2

( bên phải ) Nhấn hoặc nhấn và giữ SW1 để di chuyển về phía phổ màu đỏ

cuối Nhấn hoặc nhấn và giữ SW2 để di chuyển về phổ màu tím cuối

Nếu không nhấn nút nào trong vòng 5 giây, phần mềm sẽ tự động quay về thay đổi màu sắc như mặc định

29. Nhấn và giữ cả 2 nút nhấn SW1 và SW2 trong vòng 3 giây sẽ đi vào hibernate

mode (chế độ ngủ) Trong chế độ này màu sắc cuối cùng sẽ nhấp nháy 1/2 giây

sau mỗi 3 giây Giữa các khoảng nhấp nháy, thiết bị chế độ ngủ VDD3ON với

realtime-clock (RTC) đang chạy Nhấn SW2 bất kì lúc nào sẽ đánh thức thiết bị

và quay về chương trình hiển thị màu sắc một cách tự động

30 Ta có thể giao tiếp với board thông qua UART UART được kết nối như là cổng

nối tiếp ảo thông qua kết nối USB giả lập

Các bước sau đây sẽ hướng dẫn làm cách nào m kết nối với board sử dụng

HyperTerminal (trong Window XP) và PuTTY (trong Window 7 hoặc 8)

31 Ta cần tìm COM port number của Stellaris virtual Serial Port trong Device

Manager B ỏ qua bước 32 nếu đạng sử dụng Window 7 hoặc 8

Window XP:

A Click chuột phải My Computer và chọn Properties

B Trong cửa sổ System Properties, chọn tab Hardware

C Click nút Device Manager

M Ports heading và viết số của Stellaris Virtual Serial Port đây: COM

Trang 9

32 Window 7 hoặc 8:

A Click chuột phải My Computer và chọn Properties

B Chọn Device Manager hộp thoại bên trái

M Ports heading và viết số của Stellaris Virtual Serial Port đây: COM

Trang 10

33. Trong Win XP, m HyperTerminal Trong hộp thoại hiện ra, chọn kết nối sử

dụng COM##, với ## là số của cổng COM đã ghi chú bước trước Click OK

Chọn các thiết lập như hình sau và click OK

Khi cửa sổ terminal được m , nhấn ENTER một lần và LaunchPad board sẽ phản

hồi là xác nhận giao tiếp đã m Bỏ qua bước 31

Trang 11

34. Trong Win 7 hoặc 8, double click vào putty.exe Thiết lập các cài đặt như hình

dưới và sau đó click Open COM Port number sẽ là số mà ta đã ghi chú lại trước đây

Khi cửa sổ terminal được m , nhấn ENTER một lần và LaunchPad board sẽ phản

hồi là xác nhận giao tiếp đã m Bỏ qua bước 31

35 Bạn có thể giao tiếp bằng cách gõ các dòng lệnh sau và nhấn ENTER:

help: sẽ tạo ra một danh sách các lệnh và thông tin

hib: sẽ đưa thiết bị vào chế độ ngủ Nhấn SW2 để đánh thức thiết bị

rand: sẽ bắt đầu một chuỗi pseudo-random màu sắc

intensity: điều chỉnh độ sáng của LED từ 0 tới 100% Với 100 sẽ làm LED hiển

thị sáng nhất

rgb: theo sau là một “6 hex character value” để thiết lập cư ng độ của tất cả 3

LEDs Ví dụ: rgb FF0000 LED sáng màu đỏ, rgb 00FF00 LED sáng màu xanh dương và rgb 0000FF LED sáng màu xanh lá

36 Đóng chương trình Terminal

Hoàn thành!

Trang 12

Lab 2: Code Composer Studio

I Mục tiêu:

Mục tiêu của lab này là làm quen với cách sử dụng Code Composer Studio một cách cơ

bản

II Load the Lab 2 Project

M ở Code Composer Studio

1 Double click vào shortcut Code Composer trên Destop để m CCS

Khi hộp thoại “Select a workspace” xu ất hiện, trỏ đến folder My Computer:

(In WinXP) C:\Documents and Settings\< user> \My Documents (In Win7) C:\Users\< user> \My Documents

Ngoài ra, cũng có thể trỏ đến folder mong muốn của bạn Click OK

Tên của workspace là không quan trọng, tuy nhiên hãy sử dụng

MyWorkspaceLM4F120

Trang 13

Không chọn ô “Use this as the default and do not ask again”

Click OK

Nếu không có licensed Code Composer, bạn sẽ được hỏi trong những bước cài đặt

tiếp theo Khi đó, chọn “Evaluation” Ngay khi máy tính được kết nối với

LaunchPad board, Code Composer sẽ có đầy đủ chức năng, miễn phí Bạn có thể

quay lại và thay đổi license nếu cần thiết bằng cách chọn Help -> Code Composer

Studio Licensing Information -> Upgrade tab -> Launch License Setup…

Khi cửa sổ “TI Resource Explorer” and/or “Grace” xuất hiện, đóng các tabs Vào lúc đó các công cụ chỉ hỗ trợ MSP430

T ạo Lab2 Project

2 Trên CCS menu bar chọn File -> New -> CCS Project Thiết lập các tùy chọn như

bên dưới Phải chắc chắn rằng bỏ chọn “Use default location” và chọn đư ng

dẫn chính xác Bước này là quan trọng để làm cho project của bạn linh động

và để cho liên đới tới công việc một cách trực tiếp Gõ “120” trong ô variant để

đưa lên 4 phiên bản của thiết bị Chọn “Empty Project (with main.c)” cho project

mẫu Click Finish

Trang 14

3 File main.c sẽ được m trong editor tab Xóa nội dung và gõ hoặc copy/paste đoạn code sau vào trong file Đừng băn khoăn về code bây gi ; đã sẽ đi vào chi

tiết về code trong lab 3 Lưu ý các câu hỏi xuất hiện bên trái của các câu lệnh

include Điều này cho biết rằng Code Composer không biết đư ng dẫn đến các

nguồn Ta sẽ sữa điều đó phần sau

GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);

while(1)

{

// Turn on the LED

GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, LED);

// Delay for a bit

SysCtlDelay(2000000);

// Cycle through Red, Green and Blue LEDs

if (LED == 8) {LED = 2;} else {LED = LED*2;}

Trang 15

}

}

Click nút Save trên menu bar để để lưu lại Nếu có bất kì vấn đề gì, bạn có thể

tìm code trong folder Lab2/ccs trong file main.txt

Nếu code thụt vào thụt ra không rõ ràng, nhấn Ctrl-A, click chuột phải và chọn

Source -> Correct Indentation

4. M rộng project trong Project Explorer pane ( phía bên trái) bằng cách click vào

dấu + hoặc dấu của Lab 2 Danh sách này cho thấy được tất cả các file được sử

dụng để build project Một trong các file này là startup_ccs.c mà ta đã đưa vào

trong folder của lab (file này sẵn có trong mỗi StellarisWare example) click vào file để m nó File này định nghĩa “stack and the interrupt vector table

Double-structure” trong những thứ khác Các cài đặt này là cần thiết cho Code Composer

để build project Không thay đổi bất kì nội dung nào trong file này và đóng lại

Cài đặt Build Options

5 trên đã đề cập đến những câu hỏi xuất hiện sau hàng lệnh include Hai bước

tiếp theo sẽ giúp giải quyết vấn đề đó để tìm ra nguồn của các file cần thiết cho

biên dịch code

Click chuột phải Lab2 trong Project Explorer pane và chọn Properties Click

Include Options dưới ARM Compiler bên dưới, khung include search path,

click Add button và thêm vào include search path sau Bạn có thể muốn

copy/paste từ workbook pdf với 2 bước tiếp theo

${PROJECT_ROOT}/ / / /

Đư ng dẫn này cho phép trình biên dịch (compiler) tìm chính xác folder driverlib,

với 4 mức trên tính từ folder project Chú ý rằng, nếu bạn để folder project của

bạn vị trí khác thì đư ng dẫn trên không hoạt động

Trang 16

6. Phía dưới ARM Linker click File Search Path Thêm vào cửa sổ phía trên file

library sau:

${PROJECT_ROOT}/ / / / /driverlib/ccs-cm4f/Debug/driverlib-cm4f.lib

Trang 17

Bước này cho phép trình liên kết (linker) tìm thấy chính xác file lib Chú ý rằng

nếu bạn không để project một vị trí khác thì đư ng dẫn trên cũng không hoạt động

Click OK để lưu lại các thay đổi

Ch ạy Code chương trình

7 Phải chắc chắn rằng LaunchPad board đã được cắm vào Kiểm tra rằng Lab2 là

Active Project bằng cách click vào project trong khung Project Explorer, click nút

Debug trên CCS menu bar để build và tải Lab2 project Khi quá trình hoàn

thành, CCS sẽ trong giao diện Debug (lưu ý 2 tabs phía trên bên phải của màn hình … kéo chúng qua bên trái một chút để bạn có thể nhìn thấy chúng hoàn

toàn)

8 Click nút Run trên CCS menu bar để chạy chương trình Quan sát LED ba màu sáng đỏ, lục và lam trên LaunchPad board

M ột vài đặc trưng của CCS

9 Click nút Suspend trên CCS menu bar Nếu chương trình dừng với một báo

hiệu “No source available …” , click vào tab main.c Hầu hết th i gian trong vòng

lặp while() là trong các hàm delay và source file này không linked vào trong

project

10. Breakpoints

Trong cửa sổ chương trình giữa màn hình, double-click vào vùng xám bên trái

của line number của hang lệnh GPIOPinWrite() để thiết lập breakpoint (nó trông

giống thế này ) Click nút Resume để restart lại chương trình Chương trình

sẽ dừng lại điểm breakpoint và bạn sẽ thấy một mũi tên bên trái của line number, xác định rằng bộ đếm chương trình đã được dừng trên hang này của

code Chú ý r ằng ICDI driver hiện tại không hỗ trợ thêm vào/bỏ bớt breakpoints trong khi processor đang chạy Click nút Resume một vài lần hoặc

nhấn phím F8 để chạy chương trình Quan sát LED trên LaunchPad board

Trang 18

Click View -> Memory Browser để kiểm tra processor memory Gõ 0x00 trong ô

trống và nhấn Enter Bạn có thể thấy memory và có thể click vào một vị trí và thay đổi giá trị trực tiếp trong vị trí bộ nhớ đó

13. Expressions View

Phải chắc chắn rằng bạn có thể thấy khung Expressions góc trên bên phải màn

hình Bạn có thể phải click vào tab Expressions Click chuột phải vào khung và

chọn Remove All để làm cho chắc chắn rằng không còn gì hiển thị trong

expressions

Trong cửa sổ code, double-click vào biến LED xung quanh dòng 18 Click chuột

phải vào biến được chọn và chọn Add Watch Expression và sau đó click OK Cửa

sổ trên bên phải sẽ chuyển sang Expression view và bạn sẽ thấy biến đó đã được

liệt kê Chạy chương trình vài lần Mỗi lần code thực hiện tới điểm breakpoint,

giá trị hiển thị sẽ được cập nhật, Giá trị đã được cập nhật được bôi nền màu vàng

Xóa tất cả các điểm breakpoint mà bạn đã thiết lập bằng cách click Run ->

Remove All Breakpoints từ menu bar Một lần nữa, breakpoint chỉ có thể được

xóa khi processor không chạy

14 Click vào Terminate để quay về môi trương soạn thảo Click phải chuột vào

Lab2 trong khung Project Explorer và chọn Close Project để đóng project

Minimize CCS

LM Flash Programmer

15 LM Flash Programmer là một giao diện lập trình độc lập mà cho phép bạn lập

trình flash của của một thiết bị Stellaris thông qua nhiều port Tạo ra nhiều file

cần thiết cho bước build r i rạc trong Code Composer mà sẽ được thấy trong

trang tiếp theo của bài lab này

Nếu không sẵn có, cài đặt LM Flash Programmer vào máy của bạn

16 Phải chắc chắn rằng Code Composer Studio không chạy code trong môi trư ng CCS Debug … bằng không CCS và Flash Programmer sẽ xung đột trong việc điều khiển USB port

Đó sẽ là Shortcut của LM Flash Programmer trong Destop

của bạn, double-click vào đó để m công cụ Nếu không thấy

shortcut trên Destop, vào Start -> All Programs -> Texas

Trang 19

Instruments -> Stellaris -> LM Flash Programmer và click vào LM Flash Programmer

17 Hiện tại board của bạn đang chạy ứng dụng của Lab2 Nếu User LED không sáng,

nhấn nút RESET trên board Ta sẽ lập trình ứng dụng ban đầu tr lại trên

LM4F120H5QR

Click vào tab Configuration Chọn LM4F120 LaunchPad từ Quick Set menu thả

xuống của Configuration tab Xem user’s guide để thêm thông tin về cách nào

cấu hình bằng tay công cụ cho một thiết bị mà không phải là evaluation boards

18 Click vào tab Program Sau đó click vào nút Browse và điều khiển đến:

C:\StellarisWare\boards\ek-lm4f120XL\qs-rgb\ccs\Debug\qs-rgb.bin

Đây là ứng dụng mà đã được nạp sẵn trên flash memory của LM4F120XL của

board

Lưu ý rằng là các ứng dụng đây đã được build sẵn với mỗi IDE được hỗ trợ

Phải chắc chắn rằng các ô chọn sau đây được lựa chọn:

Trang 20

19 Click vào nút Program

Bạn sẽ thấy quá trình programming và verification phía dưới của cửa sổ Sau khi các bước này hoàn thành, quickstart application sẽ chạy trên kit

20 Đóng LM Flash Programmer

Tu ỳ chọn: Tạo một bin File cho Flash Programmer

Nếu bạn muốn tạo một bin file để sử dụng b i stand-alone programmer trong một

vài bài labs, sử dụng các bước sau đây Nhớ rằng project phải được m trước khi

bạn có thể thay đổi đặc tính của nó

In Code Composer 5.2 and Earlier:

Trong Code Composer, trong Project Explorer, click chuột phải vào project và

chọn Properties bên trái, click Build và và sau đó Steps tab Dán các câu lệnh

sau vào trong Post-build steps Command box:

"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin"

"${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin"

"${CG_TOOL_ROOT}/bin/ofd470" "${CG_TOOL_ROOT}/bin/hex470"

"${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

In Code Composer 5.3 and Later:

Trong Code Composer, trong Project Explorer, click chuột phải vào project và

chọn Properties bên trái, click Build và và sau đó Steps tab Dán các câu lệnh

sau vào trong Post-build steps Command box:

trong project bằng cách click vào Debug folder

Hoàn Thành!

Trang 21

Lab 3: Khởi tạo và GPIO

I Mục tiêu:

Trong bài lab này ta sẽ học được làm cách nào kh i tạo clock hệ thống và ngoại vi GPIO Sau đó ta sẽ sử dụng các GPIO ouput để làm sang LED trên board

II Các bước tiến hành:

T ạo Lab3 project

1 Maximine Code Composer Trên CCS menu bar chọn File -> New-> CCS

Project Làm các chọn lựa như bên dưới Phải chắc chắn rằng không chọn vào ô

“Use default location” và chọn đư ng dẫn chính xác tới “ccs” folder mà bạn tạo

ra Bước này quan trọng vì nó sẽ làm project của bạn linh động và để include các đường dẫn để làm việc cho đúng Trong hộp variant, gõ “120” để thu hẹp

các kết quả trong hộp bên phải Trong cửa sổ Project templates and examples,

chọn Empty Project (with main.c) Click Finish

Trang 22

Header Files

2 Xóa nội dung hiện tại của main.c Gõ (hoặc cắt/dán từ file pdf) các hàng sau vào

trong main.c để include các file header cần thiết truy xuất StellarisWare APIs cũng như định nghĩa biến:

hw_memmap.h: Macros định nghĩa memory map của thiết bị Stellaris Include

này định nghĩa các vị trí peripheral base address như là GPIO_PORTF_BASE

Trang 23

hw_types.h: định nghĩa common types và macros như là tBoolean và

HWREG(x)

sysctl.h: định nghĩa và macros cho System Control API của DriverLib Cái này

bao gồm API functions như là SysCtlClockSet và SysCtlClockGet

gpio.h: định nghĩa và macros cho GPIO API của DriverLib Cái này bao gồm API

functions như là GPIOPinTypePWM và GPIOPinWrite

int PinData=2; : tạo một biến integer được gọi là PinData và kh i tạo giá trị của

nó là 2 Nó sẽ được sử dụng để quay vòng qua 3 LED, sáng một lần một th i điểm

Bạn sẽ thấy câu hỏi xuất hiện bên trái của dòng include trong main.c được hiển thị trong Code Composer Ta chưa định nghĩa đư ng dẫn tới include folders, do đó

Code Composer không thể tìm thấy chúng Ta sẽ sửa lỗi này sau

Main() Function

3 Tiếp theo, ta sẽ tạo một khuôn mẫu cho hàm main Copy đoạn code sau vào phía

sau phần khai báo của chương trình:

25MHz Có một mặc định là bộ chia 2 trong đư ng clock và bây gi ta đang thiết

lập thêm bộ chia 5, để nâng tổng số lên 10 Điều đó có nghĩa là clock hệ thống sẽ

40MHz Đưa hàng code sau vào trong hàm main():

SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);

Biểu đồ dưới đây là một bản vẽ vắn tắt của clock tree để nhấn mạnh đư ng Clock

hệ thống và sự lựa chọn

Trang 24

Biểu đồ bên dưới là một phần được trích từ LaunchPad board Schematic Lưu ý rằng

thạch anh gắn liền với đầu vào dao động chính là 16MHz, trong khi thạch anh gắn với đầu vào real-time clock (RTC) là 32,768MHz

GPIO Configuration

5 Trước khi gọi bất kỳ hàm ngoại vi cụ thể driverLib, ta phải tích cực clock cho

ngoại vi đó Nếu bạn thất bại, nó sẽ trả về kết quả là một Fault ISR (address fault) Đây là một lỗi chung của một số ngư i dùng thư ng mắc phải Hàng lệnh thứ 2 bên dưới cấu hình 3 chân GPIO kết nối với LEDs như là ngõ ra Một phần sơ đồ bên dưới của LaunchPad board schematic chỉ rõ các chân PF1, PF2 và PF3 là được kết nối với LEDs

Trang 25

Cách ra một hàng, sau đó đưa 2 hàng code sau vào trong main() sau hang lệnh bước trước

truy cập thông qua AHB có thể dịch chuyển với một chu kì xung clock so với 2

chu kỳ xung clock đối với port trên APB Trong các ứng dụng nhạy cảm về công

suất, APB sẽ là một sự lựa chọn tốt hơn so với AHB Trong bài lab này,

GPIO_PORTF_BASE là 0x40025000

GPIO Port A (APB): 0x4000.4000 GPIO Port A (AHB): 0x4005.8000 GPIO Port B (APB): 0x4000.5000 GPIO Port B (AHB): 0x4005.9000 GPIO Port C (APB): 0x4000.6000 GPIO Port C (AHB): 0x4005.A000 GPIO Port D (APB): 0x4000.7000 GPIO Port D (AHB): 0x4005.B000 GPIO Port E (APB): 0x4002.4000 GPIO Port E (AHB): 0x4005.C000

GPIO Port F (APB): 0x4002.5000

GPIO Port F (AHB): 0x4005.D000

While() Loop

6 Cuối cùng, tạo một vòng lặp while(1) để gửi một “1” hay “0” tới một pin GPIO cho trước, với một hàm delay giữa 2 lệnh

Trang 26

SysCtlDelay() là một vòng lặp timer được cung cấp trong StellarisWare Tham số đếm là số vòng lặp, không phải th i gian delay thực sự trong chu kì clock

Để ghi vào chân GPIO, sử dụng GPIO API function được gọi là GPIOPinWrite

Phải chắc chắn đọc và hiểu được làm thế nào GPIOPinWrite function được sử

dụng trong Datasheet

Trong ví dụ bên dưới, ta đang ghi giá trị trong biến PinData lên tất cả 3 pin GPIO

mà được kết nối tới LEDs Chỉ có 3 pin đó được sẽ được ghi giá trị dựa trên bit mask đã được xác định trước đó

Bây gi có lẽ là th i điểm tốt để nhìn vào Datasheet cho Stellaris device Xem chương GPIO để hiểu cách duy nhất GPIO data register được thiết kế và ưu điểm

if(PinData==8) {PinData=2;} else {PinData=PinData*2;}

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);

GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); while(1)

{

GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, PinData);

Trang 27

Nếu bạn đang cố gắng build đoạn chương trình trên thì không nên, vì như vậy sẽ

thất bại Lưu ý các câu hỏi xuất hiện trong hàng lệnh include… CCS vẫn chưa

biết vị trí của các file đó đâu Chúng ta vẫn cần thêm vào start up code và thiết

lập các tùy chọn để build

Startup Code

8 Ngoài các file chính đã tạo ra, bạn cũng cần có một startup file cụ thể để chuỗi

công cụ mà bạn đang sử dụng File này chứa đựng vector table, startup routines để

sao chép data kh i tạo cho RAM, xóa bss section, và lỗi mặc định ISRs File này

đã đưa vào trong folder của bạn

Double-click vào startup_ccs.c trong Project Explorer pane và có một cái nhìn

tổng quan Đừng thay đổi điều gì vào lúc này

Set the Build Options

9 Click chuột phải vào Lab3 trong Project Explorer pane và chọn Properties Click

Include Options dưới ARM Compiler phía dưới, include search path pane,

click nút Add và thêm vào “search path” sau:

${PROJECT_ROOT}/ / / /

Nếu bạn làm theo các hướng dẫn trên trong quá trình tạo Lab3 project, thì

đư ng dẫn trên trên 4 mức so với folder project, sẽ cho phép project của bạn

truy xuất vào inc và driverlib folder Bằng không, bạn phải tự điều chỉnh đư ng

dẫn của mình

Để tránh gõ sai thì tốt nhất là copy/paste đoạn này và đoạn ở bước tiếp theo

Ngày đăng: 09/12/2022, 09:28

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

TÀI LIỆU LIÊN QUAN

w