You are on page 1of 120

Kinetis Microcontrollers

Portfolio Presentation
Gabriel Soccodato | DFAE Electrocomponentes S.A.
SASE 2014

TM

External Use

The Kinetis Concept


Kinetis is the branding for all ARM CortexTM-M based microcontrollers

Cores

Scalability

Freescale uses the


most advanced
cores from ARMs
offering:

CortexTM M4 for highest


computation performance

CortexTM M0+ for lowest power and


smallest packages

TM

External Use

Depending on their
capabilities they are
grouped to K10/KL1,
K20/KL2/KW20 etc.
In a family direct
scalability between
these groups is given

Families

Today, six Kinetis


families are
available. Kinetis L,
K, E, M and W series
are in production,
first Kinetis KV01 is
available and more
in will be in
production Q2 2014.

ARMv6-M
architecture

ARMv7-M
architecture

Kinetis Series powered by ARM Cortex


Cortex-M4

High performance data processing & I/O control.


Support hardware divide, MAC, bit field processing, DSP.
Floating point unit optional (Cortex-M4F).

Cortex-M3

High performance data processing & I/O control.


Support hardware divide, MAC (Multiply Accumulate) ,
bit field processing.

Cortex-M0+

General data processing, high performance I/O control,


mixed signal ASICs, replacement for 8/16-bit MCUs

Cortex-M0

General data processing, I/O control, mixed signal ASICs,


replacement for 8/16-bit MCUs

Cortex-M1

For FPGA designs only.


Optimized for FPGA and can work in most FPGA devices

TM

External Use

Kinetis
K Series

Kinetis
L Series

Kinetis MCU Families


more
more to
to
come in
come
in
Core2014
2014

K Series

L Series

E Series

M Series

W Series V Series

S08P

For all Series

General
Purpose

K70

EMC/ESD
Robust &
5V Supply

+ Graphic LCD

Lowest
Power/
Smallest
Package

Metering
24b Sigma
Delta ADC
& PGA

Wireless
Motor
Sub 1-GHz Control &
&
Power
2.4 GHZ Conversion

8-bit
Lowest
Price &
5V Supply

Feature Set

K60

+ Ethernet & Crypto

K50

+ Measurement

K40

+ USB and LCD


+ LCD
+ USB
Baseline

K30
K20
K10

KL3

KM3
KW2

KL2
KL1
KL0

Bridge to 8bit MCU

Core:

KL4

KM1

ARM Cortex-M0+

TM

External Use

KW0

KE0

ARM Cortex-M4

KV1
S08P
Freescale HC9S08

Kinetis Families

TM

External Use

Kinetis K Series

Design Potential. Realized


with ARM CortexTM-M4

www.freescale.com/kinetis/KSeries

TM

External Use

K Series: MCU Family Compatibility


Hardware & software compatible MCU families with scalable
performance, memory and feature integration

IIIIIIII

72-100MHz
64-512KB
64-144pin

IIIIIIII

IIIIIIII

TM

External Use

72-100MHz
64-512KB
64-144pin

IIIII

IIIII

I K30
I I IFamily
IIII

+ Segment
LCD
7

IIIII

IIIII

50-120MHz
32KB-1MB
32-144pin

I K40
I I IFamily
IIII

IIIII

IIIII

Entry
Point

72-100MHz
128-512KB
64-144pin

IIIIIIII

IIIIIIII

I K10
I I IFamily
IIII

I K50
I I IFamily
IIII

IIIII

50-120MHz
32KB-1MB
32-144pin

IIIII

IIIII

+ USB

+ Segment
LCD

+ Graphics LCD

IIIII

100-150MHz
256KB-1MB
100-256pin

IIIII

I K60
I I IFamily
IIII
IIIIIIII

I K20
I I IFamily
IIII

120-150MHz
512KB-1MB
196-256pin

IIIIIIII

IIIII

+ Ethernet, Encryption,
Tamper Detect,
DRAM Controller

IIIII

IIIII

I K70
I I IFamily
IIII

+ USB

+ Analog Measurement Engine,


Ethernet, Encryption

Kinetis K-Series: four Sub-Families available


120-150MHz,
Floating Point Unit,
128KB-1MB, 64-256pin

128KB-1MB Flash, 120-150MHz, FPU


128-512KB Flash, 100MHz

100MHz

64KB-256KB Flash, 72MHz

128-512KB, 80144pin

Feature Integration

32KB-512KB Flash, 50MHz

72MHz
64-256KB, 64-121pin
K50 Family (Medical)
Analog, USB, S. LCD, Ethernet,
Encryption

K60 Family
Ethernet, Encryption, USB

K70 Family
+ Graphics LCD
K60 Family
+ USB (HS), Tamper, NAND
Flash, DRAM

K50 Family (Medical)


Analog, USB, S. LCD,
Ethernet, Encryption
K40 Family
USB, Segment LCD

K40 Family
USB, Segment LCD
K30 Family
Segment LCD
K30 Family
Segment LCD

50MHz
32-512KB, 32-121pin

K20 Family
USB
K20 Family
USB

K20 Family
USB

K10 Family
+ NAND Flash
K10 Family
Mixed-Signal

K10 Family
Mixed-Signal

K10 Family
Mixed-Signal

TM

External Use

K20 Family
+ USB (HS),
NAND Flash

Kinetis L Series

Design Made Simple


with ARM CortexTM-M0+

www.freescale.com/kinetis/LSeries

TM

External Use

Kinetis L/K Series: MCU Family Compatibility

IIIII
IIIII

+ Segment
LCD

48MHz
8KB-32KB
<24-48pin

+ Segment
LCD

IIIII

IKL0x
I I I Family
IIII
IIIIIIII
TM

External Use

10

IIIII
IIIII

IIIII
IIIII

IIIIIIII
I K30
I I IFamily
IIII IIIIIIII
IKL3x
I I72-100MHz
I Family
IIII
IIIII
IIIII

I 32-80pin
IIIIIII
IIIIIIII

64-512KB
48MHz
64-144pin
128-256KB
64-121pin

IIIII
IIIII

IIIII
IIIII

IIIII
IIIII

I32-121pin
IIIIIII
I K10
I I IFamily
IIII IIIIIIII
I K40
I I IFamily
IIII
IKL1x
I I50-120MHz
I Family
IIII
IKL4x
I I72-100MHz
IFamily
IIII
32KB-1MB
48MHz
32-144pin
32KB-256KB

IIIII

IIIII
IIIII

32KB-1MB
48MHz
32-144pin
32KB-256KB

Entry
Point

8-bit MCU
Compatible

I K20
I I IFamily
IIII
IKL2x
I 50-120MHz
I IFamily
IIII

64-512KB
48MHz
64-144pin
64-256KB
64-121pin

IIIIIIII
IIIIIIII

+ USB

I K50
I I IFamily
IIII
72-100MHz
128-512KB
64-144pin

IIIII

IIIIIIII

+ Graphics LCD

IIIII

100-150MHz
256KB-1MB
100-256pin

IIIII

IIIII

I K60
I I IFamily
IIII

ARM
Cortex-M4

ARM
Cortex-M0+

120-150MHz
512KB-1MB
196-256pin

IIIIIIII

+ Ethernet, Encryption,
Tamper Detect,
DRAM Controller

+ USB

IIIII

IIIII

Hardware & software compatible MCU families with scalable


I K70
I I IFamily
IIII
performance, memory and feature integration

IIIIIIII

+ Analog Measurement
Engine, Ethernet,
Encryption

Kinetis L Series: Memory & Package Scalability

256KB

Package

Size (mm)

Pitch (mm)

MCU Families

Samples / Qual

16QFN

3x3x1

0.5

KL02

Apr2013 / Aug2013

KL3x

KL3x

4x4x1

0.5

KL05/KL04/KL02

20CSP

2 x 2 x 0.56

