avrdude: stk500_getsync(): not in sync: resp=0x00

У меня есть Arduino Pro Mini 5 В, 16 МБ ATMega328 и CP2102 USB для TTL. Я подключил их следующим образом:

Когда я пытаюсь загрузить скетч на плату Arduino, я получаю следующую ошибку:

avrdude: stk500_getsync(): not in sync: resp=0x00

Тип платы и последовательный порт верны. Скетч также успешно скомпилировался, и я установил драйверы CP2102. Я заметил, что даже если я отключу все провода от платы Arduino (и просто оставлю cp2102 подключенным к ПК), я снова получаю ту же ошибку. Я использую Windows 7.

Кто-нибудь еще сталкивался с такой же проблемой?

, 👍6

Обсуждение

@nidhin Да, кажется http://i.imgur.com/JHaDWbt.png, @Deepsy

@нидин Я попытался нажать кнопку сброса одновременно с нажатием кнопки загрузки. Также я попытался подключить первый контакт cp2102 к обоим первым контактам Arduino, ни один из них не сработал., @Deepsy

возможный дубликат [Какой-то чувак по имени avr не позволяет мне загрузить мою программу, он же "avrdude: stk500\_getsync(): не синхронизировано: resp=0x00"](http://arduinoprosto.ru/q/17/какой-то-чувак-по имени-авр-не-позволит-мне-загрузить-мою-программу-ака-avrdude-stk500-getsync), @The Guy with The Hat

Вы должны убедиться, что ваша скорость передачи данных соответствует загрузчику на плате (он ведь есть? Это подлинная плата или клон?). Также отсоедините Arduino и соедините контакты TXD и RXD CP2102 вместе. Откройте последовательный монитор Arduino и введите символы; вы должны либо увидеть одну копию того, что вы вводите, с перемычками контактов и ни одной с открытыми контактами, либо две копии с перемычками контактов и только одну с открытыми., @Chris Stratton

У меня появилось такое же сообщение об ошибке, когда я замкнул цифровые входы. ой!, @Rich St. Onge


10 ответов


5

Эта ошибка означает, что программа, отвечающая за загрузку (avrdude), не может связаться с вашим Arduino.

Вы сбросили плату непосредственно перед программированием? На вашей картинке вывод сброса Arduino выглядит неподключенным; поэтому плата не будет выполнять загрузчик, когда последовательные кабели ожидают этого.

Попробуйте либо вручную сбросить настройки платы непосредственно перед программированием, либо подключить первый контакт.

,

Я попытался нажать кнопку сброса одновременно с нажатием кнопки загрузки. Также я попытался подключить rst пин на cp2102 к обоим rst пинам на arduino, ни один из них не сработал., @Deepsy

Не одновременно — сначала необходимо выполнить аппаратный сброс, а затем попытаться выполнить загрузку., @Dave Tweed

Иногда это работает лучше с конденсатором последовательно с выводом сброса. Я бы начал с 0,1 мкФ и попробовал бы несколько разных значений (это зависит от значения подтяжки сброса), @Nicolas D

@NicolasD Есть ли способ сделать это без конденсатора? Я думаю, что arduino даже не подключается к cp2102, но я не знаю, как проверить. Я также пробовал сбросить плату (кнопкой на ней) за несколько секунд до загрузки, все равно получаю ту же ошибку., @Deepsy

Как сказал @DaveTweed, вы можете сбросить плату, скажем, за полсекунды до нажатия кнопки "загрузить" в arduino IDE. Конденсатор нужен только для автоматизации этого., @Nicolas D

Кстати, вы уже использовали эту плату Arduino?, @Nicolas D

Я знаю кого-то с похожей проблемой. Но его проблема решается с помощью резистора 1k на Tx и Rx последовательно и конденсатора 10uF, который требуется для устройств arduino, использующих ATmega328 между выводом сброса и землей. Вы также можете попробовать резистор PULLUP на сбросе. Это будет означать резистор 10k между сбросом и +5V, @Handoko


6

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

,

Хорошее место, я сначала не увидел этого на картинке, но, похоже, вы правы, похоже, что штыревые разъемы просто вставлены в отверстия без какой-либо пайки., @jfpoilpret


0

Эта проблема вызвана использованием неправильного кабеля USB. У меня есть три кабеля, два из которых работают, и один из них имеет эту проблему. Кабели с ферритовым кольцом вокруг них будут работать. Единственный кабель, который у меня есть, который работает, имеет плетеный экран, окружающий проводники, и его длина составляет около 2 футов. У меня есть 3-футовый кабель без кольца и без экрана, который демонстрирует эту проблему.

,

Это *возможно*, но утверждать, что это причина, немного наивно. Обычно, поскольку интерфейс USB гораздо более "деликатный", чем последовательный порт ниже по течению, в случае плохой кабельной разводки последовательное устройство USB не сможет выполнить энумерацию, а останется в наличии, но не сможет проксировать последовательные данные., @Chris Stratton


3

Я решил эту проблему, подключив сигнал DTR от USB-конвертера к контакту, на котором написано GRN на плате (тот, что рядом с TXD). Найти его было не так уж и просто, но на ebay я видел какой-то arduino-dedicated-usb-programmer, который, похоже, подключался таким образом, поэтому я рискнул. Больше эта ошибка не появляется, и загрузка работает всегда!!!

Ура!

,

0

У меня была точно такая же проблема. Я попробовал установить IDE на другой ноутбук и загрузил программу с этого ноутбука. Проблема решена. Затем я вернулся к своему ноутбуку, удалил IDE и переустановил его. Он работает.

Однако я не был удовлетворен, потому что не смог найти источник проблемы... поэтому я попробовал запустить все снова тем же самым способом. Я нашел проблему, но не уверен, может ли она быть ее истинной причиной.

В моем проекте мне нужно было реализовать последовательную связь между Arduino и MATLAB (GUI). Чтобы увидеть/проверить вывод (тип) последовательных данных MATLAB (GUI), я использовал HYPERTERMINAL, а также VIRTUAL SERIAL PORT EMULATOR. Я заметил, что каждый раз, когда запущен Hyperterminal или VSPE, когда включен мой последовательный монитор, это портит функцию загрузки программы. Я не уверен, из-за VSPE или HYPERTERMINAL, но переустановка IDE мне помогла. :-)

,

0

Это случилось и со мной. У меня был блок Bluetooth/TTL, подключенный к RX/TX, которые являются теми же портами, которые используются для подключения USB к компьютеру (где происходит передача программы), и все, что мне нужно было сделать, это отключить RX от блока BT при передаче программы.

,

0

{линукс}

Для меня решением было установить правильный порт USB.

Раньше я работал с моим Uno на USB0.

Я не смог загрузить данные на свой nano, так как он был подключен к USB1

В меню: Последовательный порт -> /dev/ttyUSB1

,

Логично менять порт при замене платы., @RSM


1

Как уже говорилось в некоторых других ответах, вы могли не припаять штыревые контакты. Вы не можете просто вставить их на место и надеяться на лучшее. Смотрите мой Pro Mini:

Arduino Pro Mini

Моя пайка достаточно аккуратна, однако видно, что припой проступает на другую сторону.

Также см.:

Многие проблемы в этих темах применимы к любой плате Arduino.

,

1

Чтобы решить проблему синхронизации, я добавил соединение от USB-адаптера последовательного порта RST к выводу ProMini DTR. Я использую ОС Linux Mint 18 с Arduino IDE 1.8.5 - Другие мои клоны Arduino (UNO_r3 и Nano) используют чип CH340G, поэтому я знал, что у меня есть рабочие драйверы. Извините за качество изображения, у меня старая камера и я не знаю, как балансировать светодиодные лампочки. Контакты от USB до ProMini: (U)GND-(P)GND; (U)3V3-(P)нет соединения; (U)5V-(P)VCC; (U)TX-(P)TX; (U)RX-(P)RX; (U)RST-(P)DTR. Надеюсь, это поможет. 73 AB1OP_Ralph

CH340G USB-последовательный адаптер для Arduino ProMini

,

0

Я потратил часы на поиск решения одного и того же сообщения об ошибке. Все было правильно - плата выбрана, COM-порт, все.

Я поменял контакты TX и RX и соединил tx и rx друг с другом вместо того, чтобы переключать их (что я видел в руководстве). Затем я нажал кнопку ручного сброса, удержал ее и загрузил, затем отпустил, пока не появилось сообщение «Загрузка». Это сработало.

Надеюсь, это поможет.

,