Существует отладочная плата nRF5340-DK, которая может выступать в роли программатора J-Link. Вот так она выглядит.
А это условное обозначение nRF5340-DK
Отладочная плата 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 | Шлейф для соединения программатора и целевой платы | 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, которая делает такие разъёмы-веснушки и она тоже объявила России эмбарго. При этом этот шлейф сам по себе не закрепляется на плате. Для него нужна специальная гильза/цанга.
Распиновка шлейфа Tag-Connect такая. Это проверено DMM(ом).
Со стороны Target платы разъём Tag-Connect выглядит просто как 10 pad(ов) и 3 отверстия.
Подключать 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 отвечает. Значит прошивка прошилась. Успех!
В идеале конечно нужен оригинальный кабель 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 случайно оказался в углу электронной платы.
Проблема китайского разъёма-прищепки в том что его очень сложно правильно насадить. Направляющие отсутствуют и поэтому пины сползают. Пины постоянно сползают вбок и программатор не видит 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-пиновая вилка прижимается оригинальной цангой в трёх точках.
Вот общая подсказка по подключению SWD шлейфа к вилочному разъёму P20
А теперь очень важный контринтуитивный момент. Вам также понадобится вот такая PCB- переходник.
Это не просто рекламная пластинка, которую кладут в пакет при покупке оригинального шлейфа 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-CLIP-3PACK Retaining CLIP board
https://docs.jaredwolff.com/nrf9160-programming-and-debugging.html
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 |