nRF52832 Production Programming

nRF52832 Production Programming

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 CoreSight Components Technical Reference Manual.
Note: The PDF version of this document is available as an attachment.

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 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).
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.