0.4

KL02

Q213 / Q413

25CSP

2.3 x 2.3 x 0.56

0.4

KL05

Proposed

KL2x

KL2x

35CSP

2.55 x 3 x 0.56

0.4

KL15/KL25

Q213 / Q313

KL1x

KL1x

KL4x

Segment LCD

Small Packages

General Purpose

Flash Memory

Entry Level

KL3x

KL2x

KL2x

KL2x

KL2x

KL2x

KL1x

KL1x

KL1x

KL1x

KL1x

KL2x

KL2x

KL2x

KL2x

KL1x

KL1x

KL1x

KL1x

KL2x

KL2x

KL2x

KL2x

KL1x

KL1x

KL1x

KL1x

KL0x

KL0x

KL0x
KL0x

64 LQFP

80 LQFP

32KB

KL0x

16KB

KL0x

KL0x

KL0x

8KB

KL0x

KL0x

KL0x

24 QFN

32 LQFP
/ QFN

16 QFN
TM

20
WLCSP

External Use
Small Footprint Package

11

35
WLCSP

48
LQFP
/QFN

Package

KL2x

KL3x

KL3x

KL0x

KL2x

KL4x

KL3x

USB

128KB

Flash Memory

KL4x

24QFN

USB + Seg. LCD

64KB

KL4x

Now / Now
Feb2013 / Jun2013

100 LQFP /
121 MBGA

Kinetis L Series vs. Kinetis K Series


Category

Kinetis L Series

Kinetis K Series

Core, Performance

ARM Cortex-M0+ (48MHz)

ARM Cortex-M4 (50-150MHz)

Flash

8-256KB

32KB-1MB

Features

Mixed-Signal, USB,
Seg. LCD

FlexMemory, Mixed-Signal, USB,


Seg. LCD, CAN, Ethernet, Gra. LCD,
DRAM, Crypto, Tamper Detect,
DRAM

Pin-count

16-121pin

32-256pin

Low Power

~50uA/MHz (VLPR)

~200uA/MHz (VLPR)

Price

From $0.49
(MKL02, 8KB, 16QFN)

From $0.99
(MK10, 32KB, 32QFN)

Target Applications

8 &16-bit replacement

Low/mid/highend 32-bit

TM

External Use

12

Kinetis E Series

Strong Robustness
High Efficiency
Low Cost
with ARM CortexTM-M0+

www.freescale.com/kinetis/ESeries

TM

External Use

13

Kinetis E selling points


1.

Better EMC Proven passing EFT(IEC61000-4-4)


/PSED(IEC61000-4-2) tests in a Microwave single layer PCB design

2.

High robustness 5V operation provides better noise immunity

3.

Reduce system cost No additional BOM for faster response


Bit-banging / SW emulation / Direct connection to LED drive circuit /
Over-Current and Voltage protection / Up to 256B EEPROM to save an
ext EEPROM chip

4.

Easy for PCB layout 0.8mm pin pitch for low cost PCBA assy
process

5.

Make platform design easier Pin compatible with KE and


S08P / Rich Eco-system / SW reusable / Save time to market

TM

External Use

14

Kinetis E Series: Master Block Diagram


System

Unique ID
Cortex M0+
48MHzM0+
Core Freq
Cortex
48MHz
NVICCore Freq
SWD

Clock Management

Flash
RAM
128KB RAM
16KB
Flash
128KB
16KB

Ext Osc
(4-24M,
Ext
Osc 32K)
(4-24M, 32K)
Int LP Osc
Int LP(1KHz)
Osc
(1KHz)

CRC
CRC

1-Cycle
BME(1)
WDT
NVIC
Debugger
1-CY MUL SWD
GPIO
1-Cycle
BME(1)
WDT
Debugger
1-CY MUL
GPIO

Int R/C OSC


(~32KHz
Int R/C
OSC 2%)
(~32KHz 2%)
FLL Clock
FLL Multiplier
Clock
Multiplier

Power Management
Single 2.7-5.5V Power Supply
Single 2.7-5.5V Power Supply
Power On
PowerReset
On
Reset

Low Voltage
Detector
Low Voltage
Detector

Peripheral Bus
Peripheral Bus

Analog Interfaces

Timers & Triggers

16ch 12bit ADC


with 8ADC
FIFO
16ch 12bit
with 8 FIFO

6ch + 2ch + 2ch


Timer(2)
6ch16bit
+ 2chFlex
+ 2ch
16bit Flex Timer(2)

3 x SCI (LIN capable)


3 x SCI (LIN capable)

2 x ACMP
2 x ACMP

1 x PWT
1 x PWT

2 x 8bit SPI
2 x 8bit SPI

8 pins
20mA
8 pins
20mA

2 pins True
Open-Drain
2 pins
True
Open-Drain

1 x 32bit PIT(2 ch)


1 x 32bit PIT(2 ch)

2 x IIC (1 x SMBUS)
2 x IIC (1 x SMBUS)

8 x KBI
8 x KBI

Reset/Input
Reset/Input

16bit Real Time Counter


16bit Real Time Counter

1 x msCAN
1 x msCAN

Display
28x4/24x8 Seg LCD
28x4/24x8 Seg LCD

(1)

Support bit operation in RAM

(2)

Faster timer running 2 x core clock

Pin compatible within 5V E-series on same package

Temp:

-40~105C operation
TM

External Use

15

Serial Interfaces

I/O Ports
Up to 71 GPIO
Up to 71 GPIO

16ch TSI
16ch TSI

80LQFP(0.65mm pitch);
64QFP (0.8mm pitch);
64LQFP(0.5mm pitch);
44LQFP (0.8mm pitch);
32LQFP (0.8mm pitch); 24QFN(0.65mm pitch);
20SOIC(1.27mm pitch); 16TSSOP(0.65mm pitch)

Kinetis E Series: MCU Families


Common Features

Optional Features
Key Features

System
ARM Cortex-M0+ Core, 48MHz [1]

Family

Speed

Flash

SRAM

KE06Z

48MHz

64-128KB

8-16KB

KE35Z

48MHz

16-32KB

2-4KB

KE05Z

48MHz

16-64KB

2-8KB

KE04Z

48MHz

8-128KB

CAN

Seg.
LCD

PWT

Fast
Timer

ADC

12-bit

12-bit

12-bit

12-bit

TSI

Multiple power modes, Clock Gating, 2.7V 5.5V


Operating Temp: -40 to 105C

Clock Management
External OSC, 4~20MHz, 32KHz
Internal OSC, 32KHz, 1KHz

Analog Peripherals

12-Bit ADC
Analog Comparators

Serial Interfaces
SCI
SPI, IIC

Timers
Real Time Clock

Production

KE02Z

Since 2013

KE02Z-40MHz

2014 Q2

KE04Z8
2-4KB

2014 Q2

KE06Z

2014 Q2

KE04Z

2014 Q2

16bit Flex timers


32bit Periodic Interrupt Timer
[1] 20MHz for KE02

KE02Z

TM

External Use

16

20MHz

1-16KB

Family

16-64KB

12-bit

Kinetis M Series

Highest Precision &


Security
with ARM CortexTM-M0+

www.freescale.com/kinetis/MSeries

TM

External Use

17

Kinetis M - Highest precision and security

Up to 48 MHz Cortex-M0+ with Ultra-Low-Power


Analog Front End
24-bit

sigma delta ADC with 94 dB SNR


Programmable gain amplifier with gains from 1 to 32 with low temperature drift
High precision internal voltage reference with low temperature drift

Security
Tamper

detection with time


stamping
Random number generator,
memory protection unit

Interfaces
LCD

segment driver up to 288


(8x36) segments
High accuracy RTC
+5 ppm over temperature range
4x UART, 2x SPI, 2x IIC

TM

External Use

18

Kinetis W Series

From Antenna to Bits


