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


9

Я пытаюсь построить это окружающее освещение для ПК. Это работало безупречно на моем Arduino Uno. Моим следующим шагом было сделать это с помощью «Arduino на макете» . Поэтому я купил чистый чип ATmega328 и записал на него загрузчик Arduino (для платы «Arduino Duemilanove w / ATmega328»), используя Arduino IDE и USBasp; и я знаю, что он был загружен должным образом, так как этот чип ATmega отлично работает на Uno.

Затем я сделал конвертер USB-последовательный, используя FT232RL ; но его драйверы не были установлены на моем компьютере (Windows 7 x64). Я подозреваю, что перегрел чип FTDI для поверхностного монтажа и убил его при ручной пайке.

Итак, я оставил это в стороне и получил этот мост конвертера USB-to-serial: (извините за дрянные картинки) Я использовал дополнительный ST232CN на моем макете, чтобы преобразовать уровни напряжения из RS232 в TTL, как показано в этом стр . И это прекрасно работает, как я проверил из петлевого теста. И я подключил контакт 9 ST232 к контакту 2 ATmega, а контакт 10 к контакту 3.

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

Binary sketch size: 1026 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00

Когда я делаю подробную загрузку (Shift + Upload), я получаю эту ошибку / сообщение:

avrdude: usbdev_open(): did not find any USB device "usb"

Кроме того, я попытался добавить нагрузочные резисторы 1 кОм на контакты 2 и 3 ATmega, но это не помогло. Итак, я думаю, что проблема сейчас в последовательной связи от ST232 к ATmega? И есть ли какое-либо специальное подключение к контакту сброса ATmega? Я поднял его до 5 В с резистором 10 кОм.


Схема и / или изображение вашей макета поможет.
sptrks

3
Вы перезагружали микросхему непосредственно перед или одновременно с командой загрузки? Всякий раз, когда я получал ошибку «not in sync», это было связано с этим относительным временем. Для моего макета и Eclipse / AVRDude правильная синхронизация - это отключение булавки сброса непосредственно перед тем, как я нажимаю команду загрузки Но также убедитесь, что ваш компьютер действительно видит адаптер, когда вы подключаете его.
JRobert

1
@potato_in_my_ear - правильный формат публикации решения - это не редактирование, а ответ. Посмотрите ниже, и вы увидите поле под названием «Ваш ответ», в котором его можно ввести. После ввода люди проголосуют за ваш ответ, и вы можете «принять» его, нажав на флажок слева от ответа.
Кевин Вермеер

1
@potato_in_my_ear: Я рад, что это помогло. Вы джентльмен и ученый - я сделаю свой комментарий ответом.
JRobert

2
Решение для людей, чтобы перестать давать ответы в комментариях!
Кевин Вермеер

Ответы:


6

Всякий раз, когда я получал ошибку «not sync», это было связано с тем, что я просто пропустил время сброса (или полностью забыл сброс!). Для моего макета и Eclipse / AVRDude отмена заземления булавки сброса непосредственно перед или в то же время, когда я нажимаю кнопку загрузки, является правильным выбором времени. Но также убедитесь, что ваш компьютер действительно видит адаптер, когда вы подключаете его.

Более поздние платы Arduino созданы для сброса при каждом последовательном соединении и программно с помощью загрузчика. В этой статье блога описывается, как это работает, и что еще интереснее, как взломать его на более ранних платах. Не должно быть слишком сложно положить его на макет, если хотите. Конечно, чип должен иметь совместимый загрузчик (который вы уже вложили в свой). Для макетов я просто танцую кнопку сброса / щелчка мышью.


Я обнаружил, что кто-то говорит, что вы можете заставить цепочку инструментов avr выполнить сам сброс, отредактировав avrdude.conf ; здесь (в комментариях). Но я не уверен, как это сделать. Вы можете помочь. Я ненавижу нажимать кнопку сброса все время ..
Anubis

Это потребует аппаратной поддержки на плате Arduino или макете, которые позже будут установлены в Aduino; сам по себе код не может этого сделать. Он основан на конденсаторе от последовательного DTR до сброса и подтягивания сброса. Если у вас есть старый или макет, вам нужно добавить его. Этот вопрос EE StackEx и статья в блоге, которую я цитировал, должны указать вам правильное направление.
JRobert

2

Как сказал @JRobert в комментариях, правильное время заземления и снятия заземления с булавки сброса на ATmega помогло. Продолжайте заземлять контакт сброса ATmega, когда вы нажимаете «Upload», и так же, как он показывает «Upload», снимите заземление.


Только что получил Arduino Mini, и я знал, что мне нужно нажать кнопку сброса, чтобы загрузить код, но я не мог узнать, когда !!! Это сработало для меня. Спасибо.
Губка Боб

0

У меня были те же ошибки, которые я видел, опубликованные на нескольких сайтах RE: Arduino сообщение "avrdude: stk500_getsync (): нет синхронизации: resp = 0x00" или подобное.

Я обнаружил, что если я удаляю все, что исправлено в D0 ([D0] ЦИФРОВОЙ вывод Zero, самый дальний от разъемов USB и Power, также читает «RX»).

Я попробовал два разных компьютера и получил те же ошибки и обнаружил, что если: 1- я отсоединяю провод от или размыкаю цепь на [D0] 2 - загружаю на Arduino 3 - заново исправляю удаленный провод или замыкаю разомкнутую цепь на [ D0]

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

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

Приятно наконец дать некоторую полезную информацию сообществу!


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

Этот ответ относится к конфликтующим схемам, подключенным к аппаратным последовательным контактам Atmega.
Крис Страттон

0

Это исправило мою проблему, перейдите в раздел «Драйверы и настройка», замените Boards.txt в IDE arduino ...

У меня Arduino MEGA 2560 R3 и у меня была такая же проблема

avrdude: stk500_getsync (): не синхронизировано: resp = 0x00

http://arduino.cc/en/Main/ArduinoBoardADK


-1

Чтобы исправить ошибку «avrdude: stk500_getsync (): not in sync: resp = 0x00». Просто установите драйвер FTDI версии 2.8.24.0. Есть некоторые проблемы с новым драйвером v2.8.28.0.


-1

При загрузке кодов из Arduino IDE на ваш компьютер, пожалуйста, извлеките контакт RX карты Arduino. Вы получите успешную загрузку кода. Выньте контакт RX и попробуйте. Или, вы можете поставить (может быть) Bluetooth RX на RX Arduino, чтобы TX были связаны друг с другом.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.