Как стать автором
Обновить

Отладочная плата NRF5340-DK в качестве программатора J-Link

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.2K

Существует отладочная плата nRF5340-DK, которая может выступать в роли программатора J-Link. Вот так она выглядит.

А это условное обозначение nRF5340-DK

12 листов схемотехники на 1 странице блок-схемы
12 листов схемотехники на 1 странице блок-схемы

Отладочная плата NRF5340-DK поддерживает программирование и пошаговую отладку внешних плат с микроконтроллерами серий nRF51, nRF52, nRF53. В этом случае отладка выступает как SEGGER J-Link. Для этого на плате заложен отдельный интерфейсный MCU (U2)

Что надо из оборудования?

Наименование

Зачем это надо

Где почитать про это

Стоимость

Валюта

NRF5340-DK

Программатор

https://www.nordicsemi.com/Products/Development-hardware/nrf5340-dk

61.65

EUR

Кабель USB-A USB(micro)

Кабель для соединения PC и программатора

600

RUR

TC2050-IDC-NL-050-ALL

Шлейф для соединения программатора и целевой платы

https://www.tag-connect.com/product/tc2050-idc-nl-050-all

59

USD

TC2050-CLIP-3PACK Retaining CLIP board

Зажим разьема чтобы не придерживать рукой во время пошаговой отладки

https://www.tag-connect.com/product/tc2050-clip-3pack-retaining-clip

18

USD

Target плата

Целевое устройство

У всех своя

???

???

Вот структура подключения оборудования

Из софтвера нужна только одна лишь консольная утилита nrfjprog.exe. Обычно после накатывания ToolChain(а) она лежит по адресу C:\Program Files (x86)\Nordic Semiconductor\nrf-command-line-tools\bin\nrfjprog.exe

Когда внешняя плата подключена к питанию, то интерфейсный MCU определяет наличие напряжения и программирует и отлаживает её вместо того микроконтроллера, что на самой отладочной плате (U1).

Если подключены внешние микроконтроллеры сразу ко всем разъёмы для программирования, то интерфейсный MCU будет работать согласно вот этому приоритету

Приоритет

Разъём

pins

Комментарий

Шаг, мм

1

P19

10

External Target

1,27

2

P20

13

External Target

2,25

3

--

--

OnBoard Target

--

4

J4

10

Interfase MCU

1.27

На плате NRF5340-DK для программирования есть разъёмы P19, P20 и J4.

Отладочная плата может снабжать питанием целевую плату через разъём P19. Однако для этого надо взять паяльник и установить каплю припоя на SB47.

При программировании отладочной платой надо убедиться, что питание на отладочной плате (3V) совпадает с питанием на целевой плате. Для надежности можно запитывать целевую плату прямо с программатора.

Для переключения на P20 (SWD1) нужно подать 0V на провод SWD1_SEL или 3.0 на пин P20.3.

Хорошо, с разъёмом на стороне программатора определились. Что так с разъёмом для программирования на стороне Target устройства? Вот так (Рис. 3) выглядит разъём для программирования на стороне Target устройства. Узнаете? Это Tag-Connect.

Существует только одна контора в мире tag-connect.com, которая делает такие разъёмы-веснушки и она тоже объявила России эмбарго. При этом этот шлейф сам по себе не закрепляется на плате. Для него нужна специальная гильза/цанга.

TC2050-CLIP-3PACK Retaining CLIP board for TC2050-NL cables
TC2050-CLIP-3PACK Retaining CLIP board for TC2050-NL cables

Распиновка шлейфа Tag-Connect такая. Это проверено DMM(ом).

Со стороны Target платы разъём Tag-Connect выглядит просто как 10 pad(ов) и 3 отверстия.

Рис. 3 FootPrint target устройства
Рис. 3 FootPrint target устройства

Подключать Target надо по интерфейсу SWD согласно этому правилу.

В связи с этим тут начинается импровизация. Пайка под микроскопом к веснушкам FootPrint(а) привела вот к такому художеству от слова "худо".

скрипт восстановления

echo off
cls

set FlashTool=nrfjprog

set options= --recover --family NRF53 --log app_recover_log.txt --coprocessor CP_APPLICATION
call %FlashTool% %options%

