Kinetis Developer's Page

The µTasker project has just celebrated its 11th birthday and during the course of the years the project has continuously developed. This development, as of the beginning of 2016, focuses intensly on the Freescale Kinetis devices and this is where you can find latest information about this work as well as getting involved with trying out latest pre-release/development code.

Towards the bottom of the page regular code images are made available which can be used by registered Kinetis developers, either for early adoption in working projects or for study of the new features and code details. Please send an email to the Kinetis address at the bottom of the start side in case you would like to be involved.


- 14.09.2017 INTMUX - extending peripheral interrupt sources of Cortex-M0+ devices: INTMUX video explanation and demonstration

µTasker FAT Emulation

- 31.10.2015 This new document explains the use of FAT emulation to allow linear data to be viewed as FAT files at a PC host - either as raw data or as formatted data for easy import into data analysis tools: µTasker - FAT Emulation.

µTasker Spansion S25FL164K Driver with Automatic Erase Suspend and Resume to allow immediate Reading and Programming in other Sectors

- 6.5.2015 The Kinetis MCG (Multipurpose Clock Generator) allows a number of internal or external clock sources to be used to derive system and bus clocks from. The MCG varies between parts, some with PLL and FLL and some with only FLL but all follow a similar layout and similar rules for usage. The purpose of this discussion is to present the MCG in an easy to understand way and show how it can be worked with without the typical fear factor that can be induced by its formal documentation.

See the Kinetis MCG discussion for full information.

- 3.5.2015 During the course of development of a new SPI flash based FAT interface supporting block management and wear-levelling it was identified that the relatively slow SPI Flash erasure times (typically 50ms for a 4k sector) can be a cause of reduced performance when subsequent reading and programming is needed whilst the operation is in progress; in comparision, reading of sectors is limited only by the communication speed and programming sectors is subject to a programming time of about 1.5ms.

See the µTasker S25FL164K Driver discussion concerning the the use of automatic suspend and resume control for details of how reads and write interrupt erasures in progress to ensure fast and efficient operation.

USB Composite Devices

- 2.3.2015 The µTasker USB device support includes USB-CDC, USB-MSD and USB HID mouse and keyboard. These can however be flexibly mixed as composite devices. More details concerning how the desired composite configuration can be controlled by a few defines are available at µTasker USB Device Configuration and keyboard testing, including also an interesting keyboard test that is built into the framework.

Mixing UARTs and LPUARTs on Kinetis Devices

- 21.2.2015 Kinetis devices originally contained a number of UARTs, with up to 6 available in some parts - such as the K60. More recently newer parts started appearing with LPUARTs (Low Power UARTs), for example the KL03 with a single LPUART. However some parts can also include both types, such as the KL43 with two LPUARTs plus a single UART, or the K22 with 3 UARTs and a single LPUART.

UARTs and LPUARTs have various differences and the question that arises when using a driver interface is how can they be handled in a generic manner so that appliation code is compatible as well as how are the channels numbered in the µTasker interface?

Read more details at µTasker UART/LPUART interface.

What does MAC OS X do when external drives are connected?

- 6.2.2015 USB-MSD is popular as a method of upgrading software to embedded devices. This is due to the fact that USB-MSD doesn't require a driver to be installed (this is getting more complicated - ex. with Windows 8 which will only accept signed drivers without awkward workarounds) and also because the in-built file manager can be used to see existing software in the device (assuming this is supported by the device's software). Copying new firmware to what the PC sees as an external hard drive is quick and easy (drag-and-drop can be used as standard) and so no special software is require on the PC for this confortable operation. The result is that if a file can be distributed containing the new firmware anyone with a PC can load it to the device without needing to use any non-standard software, and on any platform.
Read more details at µTasker USB-MSD Loader MAC OS X Compatibility

SSL/TLS Security for IoT Devices

- 28.1.2015 The following page follows investigations into the integration of an SSL/TLS security layer in the µTasker project, particularly in light of developments targeting the IoT (Internet Of Things).

Low-Leakage Wakeup Unit (LLWU)

