• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение NRF52840

Может кто нибудь объяснить: мне нужен бутлоадер в формате uf2, дока меня шлет к https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases, но там бутлоадер в формате hex или архив с исполняемыми файлами. Что с этим всем делать???
Где взять готовый бутлоадер, в формате uf2&
 

azt59

Member
Чем вы собираетесь шить? J-link понимает hex из коробки, если другими способами то hex это простой текстовый файл с байтами данных и адресами на которые эти байты уложить, соответственно можно конвертировать в bin, ну и в uf2 вероятно не должно возникнуть проблем
 
Чем вы собираетесь шить? J-link понимает hex из коробки, если другими способами то hex это простой текстовый файл с байтами данных и адресами на которые эти байты уложить, соответственно можно конвертировать в bin, ну и в uf2 вероятно не должно возникнуть проблем
Как писал выше, у меня есть st-link и dap-link, а j-link не хотелось покупать бы. Вопрос в моем предыдущем сообщении: почему все ссылаются на страницу с бутлоадерами, где есть HEX файл и ZIP архив с тремя файлами, а в инструкции по nrf82540 написано: закиньте файл бутлоадера (uf2) на "диск" и готово. А где его взять то???
Второй вопрос по другому nrf52840: Как удалить приложение или залить новое ? Закинул в неё прошивку dap-link через бутлоадер, пробую обновлять версию бутлоадера - обновляется. А вот закидываю новую прошивку (мештастик), а dap-link остается на месте и прошивка мышастика не появляется, хотя видно что процесс заливки проходит. На сайте флешера мештастика есть nrf_erase.uf2, заливал её - результат тот же... dap-link ни стирается.
 

azt59

Member
Вы хоть немного ознакомтесь с даташитом на ваш чип, разберитесь с flash layout, что и на каких адресах лежит и с каких адресов стартует, а потом при прошивке смотрите в какие адреса и что шьёте, тут половина вопросов отпадет, что касаемо замены user app то прошив daplink он может поставить на флешку защиту от перезаписи, чтоб заменить его вам надо сначала флешку разлочить а потом пролить новое приложение, какой адекватный программатор даст самому себя затереть свои же адреса
 

azt59

Member
1000010919.jpgвот что первое нашлось, надо проверить, теперь смотрите что в какие адреса пытаетесь записать ну или запустить
 
Посмотреть вложение 15002вот что первое нашлось, надо проверить, теперь смотрите что в какие адреса пытаетесь записать ну или запустить
Спасибо за разъяснения. Не хотелось так глубоко вникать в тему, для того что бы один раз прошить бутлоадер (до сих пор не понятно чем, тратится на j-link не охота) и забыть. А придется потратить 250р, купив новый nrf52840, прошить свежий бутлоадер и забыть)

Кстати по поводу Вашей фразы: "какой адекватный программатор даст самому себя затереть свои же адреса ", Его бутлоадер же входит в режим прошивки и сам бутлоадер обновляется, почему тогда не заливает прошивку, не понятен смысл. Затер бы dap-link уже и бутлоадер при прошивке, нафиг он ему), все равно не дается же прошится. Для меня как то не понятно/не логично, бутлоадер оставили, прошивку залочили и поменять её нельзя.
Ну это мои глупые мысли...
 

azt59

Member
Если прошить один раз Бут то копайте в сторону конвертации hex в uf2 ибо Бут сам себя шьёт через usb только в этом формате
 
Опять же, сходил на гитхаб где выкладывают буты, https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases/tag/0.10.0 и там все виды есть и hex и uf2Посмотреть вложение 15003 тогда в чем вообще был вопрос? Качайтепоследний Бут uf2 и пейте его через usb
Прямо задел вас за живое))) Вопрос был в том что при обновлении бута, один из nrf52840 перестал определятся в usb порте, а так то обновил более 5 штук нормально. Начал искать чем прошить бут и не сильно вникая прошил на dap-link ещё одну nrf52840, потом понял, что на плате не выведены нужные gpio для использования в режиме dap-link. Теперь у меня две не рабочие nrf52840. Как писал выше на прошитой на dap-link бутлоадер обновляется, в режим бутлоадера заходит, по светодиоду видно прошивка заливается, но при перезагрузке вижу опять dap-link.
Теперь вопросы, раз уж пошло такое дело):
1. Прошить st-link под j-link - погуглил, вроде пишут это про девборды, а отдельно программаторы не катят под это.
2. Какой клон/не клон j-link минимальной стоимости можно приобрести для полного доступа, или есть что то другое?
3. Какое ПО для этого надо, желательно под винду и с графическим интерфейсом, если есть такое?
 