with ARM CortexTM-M0+ & CortexTM-M4

www.freescale.com/kinetis/WSeries

TM

External Use

19

Freescale Wireless Connectivity Strategy


To provide all wireless solutions (from antenna to bits) required for
control and monitoring applications in consumer, residential, metering,
medical and industrial applications.
Communications
Software

RF / MCU

Wireless Microcontrollers

All ISM frequency bands: 315 MHz, 434 MHz, 868 MHz, 915 MHz, 2.4 GHz

Scalable wireless protocol: From simple point-to-point lightweight


protocol, up to full ZigBee-compliant applications.

TM

External Use

20

Kinetis W ARM CortexTM-M & RF Transceiver

KW01
Up

to 48 MHz Cortex-M0+ with UltraLow-Power


RF transceiver supports 290-340 MHz,
424-510 MHz, and 862-1020 MHz
frequency bands

KW20
Up

to 50 MHz Cortex-M4 with 16channel-DMA


Highly integrated 2.4 GHz RF transceiver
802.15.4 Packet processor

TM

External Use

21

2.4GHz Protocol Stack Comparison


Feature

Typical
Applications

SMAC

SynkroRF

Cable
Replacement

Cable
Replacement

Wireless Toys
and Games

Wireless
Control

ZigBee
RF4CE

ZigBee
2007-PRO

RF Remote
Control
Home
Entertainment
and Control
Home
Automation

Home
Automation
Smart Energy 1.x
Building
Automation

ZigBee
IP

Smart Energy
2.0

Health Care
Network
Stack
Network Profiles
Memory
Requirements

Network
Topology

Typical #
of Nodes
Typical IC
Cost
Typical Data
Throughput

TM

No

Yes

Yes

Yes

Yes

No

No

Yes

Yes

Yes

4-8K

32K

<40K

80-100K

256K min

Point-to-Point

Co-existing
Star

Co-existing
Star

Tree

Tree

Star

Mesh

Mesh

2-100

32 per Controlled
Device

32 per Target
Device

2-250
ZigBee
2-1000
ZigBee Pro

IP limit

$1-2

$2-3

$2-3

$3-4

$4-5

70-100K

70-100K

30-70K

30-70K

50-115K

External Use

22

Sub-GHz Protocol Stack Comparison


Feature

23

SMAC

802.15.4g

Cable
Replacement

Wireless Meter
Reading

Typical Application

Building Control

Medical

IPv6

Wireless M-Bus

Internet of
Things
M2M

Wireless Meter
Reading (Europe)

Medical

Standard

Proprietary

IEEE 802.15.4

6lowPAN

EN 13757-4:2005

Network Stack

No

No

Yes

Yes

Network Profiles

No

No

No

No

Memory
Requirements

4-8K

32K

128K

16-32K

Point to Point

Peer-to-Peer

Network Topology

Tree

Star

Point-to-Point
IP

Mesh

Star

Typical # of Nodes

2-100

2-100

Not limited

2-100

Data Rate

200 Kbps

50-200 Kbps

1-600Kbps

32-100 Kbps

Protocol Stack
Provider

Freescale

3rd Party

3rd Party

3rd Party

TM

External Use

23

Kinetis V Series

Motor & Power Control


with ARM CortexTM-M0+ & CortexTM-M4

www.freescale.com/kinetis/VSeries

TM

External Use

24

Kinetis V Series: Motor & Power Control


Full Kinetis portfolio compatibility
targeting low cost, stand alone motor
control, to high performance digital power
conversion
Optimized for processing efficiency
with performance ranging from 75MHz to
beyond 200MHz
ARM architecture with best in class, high
speed capture and control peripherals
for motor control and power management
applications
Enablement and tools built around
reducing customer development time and
cost, whilst increasing ease of use.

TM

External Use

25

Kinetis V-Series: 3 Phase Motor Control


Entry Level
FOC Motor
Control

Integrated
Motor
Control
Solutions

Scalable
Mid Range
Motor
Control

High
Performance
Motor
Control

Multi
Ultra
Domain
Performance
Motor
Power
Control w/
Control w/
Comms
Comms

High
Performance
MC &
extended
memory

KVxx

+ ENET

KVxx

KVxx

+ HS ADC

KVxx

KVxx

+ Advanced Timers

KVxx

+ Dual Motor
Control

KVxx

+ FPU

KVxx

KV1x

KVxx

KVxx
KVxx

KVxx

KVxx

KV1x

Core:

KVxx

KVxx

+ USB

Baseline

KVxx

KVxx

+ Management Core

+ Integrated Motor
Control S/W

KVxx

ARM Cortex-M0+

ARM Cortex-M

ARM Cortex-M

Dual ARM Cortex-M

TM

External Use

26

KVxx
KVxx
KVxx
KVxx

KVxx
KVxx
KVxx
KVxx
KVxx

Kinetis V Series KV1x: Overview


Key Features:
Core/System
75MHz ARM CM0+ with 4ch DMA
H/W DIV & SQRT block
Memory
32KB Flash, 8KB SRAM
Communications
Multiple serial ports
Analog
2 x 8ch 16-bit ADC
835nS conversion time
1 x12-bit DAC,
2 x ACMP w/ 6b DAC
Timers
1x6ch FlexTimer (PWM)
2x2ch FlexTimer (PWM/QDEC)
Programmable Delay Block
Others
32-bit CRC
Inter-module Crossbar Switch
Up to 35 I/Os
1.71V-3.6V; -40 to 105C
Packages
32QFN, 32LQFP, 48LQFP
Pin-to-pin compatible with K series
From $1.18 to $1.37 at 10k units

ARM Cortex-M0+
75MHz
Debug
Interfaces

HW Divide &
SqrRoot

Interrupt
Controller

Security
and Integrity
Cyclic
Redundancy
Check (CRC)

Memories

System

Core

Internal and
External
Watchdogs

Program Flash
32KB

Clocks
SRAM
8KB

4ch-DMA

Low/High
Frequency
Oscillators

Inter-Module
Crossbar

Analog

Timers

2 x16-bit ADC

6ch
FlexTimer

2 x ACMP

2x2ch
FlexTimer

1 x12-bit
DAC

Programmable
Delay Block

FrequencyLocked Loop

Internal
Reference
Clocks

Communication Interfaces

1xI2C

HMI

GPIO

2xUARTs
1xSPI

Low-Power
Timer

A high performance, cost-optimized and best-in-class enabled 32-bit ARM


Cortex-M0+ MCU for
low/mid
range Brushless DC and FOC PMSM Motor Control
External Use
27
TM

Kinetis Differentiators

TM

External Use

28

Kinetis Key Differentiators in Technology

Security

Performance

Hardwareaccelerated
security
algorithms and
tamper
detection
Secure
communication
and safe
operation
Unique device
ID for tracing
and tracking

Non-blocking
bus-matrixswitch
K Series with
DSP extension
in all subfamilies
FLASH memory
controller
MPU/DMA

TM

External Use

29

Low Power

~50A/MHz for
Kinetis L
~200 A/MHz
for Kinetis K
Up to 11 flexible
power-modes
low-power
wake-up logic.
Supply voltage
from 1.71V to
3.6V, resp. 2.7V
to 5.5V

Mixed Signal

16-Bit ADCs
12-bit DACs,
High Speed
comparators
Programmable
Gain Amplifiers
Precision
Voltage
Reference

Special Features

Flex-Memory
up to 10M
erase/write
cycles
Touch-sensing
with API library
EEPROM with
Kinetis E Series
24b Sigma
Delta ADC in M
Series
RF transceiver
(sub-1GHz &
2.4GHz) in W
Series

Kinetis K/L Package Overview


CSP
20 CSP
35 CSP
36 CSP
2.0x2.0mm 2.4x2.4 mm 2.5x3.0mm
0.4mm pitch 0.35mm pitch 0.4mm pitch

