Drivers Freescale USB Devices



FREESCALE SEMICONDUCTOR SOFTWARE LICENSE AGREEMENT

Download Motorola Freescale USB JW32 ICP Device other device drivers or install DriverPack Solution software for driver update. Foreword This document is a supplement and revision of AN4379 Freescale USB Mass Storage Device Bootloader written by dereksnell in 2011. The original version was programmed with CW for Flexis JM/ColdFire MCF522XX/Kinetis K60. It has not been updated for 2 years. The Interface MCU is a Freescale KL27 V2 or Freescale KL26 V1. The chip that developers’ code runs on, and that all the peripherals are connected to is called the ‘target MCU’. See the Hardware page and the schematic for more details about how these two devices are connected.

This is a legal agreement between you (either as an individual or as an authorized representative of your employer) and Freescale Semiconductor, Inc. ('Freescale'). It concerns your rights to use this file and any accompanying written materials (the 'Software'). In consideration for Freescale allowing you to access the Software, you are agreeing to be bound by the terms of this Agreement. If you do not agree to all of the terms of this Agreement, do not download the Software. If you change your mind later, stop using the Software and delete all copies of the Software in your possession or control. Any copies of the Software that you have already distributed, where permitted, and do not destroy will continue to be governed by this Agreement. Your prior use will also continue to be governed by this Agreement.

LICENSE GRANT. Exclusively in conjunction with Licensee’s development and sale of a product containing a programmable processing unit (e.g., a microprocessor, microcontroller, or digital signal processor) supplied directly or indirectly from Freescale (“Freescale System”), Freescale grants to you, free of charge, the non-exclusive, non-transferable right (1) to use the Software, (2) to reproduce the Software, (3) to prepare derivative works of the Software, (4) to distribute the Software and derivative works thereof in object (machine-readable) form as part of a Freescale System, and (5) to sublicense to others the right to use the distributed Software as included within the Freescale System. You must prohibit your sublicensees from translating, reverse engineering, decompiling, or disassembling the Software except to the extent applicable law specifically prohibits such restriction. If you violate any of the terms or restrictions of this Agreement, Freescale may immediately terminate this Agreement, and require that you stop using and delete all copies of the Software in your possession or control.

COPYRIGHT. The Software is licensed to you, not sold. Freescale owns the Software, and United States copyright laws and international treaty provisions protect the Software. Therefore, you must treat the Software like any other copyrighted material (e.g. a book or musical recording). You may not use or copy the Software for any other purpose than what is described in this Agreement. Except as expressly provided herein, Freescale does not grant to you any express or implied rights under any Freescale or third-party patents, copyrights, trademarks, or trade secrets. Additionally, you must reproduce and apply any copyright or other proprietary rights notices included on or embedded in the Software to any copies or derivative works made thereof, in whole or in part, if any.

SUPPORT. Freescale is NOT obligated to provide any support, upgrades or new releases of the Software. If you wish, you may contact Freescale and report problems and provide suggestions regarding the Software. Freescale has no obligation whatsoever to respond in any way to such a problem report or suggestion. Freescale may make changes to the Software at any time, without any obligation to notify or provide updated versions of the Software to you.

NO WARRANTY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, FREESCALE EXPRESSLY DISCLAIMS ANY WARRANTY FOR THE SOFTWARE. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. YOU ASSUME THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE SOFTWARE, OR ANY SYSTEMS YOU DESIGN USING THE SOFTWARE (IF ANY). NOTHING IN THIS AGREEMENT MAY BE CONSTRUED AS A WARRANTY OR REPRESENTATION BY FREESCALE THAT THE SOFTWARE OR ANY DERIVATIVE WORK DEVELOPED WITH OR INCORPORATING THE SOFTWARE WILL BE FREE FROM INFRINGEMENT OF THE INTELLECTUAL PROPERTY RIGHTS OF THIRD PARTIES.

INDEMNITY. You agree to fully defend and indemnify Freescale from any and all claims, liabilities, and costs (including reasonable attorney’s fees) related to (1) your use (including your sublicensee’s use, if permitted) of the Software or (2) your violation of the terms and conditions of this Agreement.

LIMITATION OF LIABILITY. IN NO EVENT WILL FREESCALE BE LIABLE, WHETHER IN CONTRACT, TORT, OR OTHERWISE, FOR ANY INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR PUNITIVE DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, LOSS OF TIME, INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES TO THE FULL EXTENT SUCH MAY BE DISCLAIMED BY LAW.

COMPLIANCE WITH LAWS; EXPORT RESTRICTIONS. This software may be subject to the U.S. Export Regulations and/or the regulatory authority of the country in which the download takes place. By downloading this software you understand and agree to comply with all applicable export control regulations when further transferring or exporting the software either as downloaded or as integrated into other software or commodities.

GOVERNMENT USE. Use of the Software and any corresponding documentation, if any, is provided with RESTRICTED RIGHTS. Use, duplication or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of The Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c)(l) and (2) of the Commercial Computer Software--Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Freescale Semiconductor, Inc., 6501 William Cannon Drive West, Austin, TX, 78735.

HIGH RISK ACTIVITIES. You acknowledge that the Software is not fault tolerant and is not designed, manufactured or intended by Freescale for incorporation into products intended for use or resale in on-line control equipment in hazardous, dangerous to life or potentially life-threatening environments requiring fail-safe performance, such as in the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, direct life support machines or weapons systems, in which the failure of products could lead directly to death, personal injury or severe physical or environmental damage (“High Risk Activities”). You specifically represent and warrant that you will not use the Software or any derivative work of the Software for High Risk Activities.

CHOICE OF LAW; VENUE; LIMITATIONS. You agree that the statutes and laws of the United States and the State of Texas, USA, without regard to conflicts of laws principles, will apply to all matters relating to this Agreement or the Software, and you agree that any litigation will be subject to the exclusive jurisdiction of the state or federal courts in Texas, USA. You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to this Agreement or the Software must be filed within one (1) year after such claim or cause of action arose or be forever barred.

PRODUCT LABELING. You are not authorized to use any Freescale trademarks, brand names, or logos.

ENTIRE AGREEMENT. This Agreement constitutes the entire agreement between you and Freescale regarding the subject matter of this Agreement, and supersedes all prior communications, negotiations, understandings, agreements or representations, either written or oral, if any. This Agreement may only be amended in written form, executed by you and Freescale.

SEVERABILITY. If any provision of this Agreement is held for any reason to be invalid or unenforceable, then the remaining provisions of this Agreement will be unimpaired and, unless a modification or replacement of the invalid or unenforceable provision is further held to deprive you or Freescale of a material benefit, in which case the Agreement will immediately terminate, the invalid or unenforceable provision will be replaced with a provision that is valid and enforceable and that comes closest to the intention underlying the invalid or unenforceable provision.

NO WAIVER. The waiver by Freescale of any breach of any provision of this Agreement will not operate or be construed as a waiver of any other or a subsequent breach of the same or a different provision.

Read the announcement of the new micro:bit and the information about preparing for it

the DAPLink software running on the USB interface chip for the micro:bit provides the drag and drop programming and debugging features that make the micro:bit so easy to use.

Target and Interface MCUs

The micro:bit presents itself as a USB disk when it is connected over USB, and can be programmed through this interface without the need to install any drivers. This makes it easier to use as a beginner. Furthermore, no matter what code you run on your micro:bit, or how you manage to crash the device, you can always still put a new program on using the USB connection.This is made possible by having a separate ‘interface chip’ or ‘interface MCU’ on the micro:bit dedicated to USB connections, programming and debugging.

The Interface MCU is a Freescale KL27V2 or Freescale KL26 V1.

The chip that developers’ code runs on, and that all the peripherals are connected to is called the ‘target MCU’. See the Hardware page and the schematic for more details about how these two devices are connected.

The Target MCU is a Nordic Semiconductor nRF52833V2 or Nordic Semiconductor nRF51822V1.

The target and interface MCUs are connected by two interfaces:

  • Serial Wire Debug (SWD) for programming the target MCU.

  • UART for sending messages between the two devices. In practice, the UART from the target MCU is passed through directly to the PC over USB.

Reference design

On the reference design the interface circuit is clearly separated from the main micro:bit circuits so that you can do the following things:

  • Build a board without the interface circuitry and use another debugger to program that over SWD.

  • Build a board with just the interface circuitry and use that to flash other hardware that you have built that might be too small to contain its own interface chip.

DAPLink software

This interface chip is running software from Arm Mbed called DAPLink.

This software provides four USB endpoints that have specific purposes:

  • MSC - USB mass storage device for drag-and-drop programming of the target MCU’s flash memory.

  • CDC - serial pass-through from the target MCU to the PC. This is how messages get from the code you write onto the PC.

  • HID - CMSIS-DAP compliant debug channel - this is useful if you want to use advanced debuggers like GDB or Keil to understand what’s happening (or not happening!) on your micro:bit.

  • WebUSB - facilitates communicating with the device via a WebUSB capable browser.

The DAPLink software and interface chip are part of the Arm Mbed HDK

The micro:bit currently ships with DAPLink bootloader at version 0255 and interface at version 0255.

This table shows the device revision and which DAPLink Bootloader and interface it shipped with:

Board revisionBootloaderInterfaceDownload
1.3023402340234
1.3b023402410241
1.5024302490249
2.0025502550255

This table shows the latest DAPLink release for each board version that has been fully tested by the Foundation:

Board revisionBootloaderInterfaceDownload
1.*02**02530253
2.*025502550255

The DAPLink boot loader

It is possible to update the version of DAPLink running on your micro:bit. This is done using the DAPLink bootloader. This means that in fact, DAPLink is built twice for the micro:bit.

  1. bootloader mode is used to for updating the main interface firmware. In this mode, the drive name is MAINTENANCE and hex files dropped onto the disk are written into the KL27 V2 or KL26 V1 flash. These files MUST contain an image of DAPLink or equivalent.
  2. interface mode is used to target the nRF52833 V2 or nRF51822 V1. In this mode, the drive name is MICROBIT and the hex files dropped onto the micro:bit are written to the flash of the target MCU.

There are detailed instructions for how to update the firmware version on the micro:bit website.

You should never update your micro:bit with firmware from untrusted sources, as these could damage your micro:bit, or make it impossible to re-flash

Files on the MICROBIT drive

The flash file system presented on the micro:bit drive is entirely virtual. It is not backed by real memory, and this is why the drive ejects itself after new files are written. When a file is dropped onto the MICROBIT drive, instead of being written into flash memory (like a normal USB memory stick), it is streamed to the target MCU.

The following virtual files exist on the file-system:

  • DETAILS.TXT: This file tells you about the build of DAPLink currently installed on the interface chip. In later versions of DAPLink it also includes more diagnostic information.

  • MICROBIT.HTM: This is a link to microbit.org to help you get started.

After flashing occurs, there might also be a FAIL.TXT file, that gives a cause for failure.

The file error.c in the DAPLink source can help in diagnosing what these errors mean.

There is also a full list of micro:bit error codes in our Knowledgebase.

UART connection

Due to the number of pins on the Nordic Semiconductor chip, only the uart TX and RX lines are connected between the interface MCU and the target MCU. This means that there is no hardware flow control possible. This means that at higher serial speeds (baud rates above 9600), the micro:bit may drop characters being sent to it.

HID and CMSIS-DAP

The HID endpoint is for a CMSIS-DAP channel. This can most easily be used with pyOCD, an open source python library for programming and debugging Arm Cortex-M microcontrollers using CMSIS-DAP

WebUSB

The WebUSB API facilitates communicating with USB devices from the Browser.

It has been supported in DAPLink since version 0243, so if you have an older micro:bit, you will need to update the DAPLink firmware.

The API is currently available in Chrome based browsers (Android, Chrome OS, Linux, macOS and Windows) and is supported in the MakeCode Editor and the Python Editor. This enables you to flash your micro:bit straight from the browser without the need to save the .hex file first, and use serial communication between the micro:bit and the editor.

Updating the DAPLink full image

Please note - there is almost no situation in the normal use of the micro:bit where this step will be necessary. We have documented it here in the interests of making the the micro:bit more friendly to developers who want to experiment with the code on the KL27. If your micro:bit enumerates in MAINTENANCE or MICROBIT mode you should never need to perform these steps
Drivers Freescale USB Devices

Please only use use these steps if you are familiar with USB bootloaders and command line tools. You should never need to perform these to update a micro:bit.

USB

You can also flash a full DAPLink image to the V2 device using the KL27 internal bootloader. This will update both interface and bootloader.

You will need to register for and download the Bootloader Host Application (blhost) from NXP. IN the /bin folder you will find executables for your operating system.

Enter bootloader mode

To enter this mode we need to ground TP1 during board power up, this is the BOOTMODE pin in the KL27. To do that, connect with a wire (or something like a paper-clip) TP1 red circle) with any ground point (black square) as you insert the USB cable into the device.

Bootloader CLI tool

Run the bootloader tool on your OS. These instructions relate to the CLI, but the GUI settings would be broadly similar.

Usage info:

Drivers

Flash KL27 bin file:

Drivers Freescale Usb Devices Dongle

Read KL27 flash contents into kl27_flash_dump.bin file: