MAXQ20-Based Microcontroller Bootloader Command Reference Rev 1; 9/13 Maxim Integrated cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim Integrated product. No circuit patent licenses are implied. Maxim Integrated reserves the right to change the circuitry and specifications without notice at any time. Maxim Integrated 160 Rio Robles, San Jose, CA 95134 USA 1-408-601-1000 © 2013 Maxim Integrated Products, Inc.
MAXQ20-Based Microcontroller Bootloader Command Reference The MAXQ20 microcontroller core used in many of Maxim’s products employs a firmware bootloader accessible through the programming interface. The command set used by the bootloader is common across all MAXQ20core devices, with additional commands supporting unique features of specific devices.
MAXQ20-Based Microcontroller Bootloader Command Reference Loader Protocol Layer Bootloader commands are segregated by command family, designated. 0 to F. Commands within a family have a common functionality. Family F commands are target-specific that have special features in common. All bootloader commands begin with a single command byte. The high four bits of this command byte define the command family (from 0 to 15), while the low four bits define the specific command within that family.
MAXQ20-Based Microcontroller Bootloader Command Reference Family 0 Commands (Always Available) Command 00h—No Operation Input Output Byte1 00h 03Eh Command 01h—Exit Loader Input Output Byte1 01h 03Eh Byte2 00h This command causes the bootloader command loop to exit. Upon exit, the SPE bit is cleared and the device performs and internal reset. Following the reset, execution jumps to the beginning of application code at address 0000h.
MAXQ20-Based Microcontroller Bootloader Command Reference Table 2. Bootloader Status Flags FLAG BIT 0 1 2 3:8 MEANING Password Lock. 0 – Password protection of bootloader and debugging functions is disabled. 1 – 32-byte password match against a stored password (in program space words 0010h– 001Fh) required to allow access to the bootloader and in-circuit debugging functions. Word/Byte Mode. 0 – The bootloader is currently in byte mode for memory reads/writes.
MAXQ20-Based Microcontroller Bootloader Command Reference Command 08h—Get Loader Version Input Output Byte1 08h Byte2 00h Byte3 00h VersionL Byte4 00h VersionH Byte5 00h 03Eh This is a factory verification command and is included here only for completeness. Command 09h—Get Utility ROM Version Input Output Byte1 09h Byte2 00h Byte3 00h VersionL Byte4 00h VersionH Byte5 00h 03Eh This is a factory verification command and is included here only for completeness.
MAXQ20-Based Microcontroller Bootloader Command Reference Family 1 Commands—Load Variable Length Command 10h—Load Code Variable Length Input Output Byte1 Byte2 Byte3 Byte4 10h Length AddrL AddrH (Length) Bytes Data to load Byte Length+5 00h Byte Length+6 00h 03Eh This command programs (Length) bytes of data into the program flash starting at byte address (AddrH:AddrL), with the following restrictions.
MAXQ20-Based Microcontroller Bootloader Command Reference Family 2 Commands—Dump Variable Length Command 20h—Dump Code Variable Length Input (to dump < 256 units) Output Input (to dump 256+ units) Output Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 (Length) Bytes Byte Length+7 20h 1 AddrL AddrH Length 00h 00h... 00h Memory contents 03Eh Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 (Length) Bytes Byte Length+8 20h 2 AddrL AddrH LenL LenH 00h 00h...
MAXQ20-Based Microcontroller Bootloader Command Reference Family 3 Commands—CRC Variable Length Command 30h—CRC Code Variable Length Input (to CRC < 256 units) Output Input (to CRC 256+ units) Output Byte9 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8 30h 1 AddrL AddrH Lengt h 00h 00h 00h 00h CrcH CrcL 03Eh Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8 Byte9 Byte10 30h 2 AddrL AddrH LenL LenH 00h 00h 00h 00h CrcH CrcL 03Eh This command has a slightly diffe
MAXQ20-Based Microcontroller Bootloader Command Reference Family 4 Commands—Verify Variable Length Command 40h—Verify Code Variable Length Input Output Byte1 Byte2 Byte3 Byte4 40h Length AddrL AddrH (Length) Bytes Data to verify Byte Length+5 00h Byte Length+6 00h 03Eh This command operates in the same manner as the “Load Code Variable Length” command, except that instead of programming the input data into flash memory, it verifies that the input data matches the data already in code space.
MAXQ20-Based Microcontroller Bootloader Command Reference Family 5 Commands—Load and Verify Variable Length Command 50h—Load and Verify Code Variable Length Input Byte1 Byte2 Byte3 Byte4 50h Length AddrL AddrH (Length) Bytes Data to load and verify Byte Length+5 00h Output Byte Length+6 00h 03Eh This command combines the functionality of the “Load Code Variable Length” and “Verify Code Variable Length” commands.
MAXQ20-Based Microcontroller Bootloader Command Reference Family 9 Commands—Load Fixed Length Command 90h—Load Code Fixed Length Input Output Byte1 90h Byte2 CodeLen Byte3 AddrL Byte4 AddrH Byte5 Data1 Bytex Data(x-4) Byte21 00h Byte22 00h 03Eh This command loads a block of 16 bytes into the program memory starting at the specified address. The address, which must be from 0000h–07FFh, is rounded down to the nearest block boundary (multiple of 16) before the data is loaded.
MAXQ20-Based Microcontroller Bootloader Command Reference Family B Commands—CRC Fixed Length (Password Protected) Command B0h—CRC Code Fixed Length Input Output Byte1 B0h Byte2 00h Byte3 00h Byte4 00h Byte5 00h Byte6 00h CRCL Byte7 00h CRCH Byte8 00h 3Eh Byte7 00h CRCH Byte8 00h 3Eh This command returns the CRC-16 value (CRCH:CRCL) of the entire program memory Command B1h—CRC Data Fixed Length Input Output Byte1 B1h Byte2 00h Byte3 00h Byte4 00h Byte5 00h Byte6 00h CRCL This command is
MAXQ20-Based Microcontroller Bootloader Command Reference Family C Commands—Verify Fixed Length Command C0h—Verify Code Fixed Length Input Output Byte1 C0h Byte2 CodeLen Byte3 AddrL Byte4 AddrH Byte5 Data1 Byte6-21 xx Byte22 Data16 Byte23 00h Byte24 00h 3Eh This command operates in the same manner as the “Load Code Fixed Length” command, except that instead of programming the input data into flash memory, it verifies that the input data matches the data already in code space.
MAXQ20-Based Microcontroller Bootloader Command Reference Family D Commands—Verify Fixed Length Command D0h—Load/Verify Code Fixed Length Input Output Byte1 D0h Byte2 10h Byte3 AddrL Byte4 AddrH Byte5 Data1 Byte6-21 xx Byte22 Data16 Byte23 00h Byte24 00h 3Eh This command combines the functionality of the "Load Code Fixed Length" and "Verify Code Fixed Length" commands Command D1h—Load/Verify Data Fixed Length Input Output Byte1 D1h Byte2 04h Byte3 AddrL Byte4 AddrH Byte5 Data1 Byte6 Data
MAXQ20-Based Microcontroller Bootloader Command Reference Family E Commands—Erase Fixed Length Command E0h—Erase Code Fixed Length Input Output Byte1 E0h Byte2 00h Byte3 AddrL Byte4 AddrH Byte5 00h 03Eh This command erases (programs to FFFFh) all words in a 512-word page of the program flash memory. The address given should be located in the 512-word page to be erased.
MAXQ20-Based Microcontroller Bootloader Command Reference Family F Commands—Device Specific Commands Family F commands are device-specific so only one command of a given command code will be supported per device. The applicable user’s guide has details on which commands are supported for that device.
MAXQ20-Based Microcontroller Bootloader Command Reference Revision History REVISION NUMBER 0 REVISION DATE 4/13 1 9/13 18 DESCRIPTION Initial release In Table 2, changed the description of bit 0 for Get Status flags from Security Lock to Password Lock PAGES CHANGED — 5