(KL02)

(KL15/25)

(KL16/26)

42 CSP
2.9x2.8mm
0.4mm pitch

64 CSP
3.3x3.3mm
0.4mm pitch

100 CSP
4.6x4.8mm
0.4mm pitch

120 CSP
5.3x5.3mm
0.4mm pitch

142 CSP
4.8x5.6mm
0.4mm pitch

143 CSP
6.5x5.6mm
0.4mm pitch

169 CSP
5.6 x 5.5mm
0.4mm pitch

(KL1x/2x)

(K12/22)

(K10/20)

(K10/20/60)

(K24/64)

(K60/61)

(K60 2M)

LQFP

32LQFP
7 x 7 mm
0.8mm pitch

48LQFP
7 x 7 mm
0.55mm pitch

64LQFP
10 x 10 mm
0.5mm pitch

80LQFP
12 x 12 mm
0.5mm pitch

100LQFP
14 x 14 mm
0.5mm pitch

144LQFP
20 x 20 mm
0.5mm pitch

176LQFP
24 x 24 mm
0.5mm pitch

(K10/20)
(KL0x)

(K10/20)
(KL0x)

(K10/20/30/40/50)
(KL1x/2x/3x/4x)

(K10/20/30/40/50)
(KL1x/2x/3x/4x)

(K10/20/30/40/50/60)
(KL2x/3x/4x)

(K10/20/30/40/50/60)

(Kinetis X*)

QFN

16QFN
3 x 3 mm
0.5mm pitch

(KL02)

BGA

24QFN
32QFN
4 x 4 mm
5 x 5 mm
0.5mm pitch 0.5mm pitch

(KL0x)

(K10/20)
(KL0x/1x/2x)

48QFN
7 x 7 mm
0.5mm pitch

(K10/20)
(KL1x/2x)

TM

External Use

30

64 MAPBGA
5 x 5 mm
0.5mm pitch

121 MAPBGA
256 RCP
169 MAPBGA
8 x 8 mm
9 x 9 mm
9 x 9 mm
0.65mm pitch 0.5mm pitch 0.65mm pitch

144 MAPBGA
13 x 13 mm
1.0mm pitch

256 MAPBGA
17 x 17 mm
1.0mm pitch

(K10/20)
(KL1x*/2x*/
3x*/4x*)

(K10/20/30/
40/50/60)
(KL2x/3x/4x)

(K10/20/30/
40/50/60)

(K60/70)

(K61)

(K60)

Freescale Product Longevity Program

The embedded market needs long-term product


support
Freescale has a longstandingtrack record of
providing long-term production support for our
products
Freescale is pleased to introduce a formal product
longevity program for the market segmentswe serve
For

the automotive and medical segments, Freescale will


make a broad range of program devices available for a
minimum of 15 years
For all other market segments in which Freescale
participates, Freescale will make a broad range of
devices available for a minimum of 10 years
Life cycles begin at the time of launch

For terms and conditions and to see a list of


participating Freescale products available under this
program: www.freescale.com/productlongevity

TM

External Use

31

Kinetis Enablement

TM

External Use

32

Kinetis Enablement Overview


Kinetis MCU

Enablement
Freescale Bundle

ARM Cortex-M0+ Core


48MHz, 1.77 CoreMark/MHz,
2-Stage Pipeline, 1-Cycle GPIO,
Micro Trace Buffer

Hardware

Freedom board,
Tower Platform

ARM Cortex-M4 Core

50-150MHz, 3.40 CoreMark/MHz,


HW-divide, MAC, DSPcommands, FPU option

CodeWarrior, Processor
Expert, Driver Suite, eGUI,
PEG, FreeMASTER

ARM Eco System

Differentiators

Low-power, Performance, FlexMemory, Mixed-Signal, Security,


HMI Features

Special Functions

Analog Pre-Processing, 24bSigma Delta ADC, sub -1GHz &


2.4 GHz Transceiver

TM

External Use

Software

33

RTOS

MQX,
MQX Lite

Kinetis Development Hardware


Freedom Platform

Tower System

The new Freescale platform for


Kinetis L and Kinetis K
microcontroller

The established and proven


platform with highest flexibility
and re-usability

Compatible with Arduino


shields

Over 50 add-on boards


available.

Device Specific

Reference Designs

Evaluation boards addressing


special functions and
capabilities of Kinetis devices

TM

External Use

34

Home Energy Gateway, 1ph


Meter, 3ph Meter, pre-/postpaid Meter, Home Area
Network, Home Display,

Kinetis Development Software


IDE

RTOS

CodeWarrior eclipse-based

Basic, Standard,
Professional and Free Suite
with 128k code size limit

MQX - Free real-time operating


system with USB & Ethernet
stacks and file system

MQX Lite - Free and


lightweight RTOS for small
microcontrollers

Processor Expert/Driver Suite


configuration and code
generation tool

Middleware

Libraries & Tools

eGui Free and lightweight


graphic frame-work for small
microcontrollers
PEG - high performance, high
value tool for medium to high
end MCUs with a licence fee
associated

TM

External Use

35

FreeMaster - Real-time
monitor and control of an app

Math & Motor Control Lib Wide group of algorithms

Made For iPod - supports

development and rapid


prototyping of electronic
accessories for iPod, iPhone
and iPad devices

The ARM Eco System


Use the broad support for ARM microcontroller by many
companies.

Re-use your existing

GNU Tools

TM

External Use

36

MCU Solution Advisor web application


www.freescale.com/SolutionAdvisor
The Solution Advisor helps you quickly identify best-fit
processor solutions from the following portfolios:
8-bit MCU (microcontroller)
Kinetis K Series MCU
Kinetis L Series MCU
PX Series MCU
Freescale DSC (digital signal controller)
Interactive MCU selector guide
based on:
operating characteristics
packaging options
memory and FlexMemory
requirements
a library of configurable
hardware modules
Dynamic, sortable, downloadable solution matrix
Pin Muxing verification and suggested placement
(Full functionality will be restored soon)
Session and Contact Management
Save, restore, invite, and share
Generates session summary reports

TM

External Use

37

Freescale Cross Check App

Features:

Cross reference check of competitive solutions


10K budgetary resale pricing
Top parametric for comparison
Direct links to data sheets
Additional links for package and environmental information

TM

External Use

38

Industrial

Where you can find Kinetis designs today

Medical
Consumer

Blood Glucose
Analog & Low
Power

WiFi Gateway

AC Motor

E-Meter

Wireless Power

MQX & Memory

Performance & IP

Scalability & IP

Flexibility & SW

Smoke Detector

Money Counter

Gaming Mouse

Fitness Watch

Infusion Pump

BOM cost & Low


Power

Features &
BOM cost

Low Power &


USB

Features &
Timing

Tools & Support

Coffee Maker
Scalability &
Features

Air Bed Pump


Performance &
Peripherals

Card Reader

HVAC Control

Guitar Effect

Security & IP

ADC & Analog

NAND & Audio

TM

External Use

39

Energy Efficiency

KINETIS SERIES
DESIGN POTENTIAL. REALIZED

Ultra-Scalable

Markets most scalable


portfolio of low-power
ARM Cortex-M0+ and
ARM Cortex-M4 MCUs
with over 700 hardware
and software compatible
devices

Mixed Signal

Exceptional integration
with fast 16-bit ADCs,
DACs, PGAs and more.
Powerful, cost-effective
signal conversion,
conditioning and control

The worlds most energyefficient and scalable


MCU Series with power
optimized peripherals and
flexible power modes

Comprehensive Enablement
Freescale MQX RTOS, Tower System and Eclipse-based CodeWarrior IDE,
as well as Kinetis support from most ARM ecosystem providers

TM

External Use

40

Herraminetas SW

CW10.x (Hoy CW 10.6)


KDS+SDK (Hoy Beta 1.0.1)
PE
Eclipse+GCC

