Binary Communication Protocol

Microchip External Memory Programmer

External Memory Programmer
Binary Communication Protocol

The External Memory Programmer uses an ACK/NACK communication method to transfer the data contained in the HEX file to the device. All packets from the host to device must be ACK/NACKed, but do not require a payload.

The following is a description of the communication method with uploading a HEX file.

  1. An echo packet is sent. This packet has no payload and is used to establish communication between the host and device.
  2. A packet requesting the maximum packet size is sent. This is used by the host to ensure that the packet length is never larger than the device's resources. Devices are able to dictate the resource requirements for the packet.
  3. A packet requesting that the memory be erased. The device will need to make sure that the memory is in the proper state to write data.
  4. The memory write packets are sent. The amount of packets required depend on the HEX file and the maximum packet size.
  5. The verify memory packets are sent. The device will perform a checksum over a memory region.
  6. The done packet will be sent. The device is notified that all memory uploading and verifying are complete.
The binary packets used in the External Memory consist of a header followed by a payload. The payload size can range from 0 to 65,000 bytes. The payload size is determined by the device.


The binary packets use commands to instruct the device what actions are required.

The following commands are supported by the External Memory Programmer
  • ECHO - A zero payload command. Used to establish communication with a device.
  • MEMORY ERASE - requesting that the memory be prepared to be written to.
  • MEMORY WRITE - write the data in the payload to a memory section
  • MAX PAYLOAD SIZE - requesting the maximum payload size accepted by the device
  • MEMORY VERIFY - requesting a checksum over a memory range
  • DONE - all memory programming and verifying are done


External Memory Programmer
Version 2.3.2
Release: July, 2012
Copyright (c) 2012 Microchip Technology, Inc. All rights reserved