We detect you are using an unsupported browser. For the best experience, please visit the site using Chrome, Firefox, Safari, or Edge. X
Maximize Your Experience: Reap the Personalized Advantages by Completing Your Profile to Its Fullest! Update Here
Stay in the loop with the latest from Microchip! Update your profile while you are at it. Update Here
Complete your profile to access more resources.Update Here!

Software Library

Bootloader for dsPIC33A Digital Signal Controllers


Many embedded system designs need a method for updating a processor's firmware via standard communication buses. The bootloader for dsPIC33A DSCs uses Microchip Device Firmware Update (MDFU) Protocol, which provides a structured approach for updating the firmware of a client processor using a host processor over various communication interfaces. The figure below illustrates how an MDFU host, which can be either a PC or an embedded processor, transfers a new client application to an MDFU client running on a client processor. The client firmware update code then updates the client application with the new version received from the host.

The MDFU protocol offers several important characteristics for supporting the dsPIC33A Digital Signal Controller (DSC) devices. These characteristics include:

  • Small Memory Footprint: Efficiently updates firmware while maintaining a small memory footprint
  • File Transfer Approach: Uses a simple, stable, and processor-independent file transfer method
  • Processor Agnostic: Commands and responses are compatible with various processor architectures
  • Host and Client Compatibility: Hosts can update any attached MDFU client processor
  • Customization: Supports processor-specific features without modifying the protocol
  • Simplicity and Stability: Ensures reliable firmware updates with minimal compatibility issues
  • Multiple Communication Interfaces: Easily adds support for new communication buses
  • Corruption Detection and Recovery: Includes mechanisms for detecting and recovering from command/response corruption
  • Code Reuse: Maximizes code reuse across different communication interfaces

These characteristics make the MDFU protocol a robust and versatile solution for updating the firmware of dsPIC33A DSCs, ensuring compatibility, reliability, and ease of implementation across various embedded system designs.

Demo: dsPIC33A Bootloader and Firmware Upgrade Demo

This example demonstrates dsPIC33A DSC firmware update implemented on the Curiosity Platform Development Board (EV74H48A) with a dsPIC33AK128MC106 DIM (EV02G02A), showcasing the following features:

  • Firmware Update via UART: Utilizes the Microchip Device Firmware Update (MDFU) protocol to ensure reliable firmware update over UART
  • Application Verification: Implements a 32-bit CRC-32Q signature for verifying the integrity of the application firmware

To access the complete dsPIC33A DSC MDFU based Bootloader library and demo, visit: dsPIC33A Bootloader and Firmware Upgrade Demo

 

Bootloader for dsPIC33A Digital Signal Controllers

Documents


Title
Document Category
Date
Microchip Device Firmware Update Protocol Specification Supporting Collateral 18 Sep 2024 Download

Products


Title
Product
Title
dsPIC33AK64MC102
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK64MC102 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK64MC103
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK64MC103 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK128MC103
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK128MC103 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK128MC105
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK128MC105 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK32MC102
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK32MC102 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK32MC106
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK32MC106 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK32MC105
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK32MC105 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK64MC106
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK64MC106 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK128MC102
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK128MC102 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK32MC103
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK32MC103 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK64MC105
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK64MC105 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK128MC106
200 MHz 32-bit Single-Core Digital Signal Controller (DSC)
dsPIC33AK128MC106 200 MHz 32-bit Single-Core Digital Signal Controller (DSC)