TM

External Use

41

SW asociado

MQX/MQX Lite
FreeRTOS
USB stack
KxxxxSC

TM

External Use

42

Concepto Freedom

OpenSDA: Open-Standard Serial And Debug Adapter


El circuito de debugging integrado, OpenSDA, brinda adems de debugger
puerto serie virtual.
El OpenSDA tiene un bootloader mass storage device, que proporciona un
mecanismo fcil y rpido para cargar diferentes aplicaciones a la interfaz
OpenSDA como; programadores de flash, debuggers, conersores serial-to-USB
y otros:
La interfaz de programacin de Freescale que usa mass storage device
elimina la necesidad de instalar herramientas para evaluar aplicaciones en
forma rpida
P&E Multilink: provee un debugger compatible con los diferentes IDEs
SEGGER OpenSDA: provee un debugger compatible con los diferentes
IDEs (JLINK Lite)
Interfaz mbed: provee debugger para las herramientas online con soporte
de virtual serial port, CMSIS-DAP, y mass-storage programming interface
CMSIS-DAP(stand alone): Nuevo estndar ARM para debugging
TM

External Use

43

FRDM-KL46Z
MKL46Z256VLLZ4 MCU (48 MHz, 256KB Flash, 32 KB RAM, Low power, 100LQFP)
Dual role USB interface with mini-B USB connector
Open SDA
4 digit segment LCD module
Capacitive touch slider
Ambient light sensor
MMA8451Q accelerometer
MAG3110 Magnetometer
2 user LEDs
2 user push buttons
Flexible power supply options USB, coin cell battery, external source
Battery-ready, power-measurement access points
Easy access to MCU I/O via Arduino R3 compatible I/O connectors
Programmable OpenSDA debug interface with multiple applications available
including:
o Mass storage device flash programming interface
o P&E Debug interface provides run-control debugging and compatibility with IDE tools
o CMSIS-DAP interface: new ARM standard for embedded debug interface
o Data logging application
Arduino R3 compatibility
TM

External Use

44

Kinetis L Series: KL46 Family Block Diagram


System
ARM Cortex-M0+ Core
Ultra-low power
48MHz bus freq.

Flash

RAM

128-256K

16-32K

Clock Management

Unique ID
COP

Debug
(SWD)

Crystal
Oscillator

LPO
(1KHz
)

RST

DMA 4-ch

LS Osc
(32KHz)

(low & high


range)

Voltage Regulator

Power On
Reset

ULP Osc
(4MHz)

PLL

FLL

Energy Management

Low Voltage
Detector

Peripheral Bus
Analog Interfaces
ADC (SAR w/ DMA)
12/16-bit, up to 16ch

12-bit
DAC

Operation in:

HSCMP

Run

Connectivity

Timers

SRTC

LPTMR

Temp. Compensated

Stop/
VLPS

Wait

Packages: 64LQFP, 100LQFP, 121MBGA

TM

External Use

UART
x2

16b LPTPM
6ch x1, 2ch x 2

PIT
2ch, 32bit

45

VLLS
3

LPUA
RTx1

Connectivity

IIS
x1

Up to 80 GPIO
(4 High Dive)
w/ 25 interrupt

USB FS/LS
Transceiver

SPI x 2

USB Controller

I2C x 2

V Regulator

VLLS
1

I/O Ports

VLLS
0

TSI x
16ch

HMI
Segment LCD
51x8/55x4

RST/
Input

Volvemos a FRDM-KL46Z

TM

External Use

46

OpenSDA

TM

External Use

47

Ejemplo 1
Demo de KL-46Z

TM

External Use

48

Ejemplo 1 - Demo de KL-46Z


1-Saque la placa FRDM de su caja
2-Conecte el cable USB mini a su PC
3-Probablemente sea necesario instalar el driver del adaptador serie.
En tal caso; siga los pasos para instalar driver de dispositivo USB en
Windows, elija la opcin Instalar automticamente

TM

External Use

49

Ejemplo 1 - Demo de KL-46Z


4-Verificar en el panel de
control el puerto COM en
el que se ha instalado el
puerto serie virtual CDC
del OpenSDA.
5-Abrir la terminal una terminal
de puerto serie. En nuestro caso
contamos con putty que est
en la ruta siguiente:
Escritorio\Workshop
Aplicaciones con Cortex M de
Freescale\Terminal\hercules.exe

6-Seleccione la configuracin para el puerto serie para que trabaje a


115200,8,N,1 y abra el puerto indicado para este driver

TM

External Use

50

Ejemplo 1 - Demo de KL-46Z


7-Probar las prestaciones de la placa de acuerdo con la siguiente descripcin
comenzando por presionar el botn de reset

TM

External Use

51

Ejemplo 1 - Demo de KL-46Z


8-Verifique la informacin que se muestra en el puerto serie.
9-Que significan los datos?

TM

External Use

52

Ejemplo 2 OpenSDA como bootloader MSD

TM

External Use

53

Ejemplo 2 OpenSDA como bootloader MSD


1-Busque en un administrador de archivos el disco extrable FRDM-KL46Z.

2-Busque la carpeta con las aplicaciones pre-compiladas


Escritorio\FRDM_KL46Z_QSP\FRDM-KL46Z_QSP\Precompiled
Examples\
5-Copie de esta carpeta y pegue en el disco extrable, las aplicaciones de la
carpeta de arriba: freedom_red_led_freedom.srec,
freedom_green_led_freedom.srec y sLCD_freedom_freedom.srec
6-Vea feedback por la terminal de puerto serie

TM

External Use

54

Ejemplo 3 Bootloader del Bootloader


Cambiando la funcionalidad de la interfaz
OpenSDA

TM

External Use

55

Ejemplo 3 Bootloader del Bootloader


1-Desconecte la placa del USB
2-Presione botn de reset
3-Conecte USB con botn de reset presionado
4-Suelte botn de reset
5-Aparecer un nuevo disco extrable (BOOTLOADER)
6-Ir a la carpeta: Escritorio\FRDM_KL46Z_QSP\FRDM-KL46Z_QSP\OpenSDA
Applications\
7-Programar copiando y pegando en el disco extrable la aplicacin
DEBUG-APP_Pemicro_v108.SDA

TM

External Use

56

Ejemplo 3 Bootloader del Bootloader


8-Desconectar USB y volver a conectarlo
9-Instalar los drivers (Pide dos drivers, CDC y Debugger)
10-Debe quedar instalado el debugger y el CDC como se ve debajo
11-Tomar nota del nmero de puerto serie virtual
12-Modificar en la terminal para conectarse al puerto serie virtual
nuevo, si este ha cambiado

TM

External Use

57

Ejemplo 4 Mi Primer Proyecto con CodeWarrior

TM

External Use

58

Ejemplo 4 - Creacin del Proyecto


1-Abrir CodeWarrior: Inicio->Programas->Freescale->Freescale
CodeWarrior->CW for MCU v10.6->CodeWarrior

2-Especificar Workspace. El workspace es una carpeta que contener los proyectos. Se puede
especificar cualquier nombre para esta carpeta y se puede tener muchas distintas. Presionar
ok.

TM

External Use

59

Ejemplo 4 - Creacin del Proyecto


3-Se debe abrir el Workbench del CW que
nos permitir trabajar con nuestros
proyectos.

4-En CodeWarrior workbench, ir a


[File -> New -> Bareboard Project]

5-Ingrese el
nombre del
proyecto, por
ejemplo
primerEj4KL46 y
haga click en
[Next].
TM

External Use

60

Ejemplo 4 - Creacin del Proyecto


6-Con la ventana de seleccin del
MCU, en la lnea [Device or board
to be used], ingrese el MCU KL46
y elija el target final MKL46Z256
de la lista, luego haga click en
[Next]

7-En la ventana Connections


