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.
Important: This paper focuses on nRF52 specific details. It does not explain
general concepts, such as Arm®, CoreSight™, or SWD. For information on
these, see
ARM Infocenter.
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
-
- 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 Development Kit 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).
Figure 1. Programming process high-level flow
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.