Розблокування захисту пам’яті 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 на платі.
- Встановіть на комп’ютері nrfjprog: завантажити.
- Знайдіть гребінки P1 та P20: nRF52833 DK Connectors.
- Під’єднайте контакти
SWD IO
,SWD SCK
,RESET
,GND DETECT
,VTG
гребінки P20 до контактівSWD IO
,SWD SCK
,RESET
,GND
,VDD
(живлення, плюс) цільової плати. - За необхідності, для живлення від DK плати: під’єднайте контакти
VDD
,GND
гребінки P1 до контактівVDD
,GND
цільової плати. - Під’єднайте nRF52 DK до комп’ютера.
- Відкрийте термінал.
- В терміналі виконайте команду:
nrfjprog -f NRF52 --recover
. - Захист вимкнено. Завантажте нову прошивку на пристій.
Метод 2 - Використання офіційного J-Link¶
Повторіть кроки з методу nRF52 DK з врахуванням особливості вашого J-Link. Список кроків та утиліт співпадає, відрізняється тільки інтерфейс підключення.
Метод 3 - Через OpenOCD¶
- Встановіть OpenOCD.
- Під’єднайте J-Link або його аналог до цільового пристрою.
- Під’єднайте J-Link до комп’ютера.
- Запустіть OpenOCD в режимі сервера.
- Під’єднайтесь до сервера OpenOCD по Telnet.
- Виконайте наступні команди в 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
- Захист вимкнено. Завантажте нову прошивку на пристій.