The Programming and Debugging Interface Disable (PDID) feature on PIC® and AVR® microcontrollers (MCUs) provides strong, hardware-based security for embedded systems. Our MCUs have long protected application code and data from breaches, and PDID extends this protection, allowing deployed designs to protect against sophisticated attacks using the Programming and Debugging Interface. Once enabled, PDID irreversibly locks a device from being erased or reprogrammed by the serial programming and debugging interface, effectively configuring the microcontroller into either a one-time programmable device or a device that can only be updated through a bootloader.
During pre-production, a device undergoes frequent changes, including changes to its firmware, configurations, encryption keys and/or bootloader code until the design is refined and ready for production. PDID should be enabled during this final production stage, just before deployment as it is a one-way fuse. Care should be taken to avoid enabling it until all pre-production is complete.
Enabling PDID on a device provides a hardware-based security layer, protecting it from external tools attempting to:
Once PDID is enabled, application code and data in memory are no longer accessible through the programming and debugging interface (ICSP for PIC MCUs and UDPI for AVR MCUs). Three levels of security can be implemented, depending on the specific need for the device. These settings, which configure the device to be in one of the following modes, are set prior to enabling PDID:
We offer both Quick Turn Programming (QTP) and Serialized Quick Turn Programming (SQTP), which allow you to upload hex code to your part during production. However, since PDID is permanent, it should be used with the understanding that these devices will have extremely limited Failure Analysis (FA) capabilities.
Learn more about PDID and hardware-based security in this overview video.
The 8-bit Microchip Device Firmware Update (MDFU) Client Library enables the creation of bootloaders for 8-bit MCUs. The solution uses the Microchip Firmware Image Builder (pyfwimagebuilder) tool to generate the application image file (.img) and MDFU (pymdfu) host tool to program the new image using a newly designed File Transfer Protocol (FTP).
Security is increasingly vital for embedded applications in IoT, defense, banking, healthcare and surveillance. This tech brief outlines memory organization and code protection in 8-bit PIC MCUs, focusing on the PIC18-Q24 family's PDID and SAFLOCK features. It also explains how to configure these for enhanced security.
Our ATECC608C device integrates the Elliptic Curve Diffie Hellman (ECDH) security protocol for secure encryption/decryption with Elliptic Curve Digital Signature Algorithm (ECDSA) sign-verify authentication for Internet of Things (IoT) devices.