Первая прошивка: адаптация проекта под DK или Dongle
Материал носит ознакомительный характер. Работа с электроникой и микроконтроллерами требует соблюдения техники безопасности; автор не несет ответственности за возможные повреждения оборудования или иной ущерб, возникший в ходе обучения.
Рабочее окружение в VS Code готово. Теперь пора «оживить» железо. В Arduino вы просто нажимали кнопку «Загрузка», но профессиональная работа с nRF52840 требует понимания того, как код попадает в чип.
Знакомство с устройствами
В экосистеме Nordic есть два основных типа плат. От того, что у вас в руках, зависит способ прошивки.
- Development Kit (DK) — большая отладочная плата. На ней установлен не только чип nRF52840, но и встроенный программатор J-Link. Он позволяет записывать код и пошагово отлаживать его, заглядывая в память микроконтроллера в реальном времени.
- Dongle — компактное устройство в форм-факторе флешки. У него нет встроенного программатора, поэтому для обновления прошивки мы используем USB-загрузчик.
| Характеристика | Development Kit (DK) | Dongle |
|---|---|---|
| Способ прошивки | Через J-Link | Через USB-загрузчик (DFU) |
| Интерфейс | Шина SWD | USB-порт |
| Удобство | Прошивка одной кнопкой | Нужно вручную входить в режим загрузки |
Что такое прошивка?
Прошивка — это бинарный файл с инструкциями для процессора Cortex-M4.
В Arduino программа кажется монолитной. Здесь же прошивка — это «слоеный пирог». Она объединяет ваше приложение, сетевой стек Bluetooth и загрузчик (Bootloader). Расширение nRF Connect для VS Code само собирает эти слои в один файл.
Практикум №1: Прошивка Development Kit
Процесс на DK почти не отличается от Arduino, но дает больше контроля.
- Подключение: Соедините DK с компьютером через порт
MCU USB. Переключатель питания переведите в положениеON. - Выбор платы: В VS Code (вкладка nRF Connect) нажмите
Add Build Configuration. Выберитеnrf52840dk_nrf52840. - Запись: Нажмите
Build, затем —Flash.
Важно: При нажатии
Flashкомпьютер связывается с чипом по интерфейсу SWD (Single Wire Debug). Это специальный протокол, через который J-Link управляет процессором.
Практикум №2: Прошивка Dongle
У донгла нет встроенного J-Link, поэтому кнопка Flash в VS Code для него не сработает (если не припаивать внешний программатор к контактам SWD на обороте).
Алгоритм работы:
- Сборка: Выберите таргет
nrf52840dongle_nrf52840и нажмитеBuild. - Режим загрузчика: Нажмите маленькую кнопку
Resetна донгле. Светодиод начнет плавно пульсировать красным — устройство готово к приему файла. - Запись: Откройте приложение nRF Connect Desktop — Programmer. Выберите устройство в списке, добавьте скомпилированный
.hexфайл из папки проекта и нажмитеWrite.
Почему код не прошивается?
Если что-то пошло не так, проверьте три момента:
- Ошибка в выборе платы. Код для DK не запустится на Dongle: у них разные схемы питания и распределение памяти.
- Кабель «только для зарядки». nRF52840 чувствителен к качеству связи. Если в кабеле нет линий данных, компьютер не увидит устройство.
- Драйверы. Если J-Link не отображается, переустановите драйверы SEGGER из состава Toolchain.
Что дальше?
Мы научились доставлять код в «мозг» устройства. Теперь можно мигать светодиодами или выводить данные в консоль.
Но есть нюанс: в коде мы пишем LED1, а как программа понимает, к какому именно контакту (пину) подключен этот светодиод? В Arduino это зашито в библиотеках, а в профессиональной среде Zephyr за описание железа отвечает Device Tree (Дерево устройств).
В следующем уроке разберемся, как описывать компоненты так, чтобы код работал на любой плате без изменений.