DWF-KDS-KSDK - Lab 4

Post on 14-Jan-2016

41 views 0 download

Tags:

description

frdm k64f

Transcript of DWF-KDS-KSDK - Lab 4

TM

External Use 0

Lab 4: PEx Device Initialization + SDK Drivers

TM

External Use 1

Lab 4 Overview

Objective: In this lab we will create a KDS Project with Processor Expert support and use the SDK for

peripheral drivers. We will add several components and import a source file with

implementation code.

Lab Flow:

Create a new Processor Expert + SDK Project in KDS

Add and Configure Components

Generate Code

Import Existing Implementation File

Build

Download Application to Target MCU

Debug

Required Hardware and Software:

FRDM-K64F Board configured with PEMicro Debugger

Micro USB Cable

Kinetis Design Studio (v1.1.1 or newer)

TM

External Use 2

Project Definition

Blink the Green LED Interrupt timer; set at 1 HZ

Turn on/off Red LED Switch 2; Press to activate; Release to de-activate

Turn on/off Blue LED Switch 3; Press on; Press Off

Hardware: FRDM-K64F

Clock Configuration Internal PLL; set to 120MHz Bus Clock; 60MHz Flash Clock: 20MHz

Pin Muxing GPIO; UART

TM

External Use 3

Create a new project to blink the LEDs

• This hands-on lab shows you how to…

− Create a new project with the New Project Wizard

− Configure Components with the Component Inspector

− Use Processor Expert Components

− Import existing files

− Build the project

− Test the application’s functionality

• The lab uses the FRDM-K64F board

• The application will blink an LED periodically, and light

LEDs with button presses.

Next up!

TM

External Use 4

Start KDS & Set Workspace Location

Double-Click on “Kinetis Design Studio IDE” Icon on Desktop

Select workspace location by clicking

on “Browse” and select your sandbox

Navigate to and select:

Desktop\DWF – KDS Class\Lab Sandbox\Wksp4

Click “OK”

1

2

3

4

TM

External Use 5

Create New Project

File Menu New Kinetis Design Studio Project 1

Enter “Project4”

Click “Next”

2

3

TM

External Use 6

Select Device

Enter “mk64f” into “Processor to be used:”

Select “MK64FN1M0xxx12”

Click “Next”

2

3

1

TM

External Use 7

Finalize Project Settings

Ensure “Kinetis SDK…” And “Processor Expert…” ARE both

checked

Click “Finish” 2

1

TM

External Use 8

Project displayed in C/C++ Perspective

Component Inspector

Component View

Project View

Editor View

Problem View

TM

External Use 9

Create a new project to blink the LEDs

• This hands-on lab shows you how to…

− Create a new project with the New Project Wizard

− Select & Configure Components

− Generate Code

− Import existing files

− Build the project

− Test the application’s functionality

• The lab uses the FRDM-K64F board

• The application will blink an LED periodically, and light

LEDs with button presses.

Next up!

TM

External Use 10

• Components Needed:

− Processor: CPU: MK64FNM0VLL (Base CPU Preselected based on project

wizard information)

• Pin Muxing

− Using the PinSettings Component

• Components needed for project

− fsl_uart: send text to the terminal

− fsl_gpio: SW2, SW3, RED_LED, GREEN_LED, BLUE_LED

− fsl_pit: Flashing the LED

Selecting Components

TM

External Use 11

Component Inspector

Drag down to resize

Select the

Cpu

Expand

“Project4”

1

2

3

TM

External Use 12

• In the next few slides we will configure the CPU component

as follows:

− Package 100 pin LQFP

− System Oscillator Enabled

− External Clock 50 MHz input

− MCG Mode PEE

− PLL Output 120MHz

− Core Clock 120MHz

− Bus Clock 60MHz

− Flash Clock 24MHz

Configure CPU Component

TM

External Use 13

Component Inspector – Package

Select “LQFP 100-pin package”

Click 1

2

TM

External Use 14

Component Inspector – System Oscillator

Enter “50” MHz

Select “System oscillator 0” Tab

Select

“External reference clock”

Scroll

Down 1

2

3

4

TM

External Use 15

Component Inspector – System Oscillator Select

“Clock configurations” Tab

Select

“MCG Settings”

Scroll back up in the Component Inspector till you can see “Clock

configurations” – go ahead and select it revealing: 1

Resize and scroll

Component Inspector

View and select “MCG

settings”

2

TM

External Use 16

Component Inspector – System Oscillator

Select

“PEE”

Enter

“120”

Scroll

Down

1

2

3

TM

External Use 17

Component Inspector – Clock Configuration

Select “System clocks”

Enter “120”

Enter “60”

Enter “24”

