Не прошивается Iskra Neo

Тема в разделе "Arduino & Shields", создана пользователем Жуня, 13 апр 2019.

  1. Жуня

    Жуня Нуб

    Здравствуйте!
    Когда я подключаю Iskra Neo к компьютеру (с любой схемой), выбираю плату "Arduino Leonardo", порт и нажимаю кнопку "Загрузить (-->)" (с любой программой), то несколько секунд Arduino IDE пишет "Загрузка...", но на Iskra Neo не мигают RX и TX.Далее Arduino IDE выдаёт ошибку avrdude: ser_open(): can't set com-state for "\\.\COM8". Если я подключаю плату сначала к источнику питания (1A, 12V), то компьютер вообще не распознаёт Iskrу и пишет "USB-устройство не опознано". Я пробовал на другом компьютере и с другим кабелем, не получается. Что делать?
     
  2. Daniil

    Daniil Гуру

    Попробуйте нажать и отпустить кнопку ресет на плате искры когда ide будет загружать код. Обратите внимание, загружать, а не компилировать
     
    Последнее редактирование: 14 апр 2019
    Жуня нравится это.
  3. Жуня

    Жуня Нуб

    Спасибо огромное! Помогло. А так нужно делать теперь каждый раз?
    И почему это произошло?
     
  4. Daniil

    Daniil Гуру

    Я не могу ответить на этот вопрос точно. Я к ардуинкам сейчас редко обращаюсь.
    Дело примерно так обстоит:
    искра нео это ардуина леонардо. Имеет 2 ком порта. Когда вы подключаете к пк, то 8 сек (не уверен) должны видеть один ком порт, через который заливается прошивка. Через 8 сек ком порт пропадает и на его место появляется 2ой.
    Когда мы пытаемся зашить код в мк, то каким то образом должен произойти сброс мк. Сейчас мы сделали его своими руками, а должно быть автоматически. Кто/что там дает сбой не знаю, но такую операцию я проделываю НЕ каждый раз.
     
    Жуня нравится это.
  5. AlexU

    AlexU Гуру

    В Искра Нео используется микроконтроллер ATmega32U4, особенностью которого является аппаратная поддержка USB интерфейса. Поэтому дополнительного преобразователя USB-Serial (как например в Уно, Нано и т.п.) не нужно. Но для того, чтобы данный микроконтроллер опознавался компьютером, контроллер должен выполнять "правильную" программу, которая будет соответствующим образом настраивать USB интерфейс. Если USB интерфейс не настроить, то при подключении платы к компьютеру ни какого устройства в системе не появится. В микроконтроллер как минимум зашит бутлоадер, который умеет "правильно" настраивать USB интерфейс как CDC/ACM устройство -- в системе определяется как COM порт. Так же при компиляции пользовательской прошивки в эту прошивку добавляется код конфигурации USB интерфейса как CDC/ACM устройство. Но есть одно "НО". Если пользовательская прошивка "неправильная" (например, активно используются delay'и или другие функции загружающие сильно МК), то при выполнении пользовательской прошивки стандартный код отвечающий за работу CDC/ACM может либо вообще не работать, либо криво работать. Из-за чего система либо удалит соответствующий COM порт, либо порт будет присутствовать, но не реагировать на команды. И в этом случае, чтобы перепрошить МК, нужно произвести принудительный сброс контроллера для запуска бутлоадера. Тот в свою очередь правильно настроит USB интерфейс и в системе появиться рабочий COM порт. Но не надолго (примерно секунды на 2, более точно надо смотреть исходники бутлоадера). Вот в это самое время "не надолго" надо успеть запустить процесс прошивки.
     
    arkadyf и Daniil нравится это.