5. TM
4
Analog Interfaces
System
Peripheral Bus
Energy Management
Power On
Reset
Low Voltage
Detector
Voltage Regulator
Clock Management
FLL
Timers
SRTC
Temp. Compensated
I/O PortsConnectivity
I2C x 2
12-bit
DAC
HSCMP
Flash
128-256K
RAM
16-32K
Debug
(SWD)
COP
RST
Unique ID
DMA 4-ch
TSI x
16ch
Up to 80 GPIO
(4 High Dive)
w/ 25 interrupt
LPO
(1KHz)
RST/
Input
LPTMR
Crystal
Oscillator
(low & high
range)
16b LPTPM
6ch x1, 2ch x 2
SPI x 2
ADC (SAR w/ DMA)
12/16-bit, up to 16ch
RunOperation in: Wait
VLLS
1
VLLS
0
Stop/
VLPS
VLLS
3
UART
x2
Connectivity
USB FS/LS
Transceiver
V Regulator
HMI
PLL
ARM Cortex-M0+ Core
Ultra-low power
48MHz bus freq.
Packages: 64LQFP, 100LQFP, 121MBGA
LPUA
RTx1
IIS
x1
USB Controller
PIT
2ch, 32bit
KL46 Family Block Diagram
LS Osc
(32KHz)
ULP Osc
(4MHz)
Segment LCD
51x8/55x4
KL46Z256
6. TM
5
Kinetis KL46Z256VLL4 Features
• Operating Characteristics
− Voltage range: 1.71 to 3.6 V
− Flash write voltage range: 1.71 to 3.6 V
− Temperature range (ambient): -40 to 105°C
• Performance
− Up to 48 MHz ARM® Cortex-M0+ core
• Memories and memory interfaces
− 256 KB program flash memory
− 32 KB RAM
• Clocks
− 32 kHz to 40 kHz or 3 MHz to 32 MHz crystal oscillator
− Multi-purpose clock source
• System peripherals
− Nine low-power modes to provide power optimization based on
application requirements
− 4-channel DMA controller, supporting up to 63 request sources
− COP Software watchdog
− Low-leakage wakeup unit
− SWD interface and Micro Trace buffer
− Bit Manipulation Engine (BME)
• Security and integrity modules
− 80-bit unique identification (ID) number per chip
• Human-machine interface
− Low-power hardware touch sensor interface (TSI)
− General-purpose input/output
− Segment LCD - 51x8/55x4
• Analog modules
− 16-bit SAR ADC
− 12-bit DAC
− Analog comparator (CMP) containing a 6-bit DAC and
programmable reference input
• Timers
− Six channel Timer/PWM (TPM)
− Two 2-channel Timer/PWM (TPM)
− Periodic interrupt timers
− 16-bit low-power timer (LPTMR)
− Real-time clock
• Communication interfaces
− USB full-/low-speed On-the-Go controller with on-chip transceiver
and 5 V to 3.3 V regulator
− Two 8-bit SPI modules
− Two I2C modules
− One low power UART module
− Two UART modules
− I2S
7. TM
6
Kinetis L Series – USB Device/Host/OTG Controller
USB
USB 1.1 and USB 2.0 compliant
Low- and full-speed device controller
On-The-Go protocol logic
Supports
On-The-Go (OTG)
Host
Device
16 bidirectional end points
DMA or FIFO data stream interfaces
Low-power consumption
USB Voltage Regulator
The USB Voltage Regulator
module is a LDO linear voltage
regulator to provide 3.3V
power from an input power
supply varying from 2.7 V to 5.5
V. It consists of one 3.3 V
power channel. When the input
power supply is below 3.6 V, the
regulator goes to pass through
mode.
Low drop-out
linear voltage regulator with one power channel (3.3V)
voltage: 300 mV
Output current: 120 mA.
3 power modes: RUN, STANDBY and SHUTDOWN
Low quiescent current in RUN mode (typ. 120uA)
Very low quiescent current in STANDBY mode (typ. 1
uA)
Automatic current limiting (290mA)
Automatic power-up
Pass-through mode for regulator (input voltages <3.6 V)
Small output capacitor: 2.2 uF
Reduce
BOM
MQX-Lite
+USB and Peripherals
Drivers (also within Processor
Expert – Code Generator)
17. TM
16
OpenSDA Overview
MSD Bootloader
OpenSDA MCU
K20DX128Vxx5
OpenSDA
Application
UART TX/RX
UART RX/TX
OpenSDA
SPI, GPIO
SWD / JTAG
GPIO / Interrupt
RESET
to Target MCU
• Embedded Serial Debug Adapter
• New standard for embedded debug
circuit supporting SWD and JTAG
• Open hardware platform with
proprietary and open-source software
• Built on K20DX128 50MHz CM4
• Provides serial channel and debug
interface to the target MCU
• Mass-storage bootloader used to load
new applications into the OpenSDA
• A mix of proprietary and open-source
OpenSDA Applications will be available
free-of-charge from Freescale
• Customers and partners can develop
their own Applications as well.
18. TM
17
OpenSDA Applications Overview
MSD Bootloader
OpenSDA MCU
K20DX128Vxx5
OpenSDA
Application
UART TX/RX
UART RX/TX
OpenSDA
SPI, GPIO
SWD / JTAG
GPIO / Interrupt
RESET
Cloud
Connector
mbed Connector
Mass Storage
Programmer
P&E Multilink
Customer / Partner
Application
Proprietary
Proprietary
Open or Proprietary
Open or Proprietary
Proprietary, Default
to Target MCU
Data Logging
Open
Latest OpenSDA applications and drivers: visit pemicro.com/opensda
CMSIS DAP Segger jLink
ProprietaryProprietary
19. TM
18
to Target MCU
OpenSDA Mass Storage Application
Application Overview:
• Closed source proprietary application
• Controls the serial and debug interfaces
to the target MCU
• Mass-storage USB device providing a
simple target MCU flash programmer
and a virtual serial port (composite
device)
Goal: Simple interface for serial
communications and reprogramming of
the target MCU. Perfect for quick
programming of example applications.
Note: Can be used to program off-board
devices within the same product family as
the on-board Target MCU
MSD Bootloader
OpenSDA MCU
K20DX128Vxx5
Mass Storage
Application
UART TX/RX
UART RX/TX
OpenSDA
SPI, GPIO
SWD / JTAG
GPIO / Interrupt
RESET
20. TM
19
to Target MCU
OpenSDA mbed Connector Application
Application Overview:
Features:
• USB Disk “drag and drop” programming
- ideal for fast turn around prototyping,
or in-field upgradable products
• Debug interface using the CMSIS-DAP
• USB Serial interface between the host
computer and the target
MSD Bootloader
OpenSDA MCU
K20DX128Vxx5
mbed connector
UART TX/RX
UART RX/TX
OpenSDA
SPI, GPIO
SWD / JTAG
GPIO / Interrupt
RESET
21. TM
20
• USB Port, Reset Button, sda-firmware, LED
• switch between “Bootloader” and “Application” mode
Loading OpenSDA application (MSD, CMSIS-DAP, JTAG)
Tips:
• Unzip SDA application archives before copying
• Use Windows Explorer to copy files
• Do not use a MAC, as bootloader it didn‘t work properly
22. TM
23
Freedom Board Programming in MSD
• Enumerates as USB MSD drive FRDM-KL46Z
• Drag pre-compiled SREC (S19) files onto drive:
• Application is running immediately after copied onto FRDM
24. TM
25
Set-up the Internet connection
• Go into your computers WLAN connection manager
• Login to network „USB Academy“
• Password is: „freescale“
• Open your browser and go to mbed.org
• Remarks
− Only port 80 is open, all others are blocked by a firewall
− Only mbed.org and freescale.com are accessible
25. TM
26
mbed Basics
• mbed is a online platform for fast, low-risk rapid prototyping
• mbed under Apache 2.0 license and can used in
commerciSDK is Open Source al projects with confidence
• mbed is for starters, engineers, students, sales, marketing
and distributors
• mbed provides API libraries build on top of CMSIS*
• mbed uses C/C++ and is portable to other IDEs
• mbed works on Windows, Mac and Linux and will run
under Internet Explorer, Firefox, Safari, Chrome, etc.
*Cortex Microcontroller Software Interface Standard
26. TM
27
mbed Website
Handbook
The Handbook is the central portal to documentation.
It links to introduction and getting started documentation and describes the API
of the official mbed C/C++ libraries.
This is the place we can find any documentation and information about mbed.
27. TM
28
mbed Website
Cookbook
The Cookbook is the central wiki that can be edited by any user, using the Wiki
Syntax markup.
This is the place we can build up a collection of libraries and components,
information and tutorials. Things that can be made use of by everyone.
The aim is for this to become a high quality resource.
28. TM
29
mbed Website
Components
The Component Database hosts reusable libraries for different hardware,
middleware and IoT services that you can use with ARM Microcontrollers.
These components can be used as building blocks for quickly developing
prototypes and products.
Components and the associated libraries, examples and documentation are
created and added to the database by mbed developers, component
manufacturers and service providers. The goal is to create a canonical
database of rock-solid code and resources for every useful component that can
be used with ARM microcontrollers.
29. TM
30
mbed Website
Code
Code is hosting code and libraries to use in our application. The contrent is
contributed by mbed and the user community.
It is split in 3 sections: most popular code, most active code and featured code
and has a search functionality for the repositoy.
30. TM
31
mbed Website
Questions
The Questions section of mbed is designed to provide a high quality resource
of common (and not so common) questions and answers. This means that
instead of searching long forum threads for the answer to a query or problem,
both the question and answer will hopefully be captured succinctly on a single
page.
31. TM
32
mbed Website
Forum
The forums are for general discussions, or for open-ended questions which
may have several possible answers.
For specific answers to particular problems, try the Questions section.
32. TM
33
mbed Website
Dashboard
The Dashboard is the place to modify your profile and log all your activity. Your
personal code repositories and public shares and your notebook.
33. TM
34
mbed Website
Compiler
This is where you write your code which runs on your mbed. This area is
private to you and no one else can see it. Think of it as your local PC. Nothing
can move from the mbed Compiler to the public website unless you tell it to.
35. TM
36
mbed on Kinetis KL64Z Freedom Board
http://mbed.org/platforms/FRDM-KL46Z/
• Go to http://mbed.org/handbook/Firmware-FRDM-KL46Z
• Update the interface (OpenSDA) firmware
− Drag mbed_if_v2.1_frdm_kl46z.s19 to BOOTLOADER-drive
• Go to mbed drive and double-click MBED.HTM
• If you do not have an mbed account, choose "Signup", and
create your mbed
Account. Otherwise,
log in with your
normal username
and password
• Add this platform to
Compiler!!!
36. TM
37
mbed on Kinetis KL46Z Freedom Board
• Click on Compiler
• Click on New
• Enter ”60s” and click OK
• Select Template gpio example ..
• Click OK
• Click Compile
• Save file 60s_KL64Z.bin onto
the MBED drive
• Press the reset button and
the RED LED blinks
38. TM
39
USB Academy concept
1/ accel -> USB Mouse
(USB device - HID class)
2/ sensors -> USB Terminal
(USB device - CDC class)
3/ eCompass -> USB FlashDrive
(USB host - MSD class)
Accel Mag
Sw1,2
Light
Touch
39. TM
40
Lab1 Task
• We will program …
− (a) USB HID mouse (X,Y from acc)
− (b) .. with Left&Right buttons
KL25Z
128VLK4
Left Touch
Button
Right Touch
Button
Accelerometer
USB Interface
(Mouse)
I2C0
USB_DN
USB_DP
LED
SDA – PTE25
SCL – PTE24
MMA8451Q
LED_RED
mbed & Serial
Interface
40. TM
41
Run Lab1
• Click Compile, save file to mbed drive.
• Press reset button on FRDM board
• Connect (a 2nd) USB cable to the Device USB connector
• A mouse driver will be installed
• (a) See the mouse cursor moving based on X,Y-tilt of FRDM
• (b) Try clicking Left/Right mouse button
• See Red led blinking and indicate Z-tilt
Device USB
mbed USB
42. TM
43
USB Academy concept
1/ accel -> USB Mouse
(USB device - HID class)
2/ sensors -> USB Terminal
(USB device - CDC class)
3/ eCompass -> USB FlashDrive
(USB host - MSD class)
Accel Mag
Sw1,2
Light
Touch
43. TM
44
Lab2 Task
• We will program …
− (a) all sensors data sent to Serial
− (b) “a” but sending through CDC
Accelerometer
USB Interface
(CDC)
mbed & Serial
Interface
Light
Magnetometer
Capacitive
touch slider
CDC
44. TM
45
Serial Communication with a PC
• The mbed Microcontroller can communicate with a host PC
through a "USB Virtual Serial Port" over the same USB
cable that is used for programming.
• This enables you to:
− Print out messages to a host PC terminal (useful for
debugging!)
− Read input from the host PC keyboard
− Communicate with applications and programming languages
running on the host PC that can communicate with a serial port,
e.g. perl, python, java and so on.
45. TM
46
Check Serial Connection
• Your mbed Microcontroller can appear on your computer as a
serial port.
− On Mac and Linux, this will happen by default. For Windows, you
need to install a driver (../mbedWinSerial_16466.exe)
• You need a terminal application on your computer like TeraTerm
or puTTY. (../teraterm-4.78.exe)
• Identify the serial port
− Windows - Look under the "Ports" section in "Device Manager"
(''Start -> Control Panel -> System -> Hardware -> Device
Manager''). The name will be ''mbed Serial Port (COMx)'', where
''x'' is the number of the COM port allocated.
− Mac OS X - Use the command ls /dev/tty.usbmodem*
− Linux - Use the command ls /dev/ttyACM*
• Set serial connection to 115200 baud, 8 bits, 1 stop bit, no parity
46. TM
47
Run Lab2
• Click Compile, save file to mbed drive.
• Press reset button on FRDM board
• Start Terminal (Serial SW, 115200/8/N/1) , mbed port
• press SW1 to start
• (a) press SW1 and see mouse X,Y-tilt (mouse movement) at PC terminal
• (b) press SW1 and see all sensor data at PC terminal
• Change Terminal (Serial SW, 115200/8/N/1) , CDC – Virtual Serial port
• (c) Connect (a 2nd) USB cable to the Device USB connector
• a CDC driver will be installed
• (c) press SW1 and see all sensor data at terminal
Device USB
mbed USB
48. TM
49
USB Academy concept
1/ accel -> USB Mouse
(USB device - HID class)
2/ sensors -> USB Terminal
(USB device - CDC class)
3/ eCompass -> USB FlashDrive
(USB host - MSD class)
Accel Mag
Sw1,2
Light
Touch
49. TM
50
Lab3 Task
• We will program …
− (a) write accelerometer data at MSD
− (b) write compass heading at MSD
USB Interface
(MSD)
Magnetometer
50. TM
51
Run Lab3
• Click Compile, save file to mbed drive.
• Press reset button on FRDM board
• Start Terminal (Serial SW, 115200/8/N/1) , mbed port
• press SW1 to start
• Plug USB-drive and see if it is mapped properly and file was created
successfully
• (a) press SW1 to record acc. Z-tilt into created file
• (b) press SW1 to record heading (eCompass) data
• Unplug USB-drive and see recorded content at PC
Device USB
mbed USB