elegimos [OpenSDA]y [Segger JLink/J-Trace/SWO(SWD)based] y
hacemor click en [Next]

TM

External Use

61

Ejemplo 4 - Creacin del Proyecto


8-En la ventana Language and Build
Tools Options deje todo en estado
default. Revice que el lenguaje is [C]
y que se halla est tildada la opcin
[Software] en Floating Point, no hay
hardware floating point unit (FPU) en
los Kinetis L.
Nota: A partir de CodeWarrior 10.3
el soporte para Kinetis L lo da el
compilador GCC, el que est
seleccionado como se ve como
[GCC]. Continua haciendo click en
[Next].

TM

External Use

62

Ejemplo 4 - Creacin del Proyecto


9-Deje las opciones por default y
haga click en [Finish].

El CodeWarrior crear el
proyecto y har todos los seteos
necesarios agregando la
estructura de directorios y los
archivos requeridos.

TM

External Use

63

Ejemplo 4 Compilando
10-Hacemos doble click sobre main.c para ver el cdigo en el editor,
main.c est dentro de la carpeta source del proyecto que podemos
ver en la venta CodeWarrior Projects.
11-Compilamos el proyecto haciendo click sobre el martillo

Nota 1: si hay errores en la compilacin


los podemos ver en la ventana Problems
Nota 2: los resultados y la
realimentacin del proceso de
compilacin lo podemos ver en la
ventana Console
TM

External Use

64

Ejemplo 4 Descargando
12-Descargamos el proyecto al MCU haciendo click sobre el escarabajo

Nota: la primera vez que se intenta descargar un proyecto, es necesario


decirle al IDE que target descargar. Si la accin provoca el siguiente
mensaje:

12.1-Hay que configurar el target para hacer la descarga.


Lo podemos hacer desplegando el nem asociado al escarabajo.
12.2-Hacemos click en [Debug Configurations...]

TM

External Use

65

Ejemplo 4 Descargando

12.3-Desplegamos las opciones debajo de CodeWarrior y hacemos


click en primerEjKL46_FLASH_OpenSDA. Presionamos [Debug]
Nota: este procedimiento no ser necesario en cuando volvamos a
descargar el proyecto.
TM

External Use

66

Ejemplo 4 Debuggeando

13-La perspectiva de debugging se abrir automticamente. Probamos los


diferentes controles de debugging para familiarizarnos
14-Cerramos la sesin al terminar presionando el botn de stop y volvemos al
editor
TM

External Use

67

Ejemplo 4 Usando CW con KL46_SC


15-Volvemos a la perspectiva de edicin

16-Repetimos los pasos


los pasos del ejemplo 3
para cambiar la
funcionalidad de la interfaz
OpenSDA. Desconectamos
el Freedom de USB y lo
volvemos a conectar con el
reset presionado. Luego
soltamos el reset.
17-Copiar y pegar en el disco BOOTLOADER la aplicacin siguiente:
c:\Documents and Settings\Administrador\Escritorio\Workshop
Aplicaciones con Cortex M de Freescale\FRDM-KL46Z_QSP\OpenSDA
Applications\JLink_OpenSDA.sda
TM

External Use

68

Ejemplo 4 Usando CW con KL46_SC


18-Desconectar la Freedom del USB y volver a conectarlo. Si nos pide
instalar drivers, procedemos como lo hacemos habitualmente en
Windows.
19-Verificar que la herramienta est oinstalada correctamente en el
Administrador de dispositivos de Windows

http://www.segger.com/opensda.html

Licensing

SEGGER created a firmware which runs on the Freescale OpenSDA platform, making it JLink compatible. In order to make use of this firmware, the following Terms Of Use must be
accepted:The firmware is only to be used with Freescale target devices. Using it with other
devices is prohibited and illegal.
The firmware is for use with evaluation boards only. It is not for use with custom hardware.
The firmware may only be used for development and/or evaluation purposes. It may not be
used for production purposes.
The firmware is made available without any warranty and without support.
TM

External Use

69

Ejemplo 4 Usando CW con KL46_SC


20-Compilamos y descargamos la aplicacin nuevamente, repitiendo los
pasos 11 y 12, pero ahora ante el cuadro de dialogo que nos pide elegir
la herramienta seleccionamos platinum_FLASH_Segger J-Link_Trace.
Aceptar las condiciones de licencia de Segger.

21-Debuggear la aplicacin.
22-Finalizar la sesin de debugging
y volver a la perspectiva de edicin.
23-Reestablecer el debugger de
P&E siguiendo los pasos 1 a 8 del
Ejemplo 3

TM

External Use

70

Ejemplo 5 Agregamos control de GPIO a mamo

TM

External Use

71

Ejemplo 5 Configuracin de puertos


Cada pin tiene un registro PCR (32-bit) dedicado.
Ejemplo.: En nuestro MKL46 de 100 pines, Pin 26 corresponde con
PORTE bit 29 tiene el registro asociado PORTE_PCR29, en el que
puedo configurar solo para este pin :

Interrupt flag (w1c )


Interrupt configuration : int/dma, edge/level, low/high, rising/falling/both
Mux control : can select Disabled (analog) or Alternate function Alt1 -> Alt7
Drive Strenght low/high
Open drain yes/no
Slew Rate : fast/slow
Pull Resistor Enable : yes/no, pull-up or pull-down
Passive filter enable : optional passive lowpass filter (10-30MHz BW )

Los seteos configurados en PCR siempre tienen afecto, sin


importar que mdulo se conect al pin a travz del MUX
TM

External Use

72

Configuracin de puertos Clock Gating

TM

External Use

73

Configuracin de puertos PIN MUX PORTx_PCRxx

TM

External Use

74

Configuracin de puertos - Control del puerto

TM

External Use

75

Configuracin de puertos - Ejemplo


Habilito el clock
// Habilitacin de clock para GPIO
SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK
| SIM_SCGC5_PORTB_MASK
| SIM_SCGC5_PORTC_MASK
| SIM_SCGC5_PORTD_MASK
| SIM_SCGC5_PORTE_MASK );
Habilito pin como GPIO
PORTE_PCR29 = (PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK);
Seteo valor inicial
GPIOE_PSOR = (1<<29);
Lo configuro como salida
GPIOE_PDDR = (1<<29);
TM

External Use

76

Ejemplo 5 Manejo de GPIO


1-Importamos las fuentes que nos
permiten manejar las GPIO al
proyecto anterior.
2-Parados sobre la carpeta
Sources del proyecto, hacemos
click con el botn derecho y
elegimos Import
3-Desplegamos [General] y
elegimos [File System], luego
presionamos [Next].

TM

External Use

77

Ejemplo 5 Manejo de GPIO


4-Elegimos [Browse].
5-Navegamos hasta Escritorio\Workshop
Aplicaciones con Cortex M de
Freescale\Fuentes de Ejemplo\Ej5\ y
presionamos [Aceptar].
6-Desplegamos [General] y elegimos
[File System], luego presionamos
[Next].
7-Tildamos gpio.c y gpio.h y presionamos
[Finish].
8-Editamos la funcin main para hacer
parpadear los leds que estn el PTD5 y
PTE29.
9-Compilamos y descargamos el
programa al MCU.

TM

External Use

78

Ejemplo 5 Manejo de GPIO


10-Se ven los leds parpadear?
11-Qu debemos hacer para que se vean parpadear?
12-Cmo lo haramos de manera ms elegante?
13-Cmo puedo hacer para controlar la frecuencia de
parpadeo?

TM

External Use

79

Ejemplo 6 GPIO+Systick

TM

External Use

80

Systick
Timer de 24-bits que est en el core, cuente en forma descendente desde el valor de
recarag a cero. Cuando llega a cero, se recarga con el valor almacenado en el registro
SYST_RVR y sigue contando. Permanece detenido cuando el debugger encuentra un
breakpoint.
Este timer lo comparten todos los Cortex M de ARM independientemente del fabricante
porque forma parte del core como el NVIC. Sus registros se encuentran en las mismas
posociones en todos los MCUs