Прямо задел вас за живое))) Вопрос был в том что при обновлении бута, один из nrf52840 перестал определятся в usb порте, а так то обновил более 5 штук нормально. Начал искать чем прошить бут и не сильно вникая прошил на dap-link ещё одну nrf52840, потом понял, что на плате не выведены нужные gpio для использования в режиме dap-link. Теперь у меня две не рабочие nrf52840. Как писал выше на прошитой на dap-link бутлоадер обновляется, в режим бутлоадера заходит, по светодиоду видно прошивка заливается, но при перезагрузке вижу опять dap-link.
Теперь вопросы, раз уж пошло такое дело):
1. Прошить st-link под j-link - погуглил, вроде пишут это про девборды, а отдельно программаторы не катят под это.
2. Какой клон/не клон j-link минимальной стоимости можно приобрести для полного доступа, или есть что то другое?
3. Какое ПО для этого надо, желательно под винду и с графическим интерфейсом, если есть такое?
4. По выложенной Вами ссылке есть hex, uf2 и zip. Для чего zip не подскажете?
5. Где можно почитать на понятном языке, что и куда шить в память МК?
 
Вот такой вариант ещё попадался, могу собрать, что бы не покупать j-link но не знаю подойдёт ли мне это?
 
Вы наверно писали про этот вариант?
Тут возникает новый вопрос - soft device. В nrf52840, на котором у меня стоит dap-link и обновляется бут в инфо видно что там нет soft device (SoftDevice: not found).
В бутлоадерах по вашей ссылке в именах есть: nosd и s140 - это я так понял бутлоадер с SoftDevice: S140 и без него. Получается SoftDevice заливается вместе с бутлоадером или надо как тут отдельно прошивать? И в этой же теме не понятно что/как по каким адресам шьётся.
 

nikolz

Well-known member
DeepSeek отвечает:
🚀 Способ 1: "Как на флешку" (UF2 Bootloader) — Самый простой
Этот метод идеален для начинающих. Вы просто перетаскиваете файл прошивки на плату, как на обычную USB-флешку.

Что это и как работает?
Большинство популярных плат на nRF52840 (Adafruit, Seeed XIAO, Makerdiary и др.) поставляются с предустановленным загрузчиком UF2 Bootloader.

  • При подключении к компьютеру в режиме прошивки плата определяется как съемный диск (например, UF2BOOT или NRF52BOOT).
  • Ваша задача — просто скопировать файл с расширением .uf2 на этот диск.
  • Плата автоматически перезагрузится и начнет выполнять новую программу.
Этот способ официально не от Nordic, но поддерживается огромным сообществом и очень надежен.

Как войти в режим прошивки (DFU)?
В зависимости от платы, нужно сделать одно из действий:

  • Двойное нажатие: Быстро нажать кнопку RESET дважды подряд.
  • Зажать при подключении: Зажать кнопку, подключить плату к USB, отпустить кнопку.
  • Короткое замыкание: Замкнуть контакты GND и RST дважды за 0.5 секунды.
Как получить файл .uf2 из вашей программы?
Если у вас есть готовая прошивка в формате .hex или .bin, её нужно конвертировать.

  1. Установите конвертер: Это скрипт на Python от Microsoft.
    bash
    pip install uf2utils
    Или скачайте uf2conv.py с GitHub.
  2. Конвертируйте файл:
    • Из .hex:
      bash
      uf2conv.py ваша_прошивка.hex --family 0xADA52840 --convert --output прошивка.uf2
    • Из .bin (нужно указать адрес начала программы, часто 0x1000 или 0x26000):
      bash
      uf2conv.py ваша_прошивка.bin -c -b 0x1000 -f 0xADA52840 -o прошивка.uf2
      • 0xADA52840 — это идентификатор семейства для nRF52840.
      • Адрес 0x1000 подходит для плат с загрузчиком Adafruit.
🛠 Способ 2: Профессиональный (SWD-программатор)
Этот метод используется для "первой прошивки", когда на чипе нет никакого загрузчика, или для низкоуровневой отладки.

Что нужно?
  • Программатор: Самый доступный вариант — ST-Link v2. Также подойдут J-Link или DAPLink.
  • Соединение: Подключите 3 провода от программатора к плате:
    • SWDIO (Data)
    • SWCLK (Clock)
    • GND (Общий)
Как прошить?
Через терминал или среду разработки. Например, используя утилиту pyocd:

bash
pyocd flash -t nrf52840 ваша_прошивка.hex
Этот метод сложнее, но он дает полный контроль и не зависит от загрузчика на плате.

💎 Какой способ выбрать?


Ваш сценарийРекомендацияПочему?
Вы купили новую плату (Adafruit, Seeed и др.)UF2 Bootloader (способ 1)Скорее всего, он уже установлен. Вам не нужно покупать программатор.
Вы хотите быстро обновлять прошивкуUF2 Bootloader (способ 1)Это просто "перетащить файл". Идеально для прототипирования.
Плата новая и не определяется как флешкаSWD (способ 2)Загрузчика нет. Нужен внешний программатор, чтобы его туда "положить".
Вы разрабатываете сложное устройствоSWD (способ 2)Требуется для отладки (пошаговое выполнение кода, точки останова).
Мой совет: Если ваша плата определяется как диск при двойном нажатии на кнопку сброса — используйте UF2 Bootloader. Это самый простой и надежный путь для 99% задач.

