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

Espressif-IDE. COM порт не создаётся при подключении плат.

SjiE

New member
Связка Visual Studio + ESP-IDF. На других компьютерах при подключении разных плат с ESP32 и такой же софтовой связке платы видны, создаётся COM порт и процессы прошивки и отладки доступны. На одном же компьютере никак не могу справится с проблемой. COM порт не создаётся, OpenOCD server видимо по этой причине не запускается. Всё ставилось стандартно, через Visual Studio.
Может кто сталкивался? Как бороться с проблемой?
На приложенных фото диспечеры устройств. Там где нет COM-порта - комп, где не получается подключить платы.
Весь софт ставится под админом.
 

Вложения

SjiE

New member
Питание внешнее попробовали?
Нет. Т.к. кабель один и тот же используется. И смысла в этом не увидел. Плата прошитая на компе, который её нормально видит, работает и мигает на компе, который её не видит. Т.е. с питанием проблем нет. А вот с драйверами какой-то трабл :rolleyes:.
 

SjiE

New member
В общем пока ужасающие танцы с бубном. Удалил один драйвер при подключенной плате. Нажал на ней сброс и опа, появился COM-порт. И всё стало видно. Думаю, замечательно. Подключаю другую плату к этому же кабелю. Появляется другой usb интерфейс и никакого com-порта, сношу его. Появляется COM-порт. Меняю его в проекте, пересобираю. Но, программно он не подцепляется. Перезагружаю студию. Пересобираю снова проект. Всё программируется. В общем это треш.
Т.е. при разных типах плат разные COM-порты. При этом всё приходится перезагружать, хотя по нормальному этого быть не должно.

Здесь подобная проблема описана. И судя по описанным ситуациям, решения её весьма не однозначные.

Программа zadig-2.9 показывает, какой драйвер поменять. Мне это ничего не дало. Устройство, на котором оно показывает красный крестик и, которое относится к плате с ESP, его я и сносил. Далее сброс на плате нажимаем. Появляется COM-порт. Перезапус студии, пересборка проекта с указанием нового порта и нормальное подключение.

P.S. Позже на другом компе проверю, где таких мучений нет. Как обстоит дело с переключением плат на горячую.
 

pvvx

Активный участник сообщества
Типичная проблема устроенная пользователем бардака с драйверами в компе.

Бывают другие случаи, но они редки. Это когда есть дополнительный USB на мамке и он типа 3.1+, а пользователь не обновил дрова чипсета.
 

pvvx

Активный участник сообщества
первым делом (внимательно) почистите налипшие неиспользуемые дрова в win-де, включив:
1743950078925.png
Если не поможет, то ручками ковыряться во всяких C:\Windows\INF *.inf / *.pnf и т.д.
 

SjiE

New member
Попробую. Винда своей свалкой и неразберихой всегда поражала. В отличие от юникс систем.
 

pvvx

Активный участник сообщества
Попробую. Винда своей свалкой и неразберихой всегда поражала. В отличие от юникс систем.
В Linux всё гораздо хуже. Там нет даже примитивного интерфейса для чистки, не говоря уже об остальной свалке, которую даже руками не разгрести не поломав систему и не получив "красных глазок".
А чтобы что-то сделать с драйверами вам придется пересобрать kernel :cry: а на малых системах ещё и изменить uboot...
 

pvvx

Активный участник сообщества
После очистки всех "сереньких"
1744020860116.png
1744020865079.png
при новом использовании будут установлены заново.
А номера COM портов будут нумероваться заново, а не типа COM154 :)
Винда помнит старые чтобы быстрее подключить... и чтобы при следующем включении сохранить номер...
 

pvvx

Активный участник сообщества
А в Linux, номер COM порта или другого устройства при новой загрузке будет установлен новый, если предыдущий был отключен :LOL:
 

pvvx

Активный участник сообщества
В Винде вы можете установить и зафиксировать номер COM порта для любого устройства какой вам захочется. Это делается в меню свойствах...
 

pvvx