- 10.1.2015 Many Kinetis derivatives include the LLWU to allow the processor to exit from one of it low power modes by either an external event (pin state change) or a supported peripheral that is either still operational or has an asynchronous event function in its own low power state. The unit is itself very low power and so enhances the overall low power capability of the devices. Low-Leakage Wakup Unit operation.

Kinetis KL RTC

- 3.1.2015 The RTC in the Kinetis KL is a little surprising due to the fact that it doesn't really support low power RTC operation without an external RTC clock. More details are given in KL RTC operation.


- 2.1.2015 Freescale offers their FreeMASTER PC tool as run-time debugging tool to users of their chips. If you are not yet familiar with what it is and can do there are details at the following FreeMASTER link.

Essentially it allows a PC program to view memory as the system is operating by integrating code in the embedded system that communicates with the tool and passes data to it when requested. This information can be displayed by the tool in forms making it easy to understand/interpret - for example it can be displayed as a graph or in real-time, which means that the data is viewed as if it were connected to with an oscilloscope. Further more, the tool concept defines a data recorder operation which allows the embedded system to transfer high resolution data that it has captured itself so that it can be displayed in a useful graphical form. It is also possible to allow the tool to modify memory/data.

Details of µTasker FreeMASTER support is given at FreeMASTER.


- 30.12.2014 The KE02 has 256 bytes of EEPROM that uses the Kinetis Flash interface (very similar to working with internal Flash) but composed of a single Flash block divided into 128 sectors of 2 bytes. This means that 2 bytes can be erased at a time (smallest erase unit) and single bytes can be programmed, with the ability to program up to 4 bytes in a burst sequence. The programming duration is max. 270us per byte and a sector erase takes less that 21ms. Typically the EEPROM can endure 500'000 program/erase cycles with help from ECC which can correct a single bit error in a word. During EEPROM programming the main KE02 Flash can continue to be used. Although flash based, the EEPROM functionality is close to EEPROM behaviour and so offers a practical solution for storing a small quantity of parameters that may change frequenty. KE02 EEPROM interface details.

