Specifications
FC protocol description
Developer’s Serial Bootloader, Rev. 13
Freescale Semiconductor 3
implements all features as simply as possible, excluding checksums, and so forth. The target size
is less than 500 B for the 8-bit MCUs. The USB version of bootloaders included drivers for the
communication over the USB. For this bootloaders is needed 8KB memory available (HCS08JM
and MCF51JM). The Kinetis K and L series have a similar sizes (less than 2 KB).
• Low pin-count — This bootloader uses already implemented standard means of communication
(typically SCI on boards primarily intended for communication). The standard SCI uses two wires,
RxD and TxD. No additional wires are used to start bootloader.
• Transparency with respect to the user S19 file — The complete application should be
transparent to the user code S19 file. This means no adjustments are required in the S19 file. Other
M68HC08, HCS08, and ColdFire V1 bootloader applications require modification to interrupt
vectors or other modifications to the S19 file for it to accept the bootloader.
1.3 Demo features of bootloader application
This document describes several different M68HC(S)08, ColdFire V1 (CFV1), and Kinetis bootloader
implementations that vary mainly because the targets M68HC(S)08, CFV1, and Kinetis MCUs have
different features. Several features of the M68HC(S)08, CFV1, and Kinetis Family are also demonstrated,
making this document useful to a wider audience than those who require only the bootloader. The different
M68HC(S)08, CFV1, and Kinetis implementations also demonstrate the following features:
• Use of built-in ROM routines for FLASH self-programming (see also AN1831, AN2545, and
AN2635 in References).
• User implementation of in-circuit reprogramming routines on ROM-less MCUs such as the
MC68HC908GP Family or the MC9S08GB/GT Family.
• Use of different implementations of the FLASH block protection technique (MC68HC908GP,
MC68HC908GR, MC68HC908EY, versus MC68HC908JK/JL Families).
• Implementation of software SCI on SCI-less MCUs, such as the MC68HC908JK/JL Family.
• Use of the internal clock generator and its trimming (for the MC68HC908KX Family), for HCS08
Families (MC9S08GB/GT).
• EEPROM programming (for the MC68HC908AB/AS/AZ Family).
• USB communication implementation on USB2.0 Full-speed HS08 MCUs, such as the
MC68HC908JW Family, HCS08JM and MCF51JM Family.
• Use implementation of flash programming routines for the HCS08 and the ColdFire (V1) devices
(see also AN3492 in References).
2 FC protocol description
As described in Bootloader application requirements implementation must be simple and use low memory.
Therefore, the protocol running between the master PC and slave MCU is also very simple. It is called FC
protocol because one significant character (acknowledge or ACK) 0xFC or 11111100b is used.
This section describes the protocol used to communicate between the PC and target MCU to reprogram
the MCU. An explanation of family-specific implementation features follows a general description.










