Программирование ESP32 с использованием JTAG программатора ESP-Prog и ESP-IDF +5


AliExpress RU&CIS

ESP-Prog


Всем доброго времени суток. На просторах Али можно найти такой программатор, как ESP-Prog, на чипе FTDI2232H, с виртуальным COM-портом на борту:

image

Среда разработки


Как IDE мы будем использовать Visual Studio с плагином VisualGDB. Данный плагин предназначен для разроботки ПО для микроконтроллеров, имеет встроенный OpenOCD, который, в большинстве случаев, не надо вручную отлаживать или конфигурировать.

Программируемый микроконтроллер


Нашим таргетом будет ESP-DevKit_V4, с ESP32-WROOM-32D:

image

Установка драйверов для ESP-Prog


Скачиваем с официального сайта драйвера, устанавливаем через диспетчер устройств, «Установить драйвер» — «Искать драйвера на этом компютере», выбираем папку с распакованными драйверами.

Дальше нам понадобится программа Zadig, скачиваем, запускаем. Видим окно:

image

в меню «Options» выбираем «List All Devices», и если драйвера для FTDI2232H установлены правильно, из списка устройств выбираем «Dual RS232-HS (Interface 0)», А в меню «Driver» выбираем «WinUSB». Должно получиться так:

image

Реинсталим драйвер, при успешном завершении извлекаем программатор от ПК и засовываем обратно.

Подключение программатора к микроконтроллеру


На задней части программатора есть информация про выводы.

Подключаем по схеме:

image

image

а питание для ESP32 будем брать с другого порта, так как с одного порта мощности для программатора и ESP32 не хватит.

Настройка дебагера


Запускаем Visual Studio с уже установленным VisualGDB. Жмём «Start new project», там выбираем ESP32/ESP8266 IDF/ADF Project Wizard:

image

Жмём «Next»

image

Выбираем тулчейн, он установится автоматически:

image

Тут мы выбираем экзампл, К примеру «softAP»:

image

Жмём «Next»

В данном окне мы настраиваем сам дебагер, ставим все как тут, тестим:

image

Если все успешно, мы получим уведомление об успешном тестировании, если нет, соответственно, ошибку, либо тестовый терминал зависнет.

image

Жмём «Finish», ждём окончания генерации проекта.

Тестирование в Debug Mode


Компилируем код, ставим брейкпоинт, нажимаем в меню «Debug» — «Start debugging with VisualGDB», ждем окончания загрузки прошивки на ESP32, и дебажим:

image

Важно, чтобы ESP32 и программатор были подключены к разным USB портам, либо ESP32 питался отдельно если у вас готовое устройство, так как мощности не хватает, и дебаг работать не будет, и в тестовом окне мы будем получать ошибку.

Заключение


Мы получаем легкий способ отладки ESP устройств, не нуждающийся в глубокой настройки, плагин все делает сам.

P.S. При скачивании VisualGDB с офф. сайта у нас есть бесплатная лицензия на 30 дней, ну его можно найти и крякнутым, на просторах интернета.

Всем спасибо за внимание, надеюсь, кому-то пригодится эта информация, так как я очень долго искал солюшн для работы с ESP «c коробки», без ручной установки OpenOCD, иной программной периферии.




Комментарии (25):

  1. AVI-crak
    /#23209814

    Где доступ к регистрам и периферии?

    • Digitalrex
      /#23223860

      у них свой SDK, тут как с STM не прокатит

  2. RealBeria
    /#23210062

    А какие преимущества по сравнению с arduino ide? (да простят меня ардунино-ненавистники, но больно там среда уж привычная).

    • GennPen
      /#23210262 / +1

      ArduinoIDE по сравнению с Visual Studio это как блокнот с MSWord. =)
      Различные средства отладки, IntelliSense и прочие ништяки.

      • Yoozhik
        /#23223852

        А если сравнивать с PlatformIO?

        • Digitalrex
          /#23223858

          PlatformIO — это низкий порог вхождения, где-то между Arduino IDE и взрослой IDE

  3. PR200SD
    /#23210066

    Год назад купил программатор с jtag, пару раз подключился и понял что он мне не нужен, тем более чтоб через него программировать, esp-prog тоже стоит как космолет. В итоге для программирования применил компактный CH340N и то только для первой загрузки или для экстренных случаев, дальше через OTA. Устройство сетевой интерфейс для программируемых реле, с поддержкой разных протоколов https://habr.com/ru/post/556236/

    • viordash
      /#23210158

      jtag в основном хорошо помогает в отладке.

      Ранее пробовал в данной связки и в принципе довольно не плохо себя показало.

      • order227
        /#23210186 / +1

        Суровые пацаны дебажат только printf-ом!

        • Zuy
          /#23210844

          самые суровые так вообще одним светодиодом обходятся!

          • sami777
            /#23211796

            Суровые пацаны каменного века.

        • Digitalrex
          /#23223834

          Иногда програма кришится, и prinf не помагает)

    • RA-NGR
      /#23210498

      Статья ради статьи. Ни о чем

      • KislyFan
        /#23211498

        Иногда очень не хватает пошагового how-to, поэтому такие статьи нужны.

        • RA-NGR
          /#23213358

          А иногда подобные статьи ведут по ложному пути. Esp prog (1800 руб на алиэксарессе) вместо cjmcu ft232h (500 руб) или даже Blue pill (300 руб, с последующей перепрошивкойв в black probe), visual gdb (159$ Вгод) вместо visual micro, который тоже умеет в gdb (12$ В год) и т.п.

          • PR200SD
            /#23213616

            Я запускал отладку на ft232h, там очень все печально, по частоте не тянет, пришлось купить J-Link

            • RA-NGR
              /#23220560

              На какой не тянет и какая вам нужна?

          • PR200SD
            /#23213620

            Esp-prog не обязательно брать, можно взять просто отладочную плату на базе ft2232.

          • viordash
            /#23213892

            visual gdb однозначно стоит своих денег.

            • RA-NGR
              /#23220570

              Наверное да, пробовал народную версию, потом снес. вижуал микро мне за глаза

          • Xenotester
            /#23214024

            А иногда такие статьи нужны ради таких вот комментариев с интересными альтернативами

            • RA-NGR
              /#23220576

              не уверен, что после статьи алчущие знаний читают комментарии ))

          • GennPen
            /#23220770

            visual gdb (159$ Вгод)

            На сколько понял из ценовой политики, у них в течение подписки бесплатные обновления. Продление подписки 50% скидка. Но учитывая то что у них новые версии выходят примерно ежегодно, то чтобы иметь актуальную версию, то плата ежегодная получается.

    • KislyFan
      /#23211492

      ESP-Prog реализует какие-то особые инструкции? Я давным давно пробовал дружить ESP32 c клоном Segger J-Link, и если мне не изменяет память проблем не было.