Если что-то пойдет не так или понадобятся детали по вашему конкретному устройству — спрашивайте, помогу разобраться
 
DeepSeek отвечает:
🚀 Способ 1: "Как на флешку" (UF2 Bootloader) — Самый простой
Этот метод идеален для начинающих. Вы просто перетаскиваете файл прошивки на плату, как на обычную USB-флешку.

Что это и как работает?
Большинство популярных плат на nRF52840 (Adafruit, Seeed XIAO, Makerdiary и др.) поставляются с предустановленным загрузчиком UF2 Bootloader.

  • При подключении к компьютеру в режиме прошивки плата определяется как съемный диск (например, UF2BOOT или NRF52BOOT).
  • Ваша задача — просто скопировать файл с расширением .uf2 на этот диск.
  • Плата автоматически перезагрузится и начнет выполнять новую программу.
Этот способ официально не от Nordic, но поддерживается огромным сообществом и очень надежен.

Как войти в режим прошивки (DFU)?
В зависимости от платы, нужно сделать одно из действий:

  • Двойное нажатие: Быстро нажать кнопку RESET дважды подряд.
  • Зажать при подключении: Зажать кнопку, подключить плату к USB, отпустить кнопку.
  • Короткое замыкание: Замкнуть контакты GND и RST дважды за 0.5 секунды.
Как получить файл .uf2 из вашей программы?
Если у вас есть готовая прошивка в формате .hex или .bin, её нужно конвертировать.

  1. Установите конвертер: Это скрипт на Python от Microsoft.
    bash
    pip install uf2utils
    Или скачайте uf2conv.py с GitHub.
  2. Конвертируйте файл:
    • Из .hex:
      bash
      uf2conv.py ваша_прошивка.hex --family 0xADA52840 --convert --output прошивка.uf2
    • Из .bin (нужно указать адрес начала программы, часто 0x1000 или 0x26000):
      bash
      uf2conv.py ваша_прошивка.bin -c -b 0x1000 -f 0xADA52840 -o прошивка.uf2
      • 0xADA52840 — это идентификатор семейства для nRF52840.
      • Адрес 0x1000 подходит для плат с загрузчиком Adafruit.
🛠 Способ 2: Профессиональный (SWD-программатор)
Этот метод используется для "первой прошивки", когда на чипе нет никакого загрузчика, или для низкоуровневой отладки.

Что нужно?
  • Программатор: Самый доступный вариант — ST-Link v2. Также подойдут J-Link или DAPLink.
  • Соединение:Подключите 3 провода от программатора к плате:
    • SWDIO (Data)
    • SWCLK (Clock)
    • GND (Общий)
Как прошить?
Через терминал или среду разработки. Например, используя утилиту pyocd:

bash
pyocd flash -t nrf52840 ваша_прошивка.hex
Этот метод сложнее, но он дает полный контроль и не зависит от загрузчика на плате.

💎 Какой способ выбрать?


Ваш сценарийРекомендацияПочему?
Вы купили новую плату (Adafruit, Seeed и др.)UF2 Bootloader (способ 1)Скорее всего, он уже установлен. Вам не нужно покупать программатор.
Вы хотите быстро обновлять прошивкуUF2 Bootloader (способ 1)Это просто "перетащить файл". Идеально для прототипирования.
Плата новая и не определяется как флешкаSWD (способ 2)Загрузчика нет. Нужен внешний программатор, чтобы его туда "положить".
Вы разрабатываете сложное устройствоSWD (способ 2)Требуется для отладки (пошаговое выполнение кода, точки останова).
Мой совет: Если ваша плата определяется как диск при двойном нажатии на кнопку сброса — используйте UF2 Bootloader. Это самый простой и надежный путь для 99% задач.

Если что-то пойдет не так или понадобятся детали по вашему конкретному устройству — спрашивайте, помогу разобраться
У deepseek все просто и понятно, а будет ли это работать?
Не раз встречался с тем, что ИИ выдумывает какую то хрень и она конечно не работает. Вы сами конкретно пробовали использовать данный метод (способ 2) с китайским клоном st-link v2 ? А так это с виду самый простой вариант по прошивке.
pyocd flash -t nrf52840 ваша_прошивка.hex А по какому адресу он будет шить, ведь бутлоадер надо залить по определенному адресу?

Спасибо! Вообщем вечером буду пробовать, по результату отпишусь.
 

Hunter32

New member
У deepseek все просто и понятно, а будет ли это работать?
Не раз встречался с тем, что ИИ выдумывает какую то хрень и она конечно не работает. Вы сами конкретно пробовали использовать данный метод (способ 2) с китайским клоном st-link v2 ? А так это с виду самый простой вариант по прошивке.
pyocd flash -t nrf52840 ваша_прошивка.hex А по какому адресу он будет шить, ведь бутлоадер надо залить по определенному адресу?

Спасибо! Вообщем вечером буду пробовать, по результату отпишусь.
 
Сверху Снизу