Вот скрипт пере прошивки:

echo off
cls

set project_name=some_build_name
set project_dir=%cd%
set workspace_dir=%cd%\..\..\..\
set tool_dir=%cd%\..\..\..\tool
echo project_dir=%project_dir%
set artefact_hex=%project_dir%\build\%project_name%.hex
set FlashTool="C:\Program Files (x86)\Nordic Semiconductor\nrf-command-line-tools\bin\nrfjprog.exe"

set options=--iface USB --family NRF53 --coprocessor CP_APPLICATION --program %artefact_hex%  --log --chiperase --verify --reset 
call %FlashTool% %options%
echo workspace_dir=%workspace_dir%
echo tools_dir=%tools_dir%

call %tool_dir%\launch_terminal.bat 10 460800 "build_name"

тем не менее программатор U1 обнаружил Target и прошить удалось.

Heart Beat LED мигает, UART-CLI отвечает. Значит прошивка прошилась. Успех!

фрагмент UART лога загрузки прошивки
фрагмент UART лога загрузки прошивки

В идеале конечно нужен оригинальный кабель Tag-Connect, однако можно попробовать и более доступный вариант. На Aliexpess гаджет называется "2.54mm 2.0mm 1.5mm 1.27mm PCB Clip Clamp Fixture Probe Pogo Pin Download Program Burn DIY". Вот ссылка https://aliexpress.ru/item/1005004383550982.html?spm=a2g2w.orderdetail.0.0.742a4aa6NTAxyb&sku_id=12000028986468126

Так переходник выглядит в отзывах о товаре.

Всего 41 деталь. Запах от пластика конечно ужасный. Как жженая пластмасса.

Основная деталь этой прищепки - это фиолетовая PCB плата переходник

схема соответствия получается вот такая

Обычно вкупе с SWD отладкой происходит ещё и отладка по UART-CLI. Поэтому выясним к каким пинам на микроконтроллере подключиться по UART.

pin

GPIO

WireName

DIR

Pull

1

P1.02

UART0_TX

Out

Air

2

P1.03

UART0_RX

In

Up

вот так эти пины выглядит на корпусе чипа. Они слева от микроконтроллерного модуля BT40

Благодаря прищепке с Pogo Pin программировать Tagret стало значительно удобнее. Теперь не надо делать пайку под микроскопом.

было (вверху)- стало (внизу)
было (вверху)- стало (внизу)

Стоит отметить, что китайский переходник может подцепить только те платы у которых разъём Tag-Connect расположен на краю платы сбоку и в углу. Таким переходником не подключишься в центр платы, например, если захотите поменять прошивку самого программатора (микроконтроллер U2). В этом случае мне просто повезло, что на Target PCB разъём Tag-Connect случайно оказался в углу электронной платы.

можно подцепиться к TagConnect если он в углу PCB
можно подцепиться к TagConnect если он в углу PCB

Проблема китайского разъёма-прищепки в том что его очень сложно правильно насадить. Направляющие отсутствуют и поэтому пины сползают. Пины постоянно сползают вбок и программатор не видит target. Только с 4ой попытки удается насадить разъём.

Сравнение шлейфов для программирования микроконтроллера

Параметр

Китайский PCB Clip Clamp Fixture Probe Pogo Pin

Tag-Connect

Единица

измерения

Цена

253

6237

RUR

Направляющие

нет

есть

-

Доступность

просто

трудно

-

Vendor

China

USA

страна

Нужна ли цанга

нет

да

Стоимость доставки в СНГ

0

5909

RUR

Суммарная цена

253

12203

RUR

Если же использовать оригинальный кабель Tag-Connect, то соотношение проводов получается такое:

В Москве на Avito есть продавец, который делает резиновые цанги для Tag-Connect на 3-D принтере из какогото полимера.

Товар называется Tag Connect grip-6 grip-10. Всего 100RUR за штучку. Рекомендую его решение. Отличная альтернатива оригинальной цанге.

Вот так должен выглядеть стандартный способ подключения шлейфа tag-connect для программирования внешнего target-устройства по интерфейсу SWD. 13-пиновая вилка прижимается оригинальной цангой в трёх точках.