Активный участник сообщества
Описываемые вами проблемы связаны скорее всего с тем, что убогое USB устройство не имеет собственного идентификатора (серийного номера). Тогда к нему и аналогичным будет применятся один и тот-же драйвер... И тут уже пофиг что там – Linux/Windows/Android/…
Но Винда хотя-бы распределит такие по номерам при подключении в разные USB порты...
Эту убогость и скрывают писатели ESP...
 

SjiE

New member
В общем, видимо какие-то баги винды.
Переставил софт. COM стал появляться.
 

quireljohn6

New member
В общем пока ужасающие танцы с бубном. Удалил один драйвер при подключенной плате. Нажал на ней сброс и опа, появился COM-порт. И всё стало видно. Думаю, замечательно. Подключаю другую плату к этому же кабелю. Появляется другой usb интерфейс и никакого com-порта, сношу его. Появляется COM-порт. Меняю его в проекте, пересобираю. Но, программно он не подцепляется. Перезагружаю студию. Пересобираю снова проект. Всё программируется. В общем это треш.
Т.е. при разных типах плат разные COM-порты. При этом всё приходится перезагружать, хотя по нормальному этого быть не должно.

Здесь подобная проблема описана. И судя по описанным ситуациям, решения её весьма не однозначные.






Когда у меня от подобного треша начинает закипать мозг, я просто всё закрываю и иду на Get X. Там, в отличие от драйверов Windows, всё работает идеально: никаких лагов, интерфейс интуитивный, а слоты залетают на одном дыхании. Это отличный способ сбросить напряжение и получить свою дозу азарта на проверенной площадке, где выплаты приходят так же быстро, как хотелось бы прошивать контроллеры.



Программа zadig-2.9 показывает, какой драйвер поменять. Мне это ничего не дало. Устройство, на котором оно показывает красный крестик и, которое относится к плате с ESP, его я и сносил. Далее сброс на плате нажимаем. Появляется COM-порт. Перезапус студии, пересборка проекта с указанием нового порта и нормальное подключение.

P.S. Позже на другом компе проверю, где таких мучений нет. Как обстоит дело с переключением плат на горячую.
работа с драйверами ESP на Windows — это классический «аттракцион», особенно когда в системе перемешаны драйверы от Silicon Labs (CP210x) и WCH (CH340/341), или когда используется встроенный USB-JTAG/Serial от самой Espressif.

Судя по твоему описанию, проблема может быть в следующем:

  1. Конфликт драйверов в реестре: Windows запоминает каждое устройство по связке VID/PID. Когда ты втыкаешь другую плату (даже если чип тот же, но ревизия или производитель отличаются), система пытается подтянуть «лучший», по её мнению, драйвер, который в итоге вешает интерфейс.
  2. Особенности ESP-IDF: Студия часто кэширует параметры окружения. Если порт сменился динамически, Python-скрипты прошивальщика (esptool) могут продолжать долбиться в старый дескриптор, пока процесс не будет перезапущен полностью.
  3. Zadig и WinUSB: Будь осторожен с Zadig. Если ты случайно заменил стандартный VCP-драйвер (Virtual COM Port) на WinUSB или libusb, то COM-порт просто исчезнет из системы как класс, и устройство будет видно только как «USB Device». Для прошивки через классический UART-мост нужен именно VCP драйвер.
Что можно попробовать, чтобы не перезагружать всё подряд:

  • USBDeview: Скачай утилиту USBDeview от NirSoft. Она позволяет увидеть все когда-либо подключенные устройства и, что важно, удалить их из системы подчистую. Снеси все записи, связанные с ESP и CP210/CH340, а потом поставь один актуальный пак драйверов.
  • Фиксация порта: В диспетчере устройств в свойствах порта можно принудительно назначить плате номер (например, COM5). Иногда, если назначить разным платам один и тот же номер порта (когда они не подключены одновременно), софт подхватывает их без пересборки проекта.
  • Powershell: Вместо перезапуска студии иногда помогает банальный рестарт службы LanmanWorkstation или просто перетыкание кабеля в другой физический порт USB (на другой контроллер).
Это явно косяк инициализации интерфейса в Windows. На Linux, к слову, такие вещи обычно решаются один раз прописыванием правил в udev, и потом всё работает «на горячую» без лишних вопросов.
 
Сверху Снизу