Проблема с загрузкой в ATMega с использованием ArduinoIDE («разблокировка» «кирпичного» микроконтроллера?)

У меня есть SparkFun Pro Micro, который является клоном Arduino Leonardo. К сожалению, мои попытки загрузить программы не увенчались успехом. Я провел небольшое исследование в Интернете и обнаружил, что вам нужно использовать конфигурацию SparkFun. Вам нужно использовать URL-адрес менеджера доски: https://raw.githubusercontent.com/sparkfun /Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json

Пока все хорошо. После попытки использовать это я попытался выполнить загрузку, но потерпел неудачу. Я пробовал с разными настройками, но все безуспешно. Раньше существовал последовательный порт с именем /dev/ttyACM0, но сейчас такого порта больше нет. Дальнейшие исследования дали мне информацию о том, что вы можете запустить устройство, если вы а) вернетесь в режим загрузчика, где у вас должно быть 8 секунд для загрузки, и б) действительно выполните загрузку.

Я могу проверить: если я заземлю RESET, я смогу переключиться в этот 8-секундный режим. Затем устройство /dev/ttyACM0 появляется примерно через 1 секунду в течение примерно 7 секунд. По указанию я немедленно пытаюсь выполнить загрузку. Это странно: я сразу (!) получаю следующий результат:

  • Строка 1: Sketch использует 4140 байт (14%) дискового пространства программы. Максимум — 28672 байта.
  • Строка 2: Глобальные переменные используют 149 байт (5%) динамической памяти, оставляя 2411 байт для локальных переменных. Максимум — 2560 байт.
  • Строка 3: avrdude: ser_open(): невозможно открыть устройство «/dev/ttyACM0»: такого файла или каталога нет
  • Строка 4: Проблема с загрузкой на доску. См. предложения по адресу http://www.arduino.cc/en/Guide/Troubleshooting#upload.

TTY должен быть там, поскольку в этом случае 7 секунд не прошли. Кроме того, моя учетная запись пользователя находится в dialout, что позволяет ей использовать tty.

Если я доверяю этому сообщению об ошибке, это означает, что терминал пропал, как только avrdude попытается получить к нему доступ. Чего не должно быть так, не так ли?

Кто-нибудь сталкивался с такой ситуацией раньше? Как загрузить программу в микроконтроллер? Есть ли у кого-нибудь здесь опыт такой ситуации?

--

Дополнительная информация:

  • ArdunoIDE 1.8.5
  • Ubuntu (Mate) Linux 16.04

, 👍1

Обсуждение

версия IDE?, @Juraj

АрдуноИДЕ 1.8.5, @Regis May

Работала ли загрузка с другой платой, например Arduino Uno, или это ваша первая плата? Вы состоите в группе дозвона? Менеджер модемов установлен? Вы должны удалить его. Цель модем-менеджера — вызвать проблемы с Arduino Pro Micro (и другими платами). Если вам не нравятся дополнения от sparkfun, то вы можете записать на него загрузчик официальной Arduino Micro, но надо позаботиться о том, чтобы у него было меньше контактов. У вас есть что-нибудь, связанное с Arduino, установленное из репозиториев? можешь попробовать удалить Java? Обязательно удалите файл librxtx-java., @Jot

Сначала я использовал совершенно другой микроконтроллер, который работал отлично. Это была не ATMega, а ESP8266. Затем я переключился на другую плату, попытался изменить настройки этой платы., @Regis May

Да, модемменеджер установлен. Я читал об этом. Но я не могу удалить диспетчер модема: он приведет к удалению всего пользовательского интерфейса Mate из-за зависимостей. Не знаю, мешает ли менеджер модема: я уже пользовался этой платой и несколько раз выкладывал программы для ее тестирования. Теперь мне захотелось этим по-настоящему воспользоваться..., @Regis May

Почему мне следует удалить Java? Что бы это помогло? Пожалуйста, предоставьте больше информации: я не понимаю, как это повлияет на этот avrdude (что бы это ни было...), @Regis May

Я прочитал руководство, предоставленное SparkFun, в котором говорится, что вам следует переключить микроконтроллер в этот 8-секундный режим загрузчика. Затем он должен принять любую загрузку (чего нет...), @Regis May


1 ответ


1

Мы часто их используем, и очень легко случайно запрограммировать платы с неправильными настройками, особенно потому, что библиотека Sparkfun Pro Micro по умолчанию использует вариант 3,3 В/8 МГц вместо более распространённого 5 В/16 МГц.

Я восстановил платы методом сброса загрузчика, но это сложно — нужно правильно рассчитать время. Теперь мы просто переустанавливаем загрузчик с помощью программатора ISP (инструкции: https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader). Это срабатывает с первого раза и в итоге получается намного быстрее, чем повторяющиеся попытки правильно настроить время сброса. Просто убедитесь, что вы выбрали нужную плату, когда записываете загрузчик. Мы используем USBASP, и настройка занимает всего пару минут.

,

Думаю, я правильно рассчитал время. Я уложился в 8 секунд. Тем не менее, я посмотрю предоставленные вами данные, спасибо! На этой неделе я буду в командировке, но вернусь к этой теме на следующей неделе. Пожалуйста, проявите немного терпения! Спасибо!, @Regis May