Розблокування захисту пам’яті nRF52

Деякі модулі nRF52832 мають заблоковану flash-пам’ять з заводу. Прошивку з них не можна прочитати і нову прошивку не можна записати через ST-Link V2. Таким чином для використання модулів під свої проекти необхідно зняти захист (Write Protection) nRF52 та очистити вмість флеш-пам’яті через програматор.

Примечание

Зняти захист можливо виключно через J-Link, його клон або аналог з підтримкою JTAG. ST-Link V2 + SWD не підтримують команду для зняття захисту з флеш-пам’яті.

Метод 1 - Використання nRF52 DK

Для цього методу вам необхідно мати комплект розробника (dev kit) nRF52. Підійде комплект з будь-яким чіпом з сімества: nRF52 DK, nRF52840 DK (у форматі повнорозмірної плати, а не USB-ключа), nRF52833 DK, тощо. Головне - робочий J-Link на платі.

  1. Встановіть на комп’ютері nrfjprog: завантажити.
  2. Знайдіть гребінки P1 та P20: nRF52833 DK Connectors.
  3. Під’єднайте контакти SWD IO, SWD SCK, RESET, GND DETECT, VTG гребінки P20 до контактів SWD IO, SWD SCK, RESET, GND, VDD (живлення, плюс) цільової плати.
  4. За необхідності, для живлення від DK плати: під’єднайте контакти VDD, GND гребінки P1 до контактів VDD, GND цільової плати.
  5. Під’єднайте nRF52 DK до комп’ютера.
  6. Відкрийте термінал.
  7. В терміналі виконайте команду: nrfjprog -f NRF52 --recover.
  8. Захист вимкнено. Завантажте нову прошивку на пристій.

Метод 3 - Через OpenOCD

  1. Встановіть OpenOCD.
  2. Під’єднайте J-Link або його аналог до цільового пристрою.
  3. Під’єднайте J-Link до комп’ютера.
  4. Запустіть OpenOCD в режимі сервера.
  5. Під’єднайтесь до сервера OpenOCD по Telnet.
  6. Виконайте наступні команди в Telnet:
# Read APPROTECTSTATUS
# (0x0 Access port protection enabled - 0x1 APP disabled)
> nrf52.dap apreg 1 0x0c 0x00000000
# Write ERASEALL register
> nrf52.dap apreg 1 0x04 0x01
> reset
  1. Захист вимкнено. Завантажте нову прошивку на пристій.