Development Code Archive

  • Registered developers can use the following passwords for code extraction.

  • 5.2.2016 Release V1.4.11 - Major release with new USB audio and RNDIS support and various new features, plus device and board support according to the release note at the link.

  • 15.11.2015 Complete - USB-MSD Host/Device loader using new USB-OTG driver (allows host and device loader mode at the same time, with automatic detection of the mode to use). I2C slave mode as well as compatibility of master and slave modes with double-buffered devices (eg. KL27). KL device touch slider support. Flash memory swap mechanism support including serial loader (S-Rec and USB-MSD) operation based on it (see also). FAT emulation integrated in utFAT2.02. TRK-KEA64 serial loader added.
    Default configuration of serial loader and application is for the FRDM-K64F and CodeWarrior 10.x

  • If there is an error in mass_storage.c due to missing EMULATED_FAT_LUMS add this in its define section:
    #if !defined EMULATED_FAT_LUMS
        #define EMULATED_FAT_LUMS            DISK_COUNT
  • 14.9.2015 Complete - New rcARM Board target (main application configured for this) / USB-MSD Host operation in serial loader (configured for TWR-K21F120M) [25MBytes]. Setup for CW10.6. Note 1: Remove usb_application_pure_CDC_ref.c from the application directory when building uTaskerV1.4 target with Eclipse based IDE. Note 2: When building the serial loader for a device with small RAM size reduce the define #define TX_BUFFER_SIZE (5512) to 512 bytes so the buffer can be allocated (the large size was used only for some debugging output on a larger device)
  • 17.6.2015 Complete - Optional AN2295 Freescale Developer's Serial Bootloader compatibility mode added to the serial loader. Main configuration prepared for KEA128 and CodeWarrior 10.6. [19.8MBytes]
  • 3.5.2015 Complete - Spansion S25FL1-K SPI flash driver with automatic suspend/resume support during sector erases. Full K02 configuration. Pre-configured for NETKBED main application, K02F serial loader with various clocking options for FRDM-K64F and K02F.
  • 18.4.2015 Complete - FRDM-KL27Z fully supported with Coffeebrain Capuccino-KL27 target. New Spansion S25FL1-K SPI flash driver. Pre-configured for KDS, FRDM-KL27 serial loader and Capuccino-KL27 main application. New K02F pinout file. uVision projects updated to uVision5.
  • 30.3.2015 Complete - Teensy LC fully supported. FRDM-KL27Z preliminary support. New Winbond W25Q SPI flash driver. ENC624J600 can be used with devices without internal Ethernet controller to add Ethernet and TCP/IP through SPI - pre-configured for Teensy LC
  • 25.3.2015 Complete - Complete with new Kinetis peripheral structure as well as muliple-interface Ethernet, each with independent CS offloading characteristics - new TFT simulation technique for faster drawing - pre-configured for FRDM-K64F and KDS
  • 12.3.2015 Complete - Complete with new KV31 support as well as provisional FreeMaster UART and USB integration - pre-configured for TWR-KV31F120M
  • 12.3.2015 3-phase Permanent Magnet Synchronous Motor (PMSM) Sensorless Control - IAR for TWR-KVF120M
  • 10.3.2015 Complete - Complete with new KV10 support as well as provisional FreeMaster UART and USB integration - preconfigured for TWR-KV10Z32
  • 10.3.2015 Three-Phase Brushless DC Sensorless Control - IAR for TWR-KV10Z32
  • 3.3.2015 Complete - Complete with new SW FIFO and USB-HID Keyboard device allowing keyboard scripts to be fed to the host; updated Windows 8.1 and MAC compatible USB-MSD firmware loading - preconfigured for FRDM-KL03Z KDS
  • 20.2.2015 Complete - Complete with USB-MSD loader with MAC OS X compatibility - preconfigured for Teensy3.1 KDS
  • 15.2.2015 Framework / Applications - Application setup (uTaskerV1.4 and serial loader) configured for KL43Z with Nordic Semi nRF24201+ 2.4GHz radio and CW10.6.
  • 11.2.2015 Framework / Applications - Application setup for K22F with Nordic Semi nRF24201+ 2.4GHz radio and CW10.6. Time keeper module added which controls RTC, time-zones, daylight saving, time conversions, display and SNTP operation (based on simple second counter or RTC). RTC alarm and wakeup from low leakage modes.
  • 4.2.2015 Framework / Applications - Cosmic project, FAT12 added to utFAT, internal Flash hard-drive. USB-MSD/USB-CDC composite uses new external configuration file. Teensy LC configuration.
  • 1.2.2015 Framework / Applications - HTTPS development with OpenSSL library (VisualStudio only)
  • 27.1.2015 Framework Complete version including complete pre-release Green Hills project support.
  • 25.1.2015 Framework / Applications - serial loader and V1.4 projects KWIKSTIK setup - New descriptor headers for improved USB configuration.
  • 21.1.2015 Framework / Applications - serial loader and V1.4 projects TWR-K53D512 setup - SD-Card and KBOOT loaders write a file object when working in parallel with USB-MSD so that the loading method is visible and the date/time is taken from the SD card's file when that was the firmware source.
  • 16.1.2015 Framework / Applications - serial loader and V1.4 projects FRDM-K22F setup - 1..6 configurable CDC-USB bridges using simplex endpoint configuration with single driver supporting any amount.
  • 13.1.2015 Framework / Applications - serial loader and V1.4 projects TWR-K64F120M setup - LLWU module operation
  • 11.1.2015 Framework / Applications - serial loader and V1.4 projects TWR-K24F120M setup (K24 processor and TWR-K24F120M board support integrated) - LLWU module prepared
  • 5.1.2015 Framework / Applications - serial loader and V1.4 projects KL02 setup - FreeMASTER USB basics
  • 1.1.2015 Framework / Applications - serial loader and V1.4 projects KE04 added, KE02 EEPROM interface, Green Hills and Cosmic serial loader projects, option for interrupt vectors fixed in Flash (mainly for KE04 with very restricted RAM)
  • 29.12.2014 Framework / Applications - serial loader and V1.4 projects device selection synchronised to use the same method, making it easy to configure for the desired hardware. FRDM-KE02Z serial loader setup adjusted and KBOOT UART mode verified. See the release notes for major changes since V1.4.7
Return to the Kinetis landing page

µTasker Kinetis Development. Copyright (c) 2004..2018 M.J.Butcher Consulting