Пример правильного подключения шлейфа Tag-Connect
Пример правильного подключения шлейфа Tag-Connect

Вот общая подсказка по подключению SWD шлейфа к вилочному разъёму P20

подключение SWD шлейфа к вилочному разъёму 2,54 P20
подключение SWD шлейфа к вилочному разъёму 2,54 P20

А теперь очень важный контринтуитивный момент. Вам также понадобится вот такая PCB- переходник.

TC-FOOTPRINT-PCB Footprint Demo PCB with 6, 10 & 14-pin
TC-FOOTPRINT-PCB Footprint Demo PCB with 6, 10 & 14-pin

Это не просто рекламная пластинка, которую кладут в пакет при покупке оригинального шлейфа Tag-Connect. Зачем это надо? Дело в том, что скорее всего Вы будете собирать свой Costom шлейф типа такого

После производства вашего Custom шлейфа его надо будет хорошенечко протестировать. Эта TC-FOOTPRINT-PCB Footprint Demo PCB поможет Вам вручную или автоматически прозвонить целостность каждой жилки всего шлейфа. Вам придется купить оригинальный TC-FOOTPRINT-PCB Footprint Demo PCB, либо спроектировать аналог этой простенькой печатной платы TC-FOOTPRINT-PCB Footprint Demo PCB https://www.tag-connect.com/product/tc-footprint-pcb-footprint-demo-pcb-with-6-10-and-14-pin-legged-and-no-legs-footprints


Что дальше?
Техника не стоит на месте. Появилась новая перспективная технология перепрошивки. Называется Edge-Connect. Разъёмы стали еще на порядок меньше.

Вывод

Как видите в программировании микроконтроллеров перепрошить электронную плату это порой целое приключение. При этом стоимость пере прошивки микроконтроллеров серии nrf53xx достаточно высокая. Если прошиваться оригинальным оборудованием, то это однозначно будет стоить Вам более 140 EUR (12169 RUR). Если прошивать кустарными способами, то это будет стоить однозначно больше 70 EUR (5924 RUB)

Links

TC2050-IDC-NL-050-ALL

TC2050-CLIP-3PACK Retaining CLIP board

Официальная спека

https://docs.jaredwolff.com/nrf9160-programming-and-debugging.html

Аналог Tag-Connect(а)

TC-FOOTPRINT-PCB Footprint Demo PCB https://www.tag-connect.com/product/tc-footprint-pcb-footprint-demo-pcb-with-6-10-and-14-pin-legged-and-no-legs-footprints

Акроним

Расшифровка

SB

Solder Bridge

SWD

Serial Wire Debug

USB

Universal Serial Bus

LED

light-emitting diode

VDD

Voltage drain drain

DMM

Digital Multi Meter

DK

Dev Kit

MCU

Micro Controller Unit

SW

SoftWare

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
У вас есть плата NRF5340-DK?
25% да5
75% нет15
Проголосовали 20 пользователей. Воздержался 1 пользователь.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы программировали микроконтроллеры серии nRF53?
28.57% да6
71.43% нет15
Проголосовал 21 пользователь. Воздержался 1 пользователь.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы пользовались программаторами класса J-Link?
84% да21
16% нет4
Проголосовали 25 пользователей. Воздержались 2 пользователя.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Каким программатором вы пользовались?
79.31% J-link23
68.97% ST-Link20
10.34% я в душе нечаю какой у меня там программатор. Просто коробочка какая-то3
20.69% другой6
13.79% да я только загрузчиком прошивки обновляю. Мне программатор вообще не нужен4
10.34% XDS1103
27.59% USBasp ISP8
Проголосовали 29 пользователей. Воздержался 1 пользователь.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
По какому интерфейсу вы обычно прошиваете микроконтроллер?
72.41% SWD21
41.38% JTAG12
37.93% UART11
31.03% SPI9
13.79% bluetooth4
6.9% CAN2
6.9% 10XXBaseXX2
10.34% о чём вообще речь?3
13.79% другой4
Проголосовали 29 пользователей. Воздержался 1 пользователь.
Теги:
Хабы:
Всего голосов 7: ↑5 и ↓2+3
Комментарии15

Публикации

Истории

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург