USB FLASH download, programming, and security tool (DFUSec)

Document created by jorge_plascencia Employee on Apr 25, 2016Last modified by jorge_plascencia Employee on Apr 27, 2016
Version 3Show Document
  • View in full screen mode

What does this tool do?

The LPC18xx/43xx DFUSec utility is a Windows PC tool that provides support functions for LPC18xx/43xx microcontroller via USB. The tool is composed of 3 components: the Image Programmer, the LPC-Link 2 Configuration Tool, and the Security Support Tool (v2.00). This tool has been called the LPC18xx/43xx DFU Utility (DFUUtil) or DFUSec in versions prior to v1.10. DFUSec is the common name for the tool that covers all these components,

For instructions on how to use a specific capability of the DFUSec tool, use the menu on the right.


Where to download and download pre-requisites

Update: DFUSec and the LPC-Link 2 Configuration Tool are the same tool. Download DFUSec from the LCT link below and enable 'DFUSEC' mode by unchecking the Link2 lock button on the LCT file menu. As of v2.00 of the LCT, you no longer need to manually install .NET or the driver package - the installer will do that for you if it already isn't installed. WinUSB only needs to be installed on Windows XP machines - it is already part of Win 7/8. All you need to do is download and install the LCT.

Before you can use DFUSec, you'll need to install WINUSB and the Microsoft.NET framework 4.

DFUSec is available in pre-configured packages for the Image Programmer, Link Configuration Tool (LCT), and the (upcoming) Security Tool. (files attached)


Image Programmer

The Image Programmer uses the USB DFU boot capability of the LPC18xx/43xx devices to program the internal FLASH or EEPROM, or the SPIFLASH on some boards. To do this, a small USB image is first downloaded to the board via USB using DFU and then it communicates with the PC application. To use the Image Programmer, the a USB port must be connected for USB boot with the LPC18xx/43xx device. Most commercial boards - such as boards from Embedded Artists, Hitex, Keil, and NGX - provide this support.

The Image Programmer provides the following capabilities:

  • In circuit programming and re-programming of internal FLASH and internal EEPROM on all LPC18xx/43xx devices via USB
  • In circuit programming and re-programming of some SPIFLASH devices available on LPC18xx/43xx boards
  • Smiple DFU download and execution of an image in IRAM with optional automated download whenever a board is plugged in
  • Optional checksum generation at program time
  • Boot header generation (needed by SPIFLASH or DFU boot)
  • Sequenced program operations for complex image layouts across multiple storage (internal FLASH, internal EEPROM, SPIFLASH) types - a single session can quickly program all storage with a single automated USB sessions
  • Extendable FLASH support - add support for other storage devices in the programming algorithm firmware

LPC-Link 2 Configuration tool

The LPC-Link 2 Configuration Tool is used to load firmware images onto the LPC-Link-2 board ir LPCXpresso V2 boards with the integrated LPC-Link 2 (LINK DFU) interface. This allows loading a firmware image that supports debugging via USB such as JLINK or CMSIS-DAP for development environments other than the LPCXpresso-IDE. To use the tool, select an image for a support LPC-Link 2 boards and follow the in-page instructions.

Security Support Tool (upcoming)

The Security Support Tool will be available with the DFUSec v2.00 release. This component of DFUSec adds the following capabilities:

  • AES key management - key and vector generation, programming, and (limited) key retrieval
  • Encrypted image generation with support for CMAC header
  • Boot mode locking - disable JTAG, USB, or other capabilities for production systems
  • Ability to encrypt FLASH binaries from Image Programmer to allow re-programming a secure board (if not locked)