Почему я не могу загрузить скетч, подключившись напрямую к последовательным контактам?
У меня есть несколько поддельных Arduino Nano. Работают нормально, но в качестве эксперимента я попытался запрограммировать их с помощью последовательного USB-адаптера (настоящего FTDI). Это не работает, но также, как ни странно, кажется, что загрузчик тоже не работает должным образом, или просто переводит arduino в режим, в котором устройство /dev/ttyUSB*
не отображается, и снова появляется только когда я снова записываю загрузчик
Когда я пытаюсь загрузить скетч с помощью последовательного USB-адаптера, я получаю следующее:
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
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Failed uploading: uploading error: exit status 1
Затем, когда я снова пытаюсь загрузить скетч через USB, /dev/ttyUSB*
больше не появляется при подключении кабеля USB к обычному разъему USB.
Однако, когда я все еще могу поставить скетч с помощью встроенного программатора, и когда я использую встроенный программатор для повторной записи загрузчика, появляется /dev/ttyUSB*
снова, и я снова могу загружать скетчи через USB.
Возможно ли это? Что я могу сделать не так?
Вот как я подключил USB-адаптер к последовательному порту к поддельной Arduino:
(оформить заказ на https://i.stack.imgur.com/nh3d6.jpg, чтобы получить более полное представление )
По сути, я подключил Arduino (левый столбец) к адаптеру USB-последовательному порту в правом столбце:
TX - RX
RX - TX
VIN - VCC
GND - GND
RST - 0.1uF capacitor - DTR
Я пробовал с контактом сброса и без нее.
Адаптер USB-последовательный порт настроен на 5 В.
Еще одна подсказка:
Если я оставлю адаптер и arduino подключенными, как на картинке, но подключу USB-кабель к arduino вместо адаптера, чтобы адаптер питался от arduino, он все равно выдает ошибку, которую я показал, и останавливается. работает полностью, пока я не перезапишу загрузчик.
Кто-нибудь знает, почему это может происходить?
ОБНОВЛЕНИЕ:
После того, как это было указано, я начал использовать контакт 5v вместо контакта VCC на поддельной Arduino, но то же самое продолжает происходить:
- записать загрузчик
- нормальная загрузка через USB работает
- попробуйте загрузить через последовательный адаптер
- не работает
- обычная загрузка через usb больше не работает, пока я снова не запишу загрузчик
@Alex028502, 👍1
Обсуждение2 ответа
Похоже, загрузчик не поддерживает последовательное программирование. Вам нужно будет изменить это в первую очередь. Скорость передачи такая же?
он работает через USB, а USB-чип подключается к тому же RX/TX, что и контакты заголовка RX/TX., @Juraj
Хорошо, это была комбинация как минимум двух вещей:
Основная проблема:
Подключение поддельного вывода RST Arduino к выводу DTR FTDI через конденсатор 0,1 мкФ, похоже, останавливает его загрузку при ручном сбросе. Кроме того, когда я удаляю его, похоже, он не сразу исправляется, если вы можете в это поверить.
Отвлекающий маневр
Это не было прямой причиной этой проблемы, но, вероятно, это большая проблема для многих других поддельных Arduino:
Когда я вернулся к встроенному USB, правила udev brltty
требовали CH341, как описано здесь https://askubuntu.com/questions/1403705/dev-ttyusb0-not-present-in-ubuntu-22-04
Итак, если у вас есть более простая проблема: не появляется поддельный Arduino, это может решить проблему для вас:
sudo apt-get remove brltty
или, если вам нужен brltty
, вы можете просто зайти в прилагаемые к нему правила udev и закомментировать это:
# Device: 1A86:7523
# Baum [NLS eReader Zoomax (20 cells)]
ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"
(если это не программа чтения с экрана, которую вы используете — возможно, вам просто придется купить настоящий Arduino или создать более совершенные правила udev, которые распознают вашу программу чтения с экрана по порту, к которому она подключена)
Причина, по которой меня это смутило, заключается в том, что когда я попытался подключиться к стандартному порту USB после того, как не смог использовать программатор, приведенные выше правила udev выгнали меня. Но потом я думаю, что когда я сжег новый загрузчик, потому что вам все равно придется запитывать плату от USB, пока подключена пололу, мне удалось подключить ее без того, чтобы указанное выше правило udev ее пинало - и затем, когда я снова попробовал внешний FTDI , а затем снова подключил внутренний CH341, правило brltty udev заявило об этом, и похоже, что попытка загрузки через FTDI и нарушила его.
не возникнет ли у вас такой же проблемы с загрузкой через встроенный FTDI? как это связано с использованием внешнего FTDI на выводе RX.TX?, @Juraj
да - это хороший момент. Я не совсем понял это. Я думаю, что либо это была единственная проблема, и я совершенно неверно ее истолковал, либо была еще одна проблема, но наличие этой проблемы в то же время затрудняло ее понимание., @Alex028502
Я обновил ответ @Juraj. Непосредственной причиной была попытка автоматического сброса, которую вы также предложили мне прекратить, а проблема с udev CH431 просто отвлекла меня от понимания сути, поскольку я не мог проверить, работает ли Arduino вообще., @Alex028502
- Проблема с загрузкой скетча в Леонардо
- Невозможно загрузить скетч в Lolin S3 Pro (ESP32-S3)
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Как использовать Serial.setTimeout()
- Программирование ATMEGA2560 с использованием FTDI
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
Спасибо. Я соединил два адаптера вместе, чтобы убедиться, что они оба работают, и отправил сообщения в обоих направлениях. Я должен был упомянуть в, @Alex028502
Vin предназначен для входа от 7 до 12 В. подать 5 В через контакт 5 В. DTR может не работать, поэтому попробуйте выполнить сброс вручную, пока avrdude пытается загрузить, @Juraj
Похоже, вы подключили выход 5 В адаптера FTDI к контакту Vin Nano. Вместо этого вы должны использовать контакт 5 В Nano, чтобы избежать прохождения через внутренний регулятор напряжения. Вы также знаете, что если вы используете контакты ICSP для загрузки скетча в Nano, это перезаписывает загрузчик?, @6v6gt
Да, я изменил питание на контакт 5 В, так как @Juraj указал на это, и получил тот же результат. Да, я каждый раз прожигал загрузчик, используя контакты ICSP. Только так я смог исправить обычную загрузку. Как только я исправлю загрузчик, я могу загружать скетчи, пока не попытаюсь загрузить с помощью последовательного адаптера, и тогда загрузчик, похоже, перестанет работать., @Alex028502
Я заказал настоящую Arduino Nano, так что я попробую с ней, как только она будет здесь, чтобы попытаться сосредоточиться на проблеме., @Alex028502
Оказывается, у меня была такая проблема https://askubuntu.com/questions/1403705/dev-ttyusb0-not-present-in-ubuntu-22-04. если у кого-то есть подобная проблема (поддельный Arduino, который продолжает исчезать), попробуйте
sudo apt-get Remove Brltty
прежде всего. Я не уверен, было ли это основной проблемой или просто мешало разобраться в основной проблеме., @Alex028502