1 MPLAB® Harmony v3 UART-I2C Factory Bootloader for PIC32CZ CA70/MC70
The Bootloader programmed at production by Microchip is an MPLAB Harmony v3-based Bootloader capable of programming an application binary using either the UART or I2C interface.
Key Features
- The Bootloader is programmed at the
Flash memory location (
0x00400000
) and takes up to 8 KB of Flash memory. - The Bootloader startup code copies
the Bootloader from the Flash memory to the SRAM from (
0x20400010
) before calling the main function. The main function (and therefore the entire Bootloader) runs from the SRAM to allow upgrading of the Bootloader code itself in Flash memory. - The Bootloader provides a feature to read the current version of the Bootloader by using the read version command.
- The Bootloader provides two options
to trigger the Bootloader mode:
- External trigger: Bootloader will be triggered based on the status of a dedicated GPIO pin.
- Internal trigger: Bootloader will be triggered based on the trigger pattern written at a specific location in the SRAM by the application firmware.
- After a new application image is programmed, the Bootloader will verify the programmed application space by generating a CRC-32 value and comparing it with the CRC-32 received from the Host. The application CRC will not be verified after every reset before jumping to the application space for faster startup.
- The Bootloader will read the first 4
bytes of application space (
0x00402000
) to decide if a valid application is present. If the contents of the first 4 bytes are not0xFFFFFFFF
, then the Bootloader assumes a valid application is present and jumps to the application. If a valid application is not present, then the Bootloader will wait, and remain in Bootloader mode.
Key Requirements
- By default, the Bootloader expects
the application to start from the location
0x00402000
. Therefore, the application must be built to start from the0x00402000
Flash location. - The external pull-ups must be used for the I2C SDA and SCL lines.