1 Scroll back up and stretch window to expose “System clocks”

2

3 Adjust settings accordingly

TM

External Use 18

Component Inspector – CPU Common Settings

Select:

“pin_init:PinSettings”

1

TM

External Use 19

Configure Pin Settings

Click “Switch Configuration” 1

Note: This will clear up the errors in the pin_init component. 2

TM

External Use 20

Configure Pin Settings – per Schematic

GPIO Switches

GPIO LED’s

UART

TM

External Use 21

Hardware GPIO Pins to Configure

Port Number Function Name Direction

PTA4 SW3 Input

PTB21 LED_BLUE Output

PTB22 LED_RED Output

PTC6 SW2 Input

PTE26 LED_GREEN Output

Function Name Port Number Direction

SW2 PTC6 Input

SW3 PTA4 Input

LED_BLUE PTB21 Output

LED_GREEN PTE26 Output

LED_RED PTB22 Output

TM

External Use 22

Configure Pin Settings

Select

“GPIO”

TM

External Use 23

Configure Pin Settings : PTA 4

Click here

And

Select “PTA4/…”

TM

External Use 24

Configure Pin Settings : PTA 4

Select “Pin Functional Properties”

Right Click Here

2

1

TM

External Use 25

Configure Pin Settings : PTA 4

Select “Up”

Select “Enabled”

Click “Done”

1

2

TM

External Use 26

Configure Pin Settings : PTA 4

Enter “SW3”

Enter “Input”

TM

External Use 27

Configure Pin Settings : PTB 21

Click here

Select “PTB21/…”

Click here

Select “Output” Enter “LED_BLUE”

1 2

3

TM

External Use 28

Configure Pin Settings : PTB 21

NOTE: After settings made, notice both “Pin/Signal Selection”

and “User Pin/Signal Name” indicate “LED_BLUE” 1

TM

External Use 29

Configure Pin Settings : PTB 22

Click here

Select “PTB22/…”

Click here

Select “Output” Enter “LED_RED”

1 2

3

TM

External Use 30

Configure Pin Settings: PTB 22

NOTE: After settings made, notice both “Pin/Signal Selection”

and “User Pin/Signal Name” indicate “LED_RED” 1

TM

External Use 31

Configure Pin Settings: PTC 6

Click here

Select “CMP0_IN0/…”

Click here

Select “Input” Enter “SW2”

1

2 3

TM

External Use 32

Configure Pin Settings: PTC 6

Select “Pin Functional Properties”

Right Click Here

2

1

TM

External Use 33

Select “Up”

Select “Enabled”

Click “Done”

1

2

Configure Pin Settings

TM

External Use 34

Configure Pin Settings : PTE 26

Click here

Select “PTE26/…”

Click here

Select “Output” Enter “LED_GREEN”

1

2 3

TM

External Use 35

Hardware GPIO Pins to Configure

Port Number Function Name Direction

PTA4 SW3 Input

PTB21 LED_BLUE Output

PTB22 LED_RED Output

PTC6 SW2 Input

PTE26 LED_GREEN Output

Function Name Port Number Direction

SW2 PTC6 Input

SW3 PTA4 Input

LED_BLUE PTB21 Output

LED_GREEN PTE26 Output

LED_RED PTB22 Output

TM

External Use 36

Hardware UART Pins to Configure

Function Port Number Pin Number

Uart0 TX PTB17 62

Uart0 RX PTB16 63

TM

External Use 37

Configure Pin Settings: UART

Click here - Select “PTB16/…”

Select “UART” 1

2

Click here - Select “PTB17/…” 3

TM

External Use 38

Pin Muxing is Complete, Time to select & set

up the Components

TM

External Use 39

Selecting Components - Switch to Component Library

Click on

“Component Library”

to bring up the library

Scroll down until you begin to see

“fsl_xxx” components

1

Click on

“Alphabetical” 2

3

TM

External Use 40

Selecting Components

Double Click on

“fsl_gpio”

Double Click on

“fsl_pit”

TM

External Use 41

Selecting Components

Scroll Down

Double Click on

“fsl_uart”

TM

External Use 42

Selecting Components

• The component list should now look like this:

TM

External Use 43

Configure GPIO Driver Settings - Inputs

Double-Click

“gpio1:fsl_gpio”

to bring up

“Component

Inspector”

Click on the “Input pins” tab

1

2

CAREFUL: Click “+” twice on

“Input pins number” for 2 input pins 3

TM

External Use 44

Configure GPIO Driver Settings – Input SW2

Enter

“SW2”

Scroll Down if necessary and

select “Row #1” 1

Enter “SW2” in Pin 1 – Pin Field

Notice how remaining fields

