avrdude: stk500_recv(): программатор не отвечает, arduino pro
Я пытаюсь загрузить скетч, чтобы загрузить скетч мигания на Arduino Pro, используя SparkFun Serial Basic Breakout (в Ubuntu 18.04).
настройка
В arduino IDE у меня есть следующие настройки:
- Инструменты -> Плата: Arduino Pro или Pro mini
- Инструменты -> Порт: /dev/ttyUSB0
- Инструменты -> Программист: USBasp
Я подключил:
- Переход от DTR sparkfun к DTR на Arduino
- Sparkfun от RX1 до RX1 на Arduino
- Sparkfun с TX0 на TX0 на Arduino
- Переход от VCC sparkfun к VCC на Arduino
- GND sparkfun на GND на Arduino
ошибка
Я получаю следующую ошибку
Arduino: 1.8.13 (Linux), Board: "Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
Sketch uses 924 bytes (3%) of program storage space. Maximum is 30720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
/home/cmhughes/Desktop/arduino-1.8.13/hardware/tools/avr/bin/avrdude -C/home/cmhughes/Desktop/arduino-1.8.13/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/arduino_build_457079/cmh-Blink.ino.hex:i
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/home/cmhughes/Desktop/arduino-1.8.13/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/home/cmhughes/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/ttyUSB0
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
...
Сообщение об ошибке продолжает появляться, и предпринимается 10 попыток.
вопрос
Я пробовал много разных вещей, в том числе: изменение соединений RX1 и TX0, использование другого последовательного адаптера FTDI, использование другого USB-кабеля, тестирование операционной системы Windows.
Что еще я могу попробовать, чтобы увидеть, смогу ли я добиться прогресса?
ардуино про
SparkFun Serial Basic Breakout — CH340C и USB-C
@cmhughes, 👍0
Обсуждение2 ответа
Лучший ответ:
Процедура загрузки требует сброса ATmega328 с помощью DTR. Это вызывает код загрузчика в ATmega328. Если есть проблема с вашим соединением DTR, вместо этого вы должны вручную нажать кнопку RESET в соответствующее время.
Возможно, ваше подключение к DTR было ошибочным или. маловероятно, что неисправность встроенного конденсатора между "DTR" и "DTR" Pro-Mini. заголовок и контакт RESET ATmega328
https://store.arduino.cc/arduino-pro-mini -> Документация
Автоматический (программный) сброс
Вместо того, чтобы требовать физического нажатия кнопки сброса перед загрузкой, Arduino Pro Mini сконструирован таким образом, что его можно сбросить с помощью программного обеспечения, работающего на подключенном компьютере. Один из контактов шестиконтактного разъема подключен к линии сброса ATmega328P через конденсатор емкостью 100 нФ. Этот контакт подключается к одной из линий аппаратного управления потоком USB-последовательного преобразователя, подключенного к заголовку: RTS при использовании кабеля FTDI, DTR при использовании коммутационной платы Sparkfun. Когда эта линия активна (низкий уровень), линия сброса падает на время, достаточное для сброса микросхемы. Программное обеспечение Arduino использует эту возможность, чтобы вы могли загружать код, просто нажав кнопку загрузки в среде Arduino. Это означает, что загрузчик может иметь более короткое время ожидания, так как опускание строки сброса может быть хорошо согласовано с началом загрузки.
Возможно, это связано с тем, что USB-чип на нем не так широко поддерживается, как официальный чип, который Arduino использует в своих Uno, Mega и т. д. Для ch340C иногда требуются драйверы, поэтому поищите эти драйверы в Интернете и загрузите их.
- Как остановить SoftwareSerial от получения данных и повторно включить его в какой-то другой момент?
- Сторожевой таймер застрял в цикле перезапуска? (мигает зеленый светодиод)
- Отправка команд PUBX на плату GPS (Ublox NEO-6M) через SoftwareSerial
- Мусор последовательного монитора Arduino Pro Mini
- Почему SoftwareSerial не работает как надо на Arduino Pro Mini 3v3?
- Отправка строки с Arduino на ESP8266 работает на UNO, но не на Pro Mini
- Как запрограммировать Arduino pro mini, используя родной последовательный порт (на моей материнской плате)
- Arduino Pro Mini ATmega 328P: вывод мусора на последовательную консоль
провод RX к TX. передать, чтобы получить, @Juraj
@juraj большое спасибо; если я вас понял, то это в списке вещей, которые я пробовал ...., @cmhughes
это не предложение по устранению неполадок. так и должно быть, @Juraj
сбросить Arduino, пока avrdude пытается загрузить, @Juraj
@Juraj большое спасибо, это было очень полезно. Используя обе вещи, которые вы подробно описали, я теперь смог загрузить их на свой Arduino Pro. Если вы хотите опубликовать ответ, я с радостью приму его. Еще раз спасибо., @cmhughes
Привет ! Как Arduino определяет, что вы перешли в режим программирования? Нужен сигнал **Reset** перед загрузкой скетча (другие важные вещи: все сигналы сброса имеют условия
timeout
). ** Так что используйте кнопку перед загрузкой! **, @dsgdfgБольшое спасибо, @dsgdfg, это очень полезно :), @cmhughes
соединение DTR должно сделать сброс, но похоже, что здесь это не работает, @Juraj
DTR не совместим ни с загрузкой, ни с программами! DTR будет сбрасывать устройство на «стандартную» связь (поэтому каждый раз нужно отключать DTR для связи с Arduino), @dsgdfg
@dsgdf Первоначальный дизайн Arduino Pro Mini включает конденсатор между позицией заголовка «DTR» на плате и контактом RESET ATmega328 — это предназначено для облегчения программирования через «FTDI Friend» или аналогичный последовательный USB-адаптер, который затем использует строку DTR для сброса ATmega328 и запуска загрузчика, который ожидает загрузки последовательной программы или который истекает по тайм-ауту и запускает ранее загруженный «скетч». См. https://store.arduino.cc/arduino-pro-mini. Таким образом, вам обычно не нужно где-либо отключать или повторно включать DTR., @RedGrittyBrick
@RedGrittyBrick Возможно, это правда. Однако конденсаторы, используемые для задержки в цепях без гарантии питающего напряжения, не работают исправно! (см.: ошибка **SYNC**). Еще один момент **Не все преобразователи связи содержат DTR!**, @dsgdfg