This document provides information on downloading software to nRF52 Series devices and is intended for developers of flash download tools. It is meant to serve as a starting point for nRF52 device support in production tools and is intended to accelerate the engineering process of supporting nRF52 devices. This document describes a robust way to program devices, and in many cases steps can be skipped if assumptions can be made, for example if the chip has never been programmed before and its flash is completely erased or if the chip is unprotected.
Before continuing to read this document, we recommend that you get to know solutions by our partners Elnec, Hi-Lo Systems, and SEGGER Production Programmers, who fully support programming nRF52 series devices in production.
- Elnec
-
- Production Programmers: Gang programmers and in-system programmers (ISP)
- Hi-Lo Systems
- SEGGER
-
- SEGGER Production Programmers: ISP programmers that program one device at a time. Ease the implementation into a production site by allowing the flash programming to be triggered manually or remotely.
We also recommend that you read the following documentation:
- nRF52832 Product Specification
- Key sections: CPU, Memory, NVMC — Non-volatile memory controller, BPROT — Block protection, UICR — User information configuration registers, Debug interface (DIF) mode
- Useful sections: POWER — Power supply, CLOCK — Clock control
- nRF52 DK Hardware Files: Provides guidance for pin connections among other things.
- Test cases: Helps verify that your programming algorithms cover important edge cases (not complete test coverage by any means).
The following steps cover most corner cases. Things that this document takes into consideration when coming up with this programming flow are:
- Access port protection was enabled by a previously programmed application on the device that needs to be overwritten for any reason.
- Block protection was enabled by a previously programmed application on the device that may need to be overwritten or a different region of flash may need to be programmed while keeping the existing program unchanged.
- A watchdog timer has been enabled by a previously programmed application on the device and may reset the device. However, this document does not cover all edge cases.