are filled in and problems

related to pin are resolved.

3

2

TM

External Use 45

Configure GPIO Driver Settings – Input SW3

Scroll Down if necessary and

select “Row #2” 1

Enter “SW3” in Pin 2 – Pin Field

Notice how remaining fields

are filled in and problems

related to pin are resolved.

2

3

TM

External Use 46

Configure GPIO Driver Settings - Outputs

Scroll Back Up and

Select Tab

“Output pins”

1

CAREFUL: Click “+”

Three Times on

“Output pins number”

for 4 input pins

2

TM

External Use 47

Configure GPIO Driver Settings

Select row

“1”

Scroll

Down

TM

External Use 48

Configure GPIO Driver Settings

Enter

“LED_BLUE”

TM

External Use 49

Configure GPIO Driver Settings

Enter

“1”

TM

External Use 50

Configure GPIO Driver Settings

Select row

“2”

Enter

“LED_GREEN”

“1”

TM

External Use 51

Configure GPIO Driver Settings

Select row

“3”

Enter

“LED_RED”

“1”

TM

External Use 52

In the Component Inspector –

adjust “Period” to “1000 ms”Select

Configure PIT Driver Settings

Select “pitTimer1:fsl_pit” in Components View 1

2

TM

External Use 53

Configure UART Driver Settings

In the Component Inspector –

confirm PTB16 and PTB17 are set for RxD and TxD

Select “uartCom1:fsl_uart”

in Components View 1

2

Set “Baud rate” to “115200” 3

TM

External Use 54

Create a new project to blink the LEDs

• This hands-on lab shows you how to…

− Create a new project with the New Project Wizard

− Select & Configure Components

− Generate Code

− Import existing files

− Build the project

− Test the application’s functionality

• The lab uses the FRDM-K64F board

• The application will blink an LED periodically, and light

LEDs with button presses.

Next up!

TM

External Use 55

Generate Code with Processor Expert

In the Components View – Click on the “Generate Processor Expert Code” Icon 1

TM

External Use 56

Generate Code with Processor Expert

Code is then generated by Processor Expert for the components that have

been added and configured in the project

TM

External Use 57

Generate Code with Processor Expert

Expand

“Generated_Code”

folder in the Project

Explorer

The files in this folder contain

the initialization settings that

are provided to the KSDK

initialization routines.

TM

External Use 58

Generate Code with Processor Expert

main.c …

enough said…

Events.c contains the

ISR stubs for the

application

Expand

“Generated_Code”

folder in the Project

Explorer

Note: Go ahead and explore these files by double clicking on them and

use the “Editor View” to see how they are structured.

TM

External Use 59

Examine the Code

Expand the

edit window up

TM

External Use 60

Interrupt Routine: Blink the Green LED

Scroll down to

here

Open

Events.c

1

2

TM

External Use 61

Interrupt Routine: Blink the Green LED in PIT Timer ISR

TRICK: Drag & Drop “GPIO_DRV_TogglePinOutput”

to a point just after the “/* Write your code here … */”

Expand

“gpio1:fsl_gpio”

Open “Events.c” in Editor View 1

2

3

Add the parameter “LED_GREEN” to the

call – it should look like this when done

4

TM

External Use 62

Create a new project to blink the LEDs

• This hands-on lab shows you how to…

− Create a new project with the New Project Wizard

− Select & Configure Components

− Generate Code

− Import existing files

− Build the project

− Test the application’s functionality

• The lab uses the FRDM-K64F board

• The application will blink an LED periodically, and light

LEDs with button presses.

Next up!

TM

External Use 63

Importing Files

TM

External Use 64

Drag and Drop

Use Windows Explorer to navigate to:

..\Desktop\DWF KDS Class\Lab Code\Lab4_main.c

TM

External Use 65

Drag Lab4_main.c to Sources Folder

TM

External Use 66

Drag Lab4_main.c to Sources Folder

Click “OK”

Select “Copy Files”

1

2

TM

External Use 67

Open “Lab4_main.c” and “main.c”

Double-Click

“Lab4_main.c”

and “main.c”

1 Select “main.c”

for editing 2

TM

External Use 68

Add “Our” Code to main

Add declaration here

Add call here

TM

External Use 69

Check Point: Create a New Project to Blink an LED

• This hands-on lab shows you how to…

− Create a new project with the New Project Wizard − Select and setup High Level Components

− Generate Processor Expert Code

− Import existing files

− Build the project

Select the project

Clean

Build

− Test the application’s functionality

Next up!

TM

External Use 70

Building the Project: Clean

Select the project “Project4” 1 Select the “Project” menu 2

Select “Clean…” 3

TM

External Use 71

