Рейтинг@Mail.ru
Ошибка "not in sync: resp=0x30"
Ошибка "not in sync: resp=0x30"

Arduino: что делать при ошибке "not in sync: resp=0x30"?

Бывает, что пишешь программы для Ардуино, загружаешь их в память, и всё прекрасно работает. А потом вдруг - раз - и они больше не загружаются. А среда разработки при попытке загрузить скетч выдаёт ошибку: "arduino avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x30". Что такое? Неужели сгорела плата? Не торопитесь отчаиваться: возможно, ещё не всё потеряно. Давайте разбираться.

Инструкция по поиску причины ошибки Arduino "not in sync: resp=0x30"

Ардуино не программируется, хотя раньше всё работало. Попытка загрузить скетч в память заканчивается вот таким сообщением IDE: "not in sync: resp=0x30".

Ошибка "not in sync: resp=0x30" в IDE Arduino
Ошибка "not in sync: resp=0x30" в IDE Arduino

Для такого поведения возможны несколько причин:

  • по какой-то причине произошёл сбой драйвера;
  • неправильно выбран COM-порт;
  • где-то есть электрическая связь, которой быть не должно (короткое замыкание);
  • произошёл сбой загрузчика (bootloader) платы Arduino.

Давайте пройдёмся по всем пунктам этого списка, пока не устраним проблему.

1Причина 1 Сбой драйвера

Откроем диспетчер устройств Windows через меню Пуск Панель управления Оборудование и звук Диспетчер устройств. Есть более короткий вариант: нажимаем клавишу Windows на клавиатуре и, не отпуская её, нажимаем клавишу Pause. Откроется окно свойств системы, в котором с левой стороны есть ссылка на диспетчер устройств.

Находим и раскрываем в диспетчере раздел Порты (COM и LPT). Если драйвер установлен и работает корректно, никаких оверлейных значков типа вопросительного или восклицательного знака на пиктограмме устройства Ардуино быть не должно. Если такие значки имеются, значит, есть проблемы в работе драйвера. Если Arduino или устройства USB-Serial вообще нет в этом разделе диспетчера, значит драйвер даже не установлен. В любом из этих случаев драйвер необходимо установить (или переустановить).

В диспетчере устройств выбираем нашу плату Arduino (или неизвестное устройство, которое появляется при подключении платы Arduino к компьютеру), нажмём на него правой кнопкой мыши и в контекстном меню выберем пункт Обновить драйверы… (Update drivers…).

Arduino в диспетчере устройств
Arduino в диспетчере устройств Windows

Выбираем Выполнить поиск на этом компьютере и указываем путь к директории с драйвером для платы. Далее следуем указаниям мастера настройки нового оборудования.

Для оригинальных плат семейства Ардуино драйверы имеются в директории среды разработки, в поддиректории drivers. Для Ардуино-совместимых плат ищите драйвер в интернете.

2Причина 2 Неверно выбран COM-порт

Проверим, что правильно указали COM-порт в IDE Arduino. Проверить, какой порт присвоен системой нашей плате Ардуино можно в диспетчере устройств Windows. Платы Arduino находятся в разделе Порты (COM и LPT) и определяются обычно как устройства Arduino или USB-Serial.

В среде разработки Arduino идём в меню Инструменты Порт и убеждаемся, что указан верный порт. Если нет, указываем нужный.

Указываем COM-порт в IDE Arduino
Выбор COM-порта в IDE Arduino

3Причина 3 Замыкание или несанкционированное соединение

Если плата Arduino лежит на токопроводящей поверхности, есть риск, что где-то имеется короткое замыкание. Это может являться причиной ошибки в работе платы и, в частности, мешать нормальному процессу программирования. Проверьте, что плата находится на изолированной поверхности.

Также к этому типу причин я бы отнёс подключение несанкционированных проводов к выводам 0 и 1 платы Ардуино, которые являются портами RX и TX и используются в процессе загрузки скетча в память платы.

4Причина 4 Сбой загрузчика

Если ничего из перечисленного не помогло, попробуем ещё один вариант: перезапишем загрузчик платы (bootloader).

Загрузчик – это специальная управляющая программа для Arduino, которая исполняется при включении устройства и которая задаёт режим работы платы: либо переходит к исполнению программы из памяти Arduino, либо к процедуре программирования компьютером. Загрузчики для всех поддерживаемых плат Arduino хранятся в папке c IDE в поддиректории \hardware\arduino\avr\ и представляют собой бинарные hex-файлы.

Для реализации этого варианта нам потребуется программатор. Более подробно работу с программатором мы уже рассматривали, поэтому привожу здесь лишь схему подключения:

Схема подключения программатора к Arduino
Схема подключения программатора к Arduino

После подключения программатора в среде программирования Ардуино в меню Инструменты Программатор указываем тип нашего программатора. Например, USBasp. Теперь в том же меню Инструменты выбираем пункт Записать Загрузчик. Этот процесс не занимает много времени.

Если операция прошла успешно, IDE сообщит об этом. А плата Ардуино радостно замигает светодиодом на 13-ом выводе, т.к. в неё, кроме загрузчика, записан скетч по умолчанию – скетч мигания светодиодом Blink.

Если же после всех проделанных манипуляций плата не оживает, возможно, вы и правда сожгли микросхему. Мои соболезнования.

Последнее изменениеСреда, 04 Январь 2017 17:27
(2 голосов)
Прочитано 1927 раз

Поделиться

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены