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


9

Я намагаюся побудувати це освітлення навколишнього середовища для ПК. Це працювало бездоганно на моєму Arduino Uno. Наступним моїм кроком було зробити це за допомогою "Ардуїно на дошці" . Тому я придбав порожній чіп ATmega328 і спалив завантажувач Arduino (для плати "Arduino Duemilanove w / ATmega328") на ньому за допомогою Arduino IDE та USBasp; і я знаю, що це завантажено належним чином, оскільки цей чіп ATmega прекрасно працює на Uno.

Потім я зробив перетворювач USB в послідовний за допомогою FT232RL ; але його драйвери не встановлені на моєму ПК (Windows 7 x64). Я підозрюю, що я перегрів поверхневий чіп FTDI і вбив його під час пайки вручну.

Отже, я залишив його в стороні і отримав цей міст-послідовний перетворювальний міст: (Вибачте за шалені фотографії) Я використовував додатковий 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"

Крім того, я спробував додати підтягуючі резистори 1k на штирі 2 і 3 ATmega, але не допомогло. Тож я здогадуюсь, проблема зараз у послідовному зв’язку від ST232 до ATmega? А чи є якесь спеціальне підключення до шпильки скидання ATmega? Я підтягнув його до 5В з резистором 10 к.


Схематичне та / або зображення налаштування вашої дошки допоможе.
sptrks

3
Ви скинули чіп безпосередньо раніше, одночасно або безпосередньо після командування завантаження? Кожного разу, коли я отримував помилку "не синхронізується", це було пов'язано з тим відносним часом. Для моєї дошки та Eclipse / AVRDude, правильне встановлення часу, як тільки я натискаю команду завантаження, розкручує штифт для скидання. Але також перевірте, чи ваш ПК дійсно бачить адаптер, коли ви підключаєте його.
JRobert

1
@potato_in_my_ear - належний формат для розміщення рішення - це не редагування, а відповідь. Подивіться нижче, і ви побачите поле з назвою "Ваша відповідь", в якому потрібно ввести його. Після вступу, люди проголосують за вашу відповідь, і ви можете "прийняти" її, натиснувши галочку зліва від відповіді.
Кевін Вермер

1
@potato_in_my_ear: Я радий, що допомогло. Ти джентльмен і науковець - я зроблю свій коментар відповіддю.
Дж. Роберт

2
Рішення полягає в тому, щоб люди перестали надавати відповіді в коментарях!
Кевін Вермер

Відповіді:


6

Щоразу, коли я отримував помилку "не синхронізується", це було пов'язано з тим, що я просто пропустив час скидання (або повністю забувши про скидання!). Для моєї дошки та Eclipse / AVRDude, правильне встановлення часу відключення шпильки для скидання безпосередньо перед або одночасно, коли я натискаю кнопку завантаження. Але також перевірте, чи ваш ПК дійсно бачить адаптер, коли ви підключаєте його.

Пізніше плати arduino будуються для скидання кожного разу, коли буде здійснено послідовне з'єднання та програмно завантажувачем. Ця стаття в блозі описує, як це працює, і ще цікавіше, як зламати його на попередніх дошках. Якщо ви хочете, це не повинно бути занадто важким. Звичайно, на чіпі повинен бути сумісний завантажувач (який ви вже поставили у свій). Для макетів я просто виконую танець кнопки скидання / клацання мишкою.


Я знайшов щось, що говорить про те, що ви можете змусити ланцюжок інструментів avr виконати скидання, відредагувавши avrdude.conf ; тут (у коментарях). Але я не впевнений, як це зробити. Ви можете допомогти. Я ненавиджу натискання скидання весь час ..
Анубіс

Для цього знадобиться апаратна підтримка на дошці Arduino або дошці, в яку вбудовані пізніше Aduino; код самостійно не може це зробити. Він заснований на конденсаторі від послідовного DTR до скидання та скидання скидання. Якщо у вас є старший або дошка, вам потрібно буде додати її. Це запитання щодо EE StackEx та цитована у цьому блозі стаття повинні вести вас у правильному напрямку.
JRobert

2

Як заявив @JRobert у коментарях, правильний момент заземлення та необгрунтування шпильки скидання на ATmega зробив свою справу. Тримайте заземлення шпилькою для скидання ATmega, коли натискаєте кнопку "Завантажити", і так само, як відображається "Завантаження", зніміть її.


Щойно у мене з'явився ардуїно міні, і я знав, що мені потрібно натиснути кнопку скидання, щоб завантажити код, але я не міг дізнатися коли !!! Це працювало для мене. Дякую.
Губка Боб

0

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

Я виявив, що якщо я видаляю все, що зафіксовано у D0 ([D0] DIGITAL pin Zero, що знаходиться найдалі від USB-роз'ємів та роз'ємів живлення, також читається "RX").

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

Я зіткнувся з цією помилкою лише під час завантаження, і це моє рішення. зараз.

Сподіваюся, це допомагає.

Добре, що нарешті поверніть спільноту корисну інформацію!


1
Відповідь трохи незрозумілий: речення, що починається "Я виявив, що якщо я ..." є неповним, не впевнений, що ви намагаєтесь сказати там. Відредагуйте, дякую.
Анніндо Гош

Ця відповідь стосується наявності конфліктних схем, підключених до послідовних штифтів апаратного забезпечення atmega.
Кріс Страттон

0

Це вирішило мою проблему, перейдіть до драйверів та налаштувань, замініть Boards.txt в arduino IDE ...

У мене є arduino MEGA 2560 R3, і у мене була така ж проблема

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

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


-1

Щоб виправити помилку "avrdude: stk500_getsync (): не синхронізовано: resp = 0x00". Просто встановіть драйвер FTDI версії 2.8.24.0. Є деякі проблеми з новим драйвером v2.8.28.0.


-1

Додаючи коди з Arduino IDE на комп’ютері, витягніть шпильку RX карти Arduino 0. Ви отримаєте завантаження коду успіху. Виключіть штифт RX і спробуйте. Або ви можете поставити (можливо) RX Bluetooth на RX Arduino, щоб TX були пов'язані між собою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.