Building the Project: Clean

Click “OK” 1

TM

External Use 72

Building the Project: Clean

Clean complete…

TM

External Use 73

Building the Project

Right Click

On

“Project4”

1

Select

“Build Project”

2

TM

External Use 74

Building the Project

TM

External Use 75

A look at the code

TM

External Use 76

Examine main.c

PEx

#includes here

main.c

Hardware initializations

Your code goes here

Your declarations

here

TM

External Use 77

Examine events.c

Timer callback code goes here

TM

External Use 78

Examine Lab4_main.c

#includes copied from

ProcessorExpert.c

Declarations needed for our code

TM

External Use 79

Examine Lab4_main.c

Main loop – watch for switch presses

TM

External Use 80

Examine Lab4_main.c

Switch press

routines

Delay loop

Print routine

TM

External Use 81

Test the Application

• This hands-on lab shows you how to… − Create a new project with the New Project Wizard

− Select & Configure Components

− Generate Code

− Import existing files

− Build the project

− Test the application’s functionality

− Setup Debug Configuration

− Download the code

− Debug the code

• The lab uses the FRDM-K64F board

• The application will blink an LED periodically, and light LEDs with button presses.

Next up!

TM

External Use 82

Option 1: Pull-Down Next

to Bug icon then select

“Debug

Configurations…”

Prepare PEMicro Debug Configuration

Select “Debug Configurations…”

Two ways to get there…

3a

Option 2: Select:

“Run Debug

Configurations”

IMPORTANT: First, select project root “Project4” in Project Explorer 1

3b

- OR -

2

TM

External Use 83

Select Debug Configuration

1 Double-Click on “GDB PEMicro Interface Debugging”

Note: Project Binary and Project

name populated automatically

2

TM

External Use 84

Select OpenSDA PEMicro Interface

Select “Debugger” tab and expand “Interface:” Drop Down List

Select: “OpenSDA Embedded Debug – USB Port” from list 2

1

Note: “Port:” is Auto-Filled if

board connected 3

TM

External Use 85

Configure Debugger Options

Expand “Device Name:” Drop Down List

Select: “K64FN1M0M12” from list 2

1

Click “Apply” 3

TM

External Use 86

Launching Debugger

First time: “Debug” from Debug Configurations Dialog

NOTE: Next time, select from pull-down list on the Debug Icon

(ALWAYS SELECT FROM LIST)

1

TM

External Use 87

Configure Automatic Debug Perspective

As the debugger starts up, you will see the following dialog:

Check the “Remember my decision” box and click “Yes”

1

2

TM

External Use 88

Test the Application

• This hands-on lab shows you how to… − Create a new project with the New Project Wizard

− Select & Configure Components

− Generate Code

− Import existing files

− Build the project

− Test the application’s functionality

− Setup Debug Configuration

− Download the code

− Debug the code

• The lab uses the FRDM-K64F board

• The application will blink an LED periodically, and light LEDs with button presses.

Next up!

TM

External Use 89

Application Test: Debug Perspective

Console View Stack

Editor/Source View

Debug View

Variable View Stack

Breakpoint Disassembly

View

TM

External Use 90

Application Test: Single Step "Into"

Click “Step Into”

Editor moves

to this line

TM

External Use 91

Application Test: Single Step – Step Return

Editor moves back to next

executable line in main.c

Click “Step Return”

TM

External Use 92

Application Test: Single Step – Step Over

Click “Step Over”

twice

Instruction pointer advances to “sendstring…”

TM

External Use 93

Application Test: Run/Resume

UART “prints”

message to

Termite

Click “Resume”

TM

External Use 94

Application Test: Inspect Registers

Click “Suspend”

Expand “General

Registers”

1

Select “Registers” view 2

2

TM

External Use 95

Application Test: Inspect Registers

Changed registers

are highlighted

Click “Step Over”

TM

External Use 96

Application Test: Setting Breakpoints

Double click in column at location

to set breakpoint -

indicated with blue dot

TM

External Use 97

Application Test: Setting Breakpoints

Breakpoints can be disabled by un-checking

them in the “Breakpoints View”

… and re-enabled by checking the

associated box…

TM

External Use 98

Click “Reset target and restart debugging”

Application Test: Setting Breakpoints

Notice the program

stopped at the

Breakpoint

Click “Resume” 2 1

3

TM

External Use 99

Lab 4 Summary

• Using Processor Expert is an easy way to configure a

Kinetis MCU

• Adding SDK peripheral drivers with Processor Expert takes

care of all of the “under the hood” stuff and properly

includes files.

TM

© 2014 Freescale Semiconductor, Inc. | External Use

www.Freescale.com

Printed SEPT2014