1 Bootloaders
This section provides information about Microchip WLCSP family of devices that come with a preprogrammed bootloader, the protocol used, and pinout details. It also provides details on the non-WLCSP family of devices that have bootloader support.
The bootloader library can be used to upgrade the firmware on a target device without the need for an external programmer or debugger.
- Firmware upgrades
- Application integrity
- Starting the application
The following table provides a list of the WLCSP family of devices that include a factory-programmed bootloader.
Family | Application Note | Protocol | Comments |
---|---|---|---|
SAMD1x | — | UART | — |
SAMD20 | AT09002 | I²C/SPI | AT09002
SAM I²C - SPI bootloader |
SAMD21 | AT09002 | I²C/SPI | AT09002
SAM I²C - SPI bootloader |
SAMC2x | AT09002 | UART/I²C | AT09002
SAM I²C - SPI bootloader |
SAML1x | AN2699 | UART | AN2699 SAM UART bootloader |
SAML21 | AT09002 | I²C/SPI | AT09002
SAM I²C - SPI bootloader |
SAML22 | AT09002 | I²C/SPI | AT09002
SAM I²C - SPI bootloader |
SAMD5x/ E5x | — | UART | — |
SAMG5x | AT09002 | I²C | AT09002
SAM I²C - SPI bootloader |
Hardware Pin Configurations
The following table provides the I2C and SPI pin configurations for the WLCSP bootloaders.
Pin Description | SAML21 | SAML22 | SAMD1x | SAMD20 | SAMD21 | SAMC2x | SAMG5x |
---|---|---|---|---|---|---|---|
Reset | RESETN | RESETN | RESETN | PB12 | RESETN | RESETN | RESETN |
SDA | PA08 | PA12 | PA06 | PA08 | PA08 | PA22 | PA03 |
SCL | PA11 | PA13 | PA05 | PA09 | PA11 | PA23 | PA04 |
MISO | PA08 | PA12 | PA06 | PA08 | PA08 | - | PA12 |
MOSI | PA11 | PA15 | PA05 | PA18 | PA11 | - | PA13 |
SCK | PA09 | PA13 | PA07 | PA09 | PA09 | - | PA14 |
Handshake pin | PA27 | PA16 | PA14 | PB13 | PA14 | - | PA01 |
CS | PA10 | PA14 | PA04 | PA17 | PA10 | - | PA11 |
The following table provides the UART pin configurations for the WLCSP bootloaders.
Device | UART TX | UART RX | Entry |
---|---|---|---|
SAMC2x | PA22 | PA23 | PA19 |
SAML1x | PA16 | PA17 | PA19 |
SAMD5x | PB12 | PB13 | PA27 |
- The bootloader entry pin has an active-low level, and its value is sampled at the beginning of the bootloader execution. Although an internal pull-up resistor is enabled before sampling the pin, it is recommended that the bootloader entry pin is pulled-up externally for improved noise immunity.
- The UART settings used by this bootloader are 115200 8N1.
- This bootloader supports UART baud rate auto-tuning. This feature may be useful for Hosts that cannot set the exact value of the baud rate. Auto tuning can be initiated at any point of the operation. To perform auto-tuning, the Host must send a break signal (at least 11 bits of low level) followed by a character 0x55. No response is expected for this request.
The following table provides a list of non-WLCSP family of devices that include a factory-programmed bootloader.
Family | Protocol | Comments |
---|---|---|
SAM4S/ SAM4E/ SAM4C/ SAM3x | UART/USB | 16 kB ROM with embedded bootloader routines (UART, USB) and IAP routine. |
SAM E70/ S70/V70/V71 | UART/USB | 16 kB ROM with embedded bootloader routines (UART, USB) and IAP routine. |
PIC32CM LE/LSx | USB/I2C | The bootloader resides in the Flash memory location (0x0000-0000) and utilizes up to 4KB of Flash memory. It comes with default protection against write/erase through the SULCK and BOOTPROT fuse settings. |
Options to program bootloaders are as follows:
- Microchip pre-programmed at the wafer level (QuickTime Programming)
- Microchip off-board programming (microchipDIRECT programming services)
- On-board programming by customer
- Off-board programming by customer
How to use bootloaders:
- To know how the bootloader library works, refer to the https://github.com/Microchip-MPLAB-Harmony/bootloader.
For additional information on the PIC32CM LE/LS family bootloader, refer to the
github.com/Microchip-MPLAB-Harmony/bootloader_apps_pic32cm_le_ls.