TM

External Use

81

Systick

TM

External Use

82

Ejemplo 6 GPIO+Systick
1-Importamos las fuentes que nos
permiten manejar el Systick
2-Navegamos hasta Escritorio\Workshop
Aplicaciones con Cortex M de
Freescale\Fuentes de Ejemplo\Ej6\ y
presionamos [Aceptar].
3-Desplegamos [General] y elegimos [File
System], luego presionamos [Next].
4-Tildamos SysTick.c y SysTick.h y
presionamos [Finish]. La carpeta
Sources del proyecto debe quedar como
indica la figura

TM

External Use

83

Ejemplo 6 GPIO+Systick
6-Agregamos acceso a las funciones de Systick en
main.c
7-Inicializamos Systick para interrumpir cada 1ms
8-Compilamos y descargamos el programa.
9-Colocamos un breakpoint en la lnea indicada dentro
de la rutina de interrupcin del Systick y corremos el
programa para ver si el Sistick est operativo
10-Cmo hacemos para que el Systick controle la
conmutacin del led en el loop principal de programa
y que esta sea cada 1s? De este modo podemos
prescindir de la demora por software que usamos.
11-El parpadeo es cada 1s?Porqu?

TM

External Use

84

Ejemplo 6 GPIO+Systick
12-Repita los pasos 1 a 4
para importar oscilador.c y
oscilador.h

13-Agregamos acceso a las funciones de


oscilador en main.c
14-Inicializamos el oscilador
15-Compilamos y descargamos el
programa.
16-Cul es la frecuencia parpadeo?

TM

External Use

85

Ejemplo 7 Usamos los ejemplos de Freescale

TM

External Use

86

Ejemplo 7 Usando CW con KL46_SC

1-Cerramos el proyecto
anterior.
2-Importamos un proyecto
de ejemplo del paquete
KL46_SC, para esto vamos
a File->Import
3-Seleccionar General>Existing Projects into
Workspace y presionamos
Next

TM

External Use

87

Ejemplo 4 Usando CW con KL46_SC


4-Presionar [Browse] para
buscar el proyecto segn indica
la figura
5-Presionar [Aceptar]

6-Asegurarse que el tilde Copy Projects into


Workspace no est seleccionado. Presionar
[Finish]

TM

External Use

88

Ejemplo 4 Usando CW con KL46_SC


7-Hacemos doble click sobre paltinum.c

TM

External Use

89

Ejemplo 4 Usando CW con KL46_SC


7-Compilamos la aplicacin haciendo click sobre el martillo

8-Si no hubo errores, descargar la aplicacin presionando el


escarabajo

9-Elegir platinum_FLASH_OpenSDA, que es nuestra herramienta

TM

External Use

90

Ejemplo 4 Usando CW con KL46_SC


10-Probar controles de debugging
11-Verificar mensaje en la terminal serie

12-Volvemos al editor y cerramos el proyecto


TM

External Use

91

Ejemplo 8 Proyecto nuevo y manejo de GPIO


con KL46_SC

TM

External Use

92

Clonando proyecto platinum


1-Ejecutar Escritorio\Workshop Aplicaciones con Cortex M de
Freescale\kinetis_kl46_sc_rev2\klxx-sc-baremetal\build\cw\
make_new_cw_project.exe

2-Ingresar nombre del proyecto y presionar Enter. EL nombre del


proyecto puede ser Ej8KL46

3-Presionar Enter para cerrar el script.


TM

External Use

93

Estructura Necesaria del Proyecto Clonado


El proyecto nuevo se ha creado de forma
compatible con la estructura de proyectos
del paquete KL46_SC que tiene soporte
para gran cantidad de perifricos del MCU
y para las plataformas de desarrollo como
la FRDM que estamos usando.

Vemos el proyecto creado.


Ahora necesitamos copiar algunas fuentes
porque el proyecto qued configurado para
buscarlas en la ruta indicada en la figura de
la izquierda. Todas las fuentes estn en la
carpeta src; las comunes, los drivers y las
aplicaciones y fuentes propias de cada
proyecto.
TM

External Use

94

Importando el nuevo proyecto


1-Importamos el nuevo proyecto repitiendo
los pasos 2 a 6 del proyecto anterior
2-Intentamos abrir las fuentes creadas por
default en el proyecto, obtendremos el
mensaje de error que se muestra en la
pantalla. Esto sucede porque el proyecto es
un clon del proyecto base platinum, que
probamos en el ejemplo anterior, y no sus
fuentes.

TM

External Use

95

Importando las fuentes necesarias


3-Borramos las fuentes de la carpeta project
4-Creamos una carpeta con el nombre del proyecto
dentro de la ruta siguiente Escritorio\Workshop
Aplicaciones con Cortex M de
Freescale\kinetis_kl46_sc_rev2\klxx-scbaremetal\src\projects\
5-Copiamos all las fuentes de la carpeta
Escritorio\Workshop Aplicaciones con Cortex M de
Freescale\Fuentes de Ejemplo\Ej8\
6-Importamos a project las fuentes de la carpeta
anterior
La carpeta
project debe
quedar como
indica la
figura de la
derecha

Nota: No debe
tener el tilde en
Overwrite
existing

TM

External Use

96

Compilando el proyecto
7-Si hacemos click sobre el nombre del
proyecto para resaltarlo y luego presionamos
el botn derecho, al abrirse el men elegimos
Clean Project para eliminar archivos
generados que pueden hacer fallar la
compilacin
8-Compile el proyecto seleccionando
Project Build Project o click en el
cono del martillo

9-Debuggeamos el proyecto
presionando el cono del
escarabajo
10-Probamos la funcionalidad del
proyecto anterior
TM

External Use

97

Agregando cdigo
8-Cerramos la sesin de
debugging.
9-Editamos platinum.c:
Agregamos
#include GPIO.h
Agregamos
gpio_init();
Modificamos el lazo principal
para que quede:
LED1_OFF;
LED2_OFF;
ch =in_char();
LED1_ON; LED2_OFF;
out_char(ch);LED1_OFF;
LED2_ON;
10-Compilamos y
debuggeamos paso a paso
la aplicacin

TM

External Use

98

Problema
11-Nos encontramos con un
problema; si no
debuggeamos por pasos no
vemos los leds.
Cmo lo resolvemos?
Modificamos agregando
demoras y volvemos a
compilar y debuggear pero
ahora haciendo correr el
programa
12-Probamos los cambios y
cerramos la sesin de
debugging y el proyecto
13-Cerramos la sesion de
debugging, volvemos al
editor y cerramos el
proyecto.

TM

External Use

99

Ejemplo 9 - PE

Programaremos un LED con una frecuencia fija de blinking


LEDs Rojo y Verde

KL46Z
256VLL4

TM

External Use

10
0

PTD5(ROJO)
PTE29/TPM0_CH2(VERDE)

Concepto
Hay muchas formas de hacer parpadear un LED.
Usaremos un PWM lento para cambiar el estado del pin de I/O.
Usaremos CW10.6 y Processor.
Necesitamos los componentes siguentes de PE:

CPU

(Cpu:MKL46Z256VLL4), setear oscilador externo y habilitar el

PLL.
Timer Unit (TimerUnit_LDD), en modo PWM para generar una seal
de blinking lenta.

TM

External Use

10
1

Componentes Cpu:MKL46Z256VLL4

Es el componente bsico del


proyecto, es agregado en
forma automtica.
La CPU, el PLL, etc. son
motorizados por el
Multipurpose Clock Generator
(MCG), y este asu vez por el
oscilador externo (OSC).

TM

External Use

10
2

Clock del Sistema

CPU
48 MHz
96 MHz
Bus 24 MHz
TPM 48 MHz
8.0 MHz

TM

External Use

10
3

Configuracin de Componente Cpu:

Propiedades
System

oscillator 0:
enabled
- switch osc on
Clock source: External crystal - use crystal
Clock frequency:
8.0
- crystal frequency
MCG mode:
PEE
- enable PLL mode
PLL output:
96.0
- set PLL frequency
Core clock:
48.0
- set CPU frequency
Bus clock:
24.0
- set bus frequency

Methods
none

Events
none

TM

External Use

10
4

Componente: TimerUnit_LDD (TPM-Mode)

Basado en Timer/PWM Module (TPM)


El TPM est hecho en base al
timer simple de los MCU de o bits
de Freescale (HCS08 Timer PWM
Module TPM). El TPM funciona
en los modos de bajo consumo

TM

External Use

10
5

Funcionalidad del Timer

Counter value

El contador del TPM0 cuenta con un perodo de 175ms configurado como


Period value.
Cuando el contador alcanza el valor Compare del canal 0 configurado en
80ms setea la salida. Cuando el contador se reinicia, la salida se resetea.

Counter period

Channel 0
offset value

Time

TMP0_CH1 output
pin state (LED)

TM

External Use

10
6

Configuracin de Componente TimerUnit_LDD


blinking LED demo

Propiedades
Counter:

TPM0_CNT- Timer/PWM Mode


Counter frequency: 375 kHz
- set input frequency
Overrun period: 174.763 ms- set PWM frequency
Channel list:
1 - use one channel
Mode: Compare
- channel is compare
Compare: TPM0_C1V - compare register
Offset: 80 ms - ~50% duty cycle
Output on compare:Set - behavior on compare
Output on overrun: Clear - behavior on overrun
Output pin: ADC0_SE5b/PTD1/
Auto initialization: yes - called from the CPU

Methods
none

Events
none
TM

External Use

10
7

Creacin del Proyecto


1-En CodeWarrior workbench,
ir a [File | New | Bareboard
Project].

2-Ingrese el nombre del proyecto,


por ejemplo KL46Z-PE_Lab1 y
haga click en [Next].

3-Con la ventana de seleccin del


MCU, en la lnea [Device or board
to be used], ingrese el MCU KL46
y elija el target final MKL46Z256
de la lista, luego haga click en
[Next]

TM

External Use

10
8

Creacin del Proyecto


4-En la ventana Connections
elegimos [OpenSDA]y [Segger JLink/J-Trace/SWO(SWD)based] y
hacemor click en [Next]
5-En la ventana Language and
Build Tools Options deje todo en
estado default. Revice que el
lenguaje is [C] y que se halla est
tildada la opcin [Software] en
Floating Point, no hay hardware
floating point unit (FPU) en los
Kinetis L.
6-A partir de CodeWarrior 10.3 el
soporte para Kinetis L lo da el
compilador GCC, el que est
seleccionado como se ve como [GCC].
Continua haciendo click en [Next].
TM

External Use

10
9

Creacin del Proyecto


7-En la ventana Rapid Application
Development eleja [Processor Expert] y
deje [Use current perspective]. Elija
[Standalone]en Project Mode y go haga
click en [Finish].

El Processor Expert crear el


proyecto y har todos los
seteos necesarios agregando
la estructura de directorios y
los archivos requeridos, esta
estructura se puede ver en
ProcessorExpert.pe en la
carpeta de proyecto.

TM

External Use

11
0

Configuracin de los Componentes


8-Abra la vista de Processor Expert
seleccionando Processor Expert Show
view:
9-Seleccione la CPU en la ventana
Components, como se muestra debajo
10-Elegir vista avanzada

11-Configuramos el oscilador como


se muestra en la imgen siguiente
del Component Inspector

TM

External Use

11
1

Configuracin de los Componentes

Las lneas en rojo indican errores producidos por seteos que no pueden
lograrse.
Los cambios que debemos hacer respecto del default son los siguientes:
System Oscillator 0: Enabled
Clock Frequency: 8MHz
MCG Mode: PEE
PLL module: Enabled
PLL output: 96MHz
Core Clock: 48MHz
BUS Clock: 24MHz
Al terminar los seteos, todos los errores deben desaparcer quedando todo
el texot en negro.
TM

External Use

11
2

Configuracin de los Componentes


12-Abrir Component Library y
seleccione y arrastre
TimerUnit_LDD de
Components Library a
Components view del
proyecto:

13-Renombre el componente
TimerUnit_LDD de TU1 a
PWMTimer usando el botn
derecho para abrir el men de
contextocomo se muestra
debajo:

TM

External Use

11
3

Configuracin de los Componentes


14-En el Component Inspector de [PWMTimerB/ Properties] setee los
siguientes valores (Cambie a la vista a Advanced o Expert ):
15-Se debe elegir el pin de
salida, en nuestro caso
PTE29 y cambiar la
seleccin de compare a
TMP0_C2V.
Cambios:
1. Counter: TMP0_CNT
2. Counter Frequency: 375kHz
3. Overrun Period:
174,762667ms
4. Channel List: 1
5. Mode: Compare
6. Compare: TPM0_C2V
7. Offset: 80ms
8. Output on compare: Set
9. Output on overrun: Clear
10. Initial State: Low
11. Output pin Signal: PTE29
12. Autoinitialization: yes
TM

External Use

11
4

Configuracin de los Componentes


16-Ahora hay que ejecutar el generador de
cdigo de Processor Expert (PEx)
presionando generate button en
Components view:

17-Para simplificar la vista, reseteamos la vista de la perspectiva actual


usando el menu [Window Reset Perspective]

TM

External Use

11
5

Cdigo Fuente
18-Luego de la generacin de cdigo, el
proyecto tiene nuevos archivos que
pueden verse en CodeWarrior Projects.
Abrir el archivo Source\main.c con dobleclick en l. Se abrir en el editor.
19-En el editor de main.c
exploremos la funcin main(void).

La funcin PE_low_level_init()
inicializa todos los drivers de
bajo nivel generados por
Procesor expert y tambin el
componente PWMTimer.

TM

External Use

11
6

Compilar y correr el proyecto


20-Compile el proyecto seleccionando
Project Build Project o click en el
cono del martillo

21-Conecte el cable USB a la placa

22-Comience la sesin de debugging haciendo


click en el botn de debug, compilar y
linkear todo el proyecto. Dependiendo de la
configuracin del debugger, elija el que
correspondapara FRDM-KL46Z board. Puede
ser OpenSDA o Segger J-Link. El debugger de
CodeWarriors comenzar la descarga del
binario ejecutable a la Flash del MCU target.
TM

External Use

11
7

Compilar y correr el proyecto


23-Luego de que finalice la descarga, la vista de la
pantalla cambiar a la perspectiva de Debug. Si no
cambia, cambiela usted haciendo click en el botn
Debug como se muestra en la figura
24-Comience la ejecucin de la aplicacin
presionando [F8] o el cono Resume
El LED rojo de la FRDM-KL46Z
comenzar a parpadear.
Estamos generando una seal
PWM de 5.7 Hz con un duty
cycle de aprox. 50%.
Nota: El duty cicle de la seal
podr cambiarse con el offset en
PWMTimer.
25-Probar que pasa cambiandolo

TM

External Use

11
8

Variante

Los LEDs de la placa estn conectados del modo siguiente:


LED

ROJO a PTE29/TMP0_CH2
LED VERDE a PTD5/TPM0_CH5

25-Agregue al componente PWMTimer el canal del LED VERDE


para hacer lo mismo que hicimos pero con ambos LEDs.
26-Modifique el ejercicio anterior para que el comportamiento de
los LEDs sea inverso.

TM

External Use

11
9

Muchas gracias
TM

www.Freescale.com

2014 Freescale Semiconductor, Inc. | External Use

You might also like