Не грузится программа в ардуино

Не загружается скетч в ESP8266. Год назад все загружалось а сейчас не загружается выдает ошибку в чем проблема?
Помогите!

Библиотеки все стаят?
Егор-Тин пишет:
Библиотеки все стоят?
Библиотеки на месте. Уже проверял.

Прикладывайте скриншот или код ошибки. Так сложно определить в чем у вас проблема.
Как вариант попробуйте перестановить Arduino IDE. https://www.arduino.cc/en/Main/OldSoftwareReleases#previous
Я пользуюсь версией 1.6.13. Самая нормальная. Но я работою в linux.

Admin пишет:

Прикладывайте скриншот или код ошибки. Так сложно определить в чем у вас проблема.
Как вариант попробуйте перестановить Arduino IDE. https://www.arduino.cc/en/Main/OldSoftwareReleases#previous
Я пользуюсь версией 1.6.13. Самая нормальная. Но я работою в linux.

Вы были почти правы
Проблема в менеджере плат.
Esp8266 by ESP8266 версия 2.3.0 менеджер плат все работает.
А в версии Esp8266 by ESP8266 версия 2.5.0 НЕТ

Спасибо всем кто помог!

Не грузится скетч на Ардуино | Решение проблемы при загрузке скетча на Arduino Nano

Maxsim33 пишет:

Admin пишет:Прикладывайте скриншот или код ошибки. Так сложно определить в чем у вас проблема.
Как вариант попробуйте перестановить Arduino IDE. https://www.arduino.cc/en/Main/OldSoftwareReleases#previous
Я пользуюсь версией 1.6.13. Самая нормальная. Но я работою в linux.

Вы были почти правы
Проблема в менеджере плат.
Esp8266 by ESP8266 версия 2.3.0 менеджер плат все работает.
А в версии Esp8266 by ESP8266 версия 2.5.0 НЕТ

Спасибо всем кто помог!
Ошибка вот такая

Скетч использует 320612 байт (30%) памяти устройства. Всего доступно 1044464 байт.
Глобальные переменные используют 28640 байт (34%) динамической памяти, оставляя 53280 байт для локальных переменных. Максимум: 81920 байт.
12:04:09 [ERROR]: No Answer
12:04:09 [ERROR]: No Answer

Источник: portal-pk.ru

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

Print Friendly, PDF 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».

Ошибка

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

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

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

Arduino ошибка загрузки скетча

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:
Программа для настройки телекарты

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

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

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

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

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

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

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

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

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

Источник: soltau.ru

Не грузится программа в ардуино

Arduino Pro Mini

Arduino Pro Mini весьма привлекательная плата из семейства Ардуино в первую очередь маленькими габаритами и ценой.

Зачем перезаписывать загрузчик

  1. Если загрузчик «слетел» и плата не прошивается. Выдает всегда: «avrdude: stk500_recv(): programmer is not responding».
  2. Если вы решили разобраться со сторожевым таймером, как в этой статье, и использовать для этого OPTIBOOT.
  3. Если нужно переустановить ФЬЮЗ-биты, например, как в моем случае, отключить контроль напряжения питания для того чтобы запитать плату от 3.3В
  4. Или же вы решили совсем убрать загрузчик с целью экономии памяти и увеличения скорости загрузки, тогда вместо загрузчика заливается ваша программа по нулевому адресу.

002

Что для этого нужно

  • Недорогой программатор USBASP
  • Стандартные проводочки для подключения модулей к платам Arduino
  • Драйвер USBASP (если программировать по Windows)
  • Среда разработки Arduino IDE

Подключение

Все Arduino имеющие 6-пиновый IСSP разъем подключаются к программатору через такой переходник

Arduino Pro Mini ICSP на плате не имеет, поэтому подключаем проводками по следующей схеме

Схема подключения

Подключаем программатор к USB компьютера, устанавливаем драйвер USBAsp (если он еще не установлен) и запускам среду Arduino IDE

Прошивка Arduino Pro Mini

Выбираем тип программатора USBASP

Выбор программатора

Выбираем тип контроллера. Если мы хотим просто восстановить загрузчик — выбираем Arduino Pro Mini 5В (или 3.3В в зависимости от платы). Если нам нужен OPTIBOOT без лишней головной боли — выбираем Arduino UNO

Выбор контроллера

Затем жмем «Записать загрузчик»

Записать загрузчик

Если все подключено и настроено правильно, то программатор довольно долго мигает лампочками.

Настройка параметров загрузчика

Последнее время применяю Aduino Pro Mini 5В с модулями NRF24L01+, требующих для питания 3.3В. Для питания таких плат от низкого напряжения нужно отключить во фьюзах контроль напряжения питания. Для этого открываем файл c:Program Files (x86)Arduinohardwarearduinoboards.txt и прописываем в нем характеристики желаемой прошивки:

atmega328_16 . name = Atmega328_16 ( 3.3V , 16 MHz external )
atmega328_16 . upload . protocol = arduino
atmega328_16 . upload . maximum_size = 32256
atmega328_16 . upload . speed = 115200
atmega328_16 . bootloader . low_fuses = 0xff
atmega328_16 . bootloader . high_fuses = 0xde
atmega328_16 . bootloader . extended_fuses = 0x07
atmega328_16 . bootloader . path = optiboot
atmega328_16 . bootloader . file = optiboot_atmega328 . hex
atmega328_16 . bootloader . unlock_bits = 0x3F
atmega328_16 . bootloader . lock_bits = 0x0F
atmega328_16 . build . mcu = atmega328p
atmega328_16 . build . f_cpu = 16000000L
atmega328_16 . build . core = arduino
atmega328_16 . build . variant = standard

После этого шьем выбираем тип контроллера «Atmega328_16 (3.3V, 16 MHz external)» и пишем загрузчик.

Программируя «перешитый» Arduino Pro Mini через стандартный порт не нужно забывать устанавливать нужный тип контроллера

Posted in Arduino, Технологии | Метки: Arduino, ATMEGA328, USBASP
Вы можете оставить отзыв или трекбек со своего сайта.

44 комментария на «Перезапись загрузчика в Arduino Pro Mini»

Alexey :

Да. Только там штырьки в ряд а не в два ряда, как в стандартном разъеме
Поэтому все равно проводочками соединять

Вы не правы, Alexey. контакты ICSP расположены в 2 ряда. Маркировка есть на обратной стороне платы (по выложенному мной лоту видно на третьей фотографии).

Alexey :

Да. Увидел. Очень нечеткая картинка.
Интересный дизайн. Еще бы на нем поставили 3.3 стабилизатор и вывели бы на I2C

Добрый день. Хотел спросить, правильно ли я понял, у вас arduino pro mini 5 вольтная версия, вы её как бы сделали 3 вольтной. При этом стабилизатор остался старый, кварц на 16 Мгц, и запитываете это всё напрямую в обход стабилизатора на плате 3.3 Вольтами. Интересуюсь дотошно ибо хочу сделать из arduino pro micro тоже (только стаб перепаяю)

Читайте также:
Как создать программу для изучения языка

Alexey :

Да все так.
Я поменял фьюз-бит контроля напряжения питания на контроллере, иначе он отключался при низком напряжении.
По даташиту еще рекомендуют понизить тактовую частоту, но у меня на 16МГц стабильно все работает.
При напряжении питания 3.3В не вижу в стабе вообще смысла.

Спасибо за ответ, будем пробовать.

Доброго времени суток.
Не подскажите как определить на какое питание ардуина, заказал несколько штук, пришли по виду одинаковые или не замораживаться и сразу прошивать на 3 вольта?
Спасибо и всего доброго.

Alexey :

Платы немного отличаются дизайном.
Но у них и 5-вольтовых разный дизайн от версии к версии.
Самый простой способ подключить к IDE Arduino. Подать 5В через USB. 3-х вольтовый от 5В тоже работает.
И попробовать залить скетч выбирая нужную плату.

Подскажи, плиз, как убрать загрузчик вовсе? Нужно для быстрого старта, сразу после подачи питания
arduino pro mini 5v

Перестала прошиваться pro mini 328 5v 16Мгц как через ftdi,так и через AVRasp (isp) программаторы.Пытался залить через ISP загрузчик,процесс пошел,а потом прирвался и выкидывал ошибки вида: avrdude: stk500_recv(): programmer is not responding» и avrdude: verification error, first mismatch at byte 0x1c00
0x12 != 0xff
avrdude: verification error; content mismatch.
Раньше при тех же инструментах/манипуляциях проблем не было.
Менял:кабели,программаторы,среду обновлял — не помогло. Ардуино mega 2560 при тех же инструментах шьется нормально.

Alexey :

Может фьюзы попротились?
Как их откатить/восстановить?

Alexey :

Добрый день.
Если прошить в про мини бутлоадер ему это не повредит? Будет работать watchdog? И какую плату надо будет выбирать в студии для заливки скетча ?

бутлоадер от Uno

Alexey :

Бутлоадер от UNO это optoboot поддерживающий нормально сторожевой таймер.
На Pro Mini будет работать (если контроллер Atmega328p), только потом нужно карту выбирать при загрузке скетчей — Uno.

Спасибо за информацию. Надо будет попробовать. Никаких подводных камней не наблюдается при этом?

Alexey :

Не заметил
Благодарю за информацию
Вроде залился бутлодырь))Пасиб за информацию!

На картинке подключения USBasp не перепутаны выводы MOSI,MISO?Судя по распиновке вывод дуины 11 соответствует выводу 16 МК, а это MISO,который почему то на 12 выводе дуины…Можь надо исправить?

Alexey :

Да вроде все нормально. У Atmega 8/168/328 MOSI — DIO11, MISO — DIO12

Привет.
Понимаю, что тема сообщения другая. Перебросьте туда, где ему положено быть, если сообщение мешается здесь.
Только начал изучать Ардуино и вот что-то непонятное произошло — после загрузки скетча «мерцание» (в RobotDyn UNO) всё стало работать как и должно, но… теперь мерцает всегда. Ничего не позволяет в себя загрузить.
Проинструктируйте, пожалуйста.

Alexey :

Не совсем понятно что за «мерцание». Не загружаться может по разным причинам. 1. работает сторожевой таймер отправляя Ардуину в циклическую перезагрузку. Здесь можно попытаться поймать момент загрузки (в Ардуино IDE в логе нужно смотреть вывод) и успеть перед ним нажать РЕСЕТ 2. Слетел загрузчик или фьюзы.

Тут нужно использовать ICSP разъем для внутрисхемного программирования и восстановить загрузчик и фьюзы, например, так как описано в этой статье. Можно это сделать при помощи другого Ардуино и 6-ти проводков. 3. Неисправная Ардуино. Сгорела микросхема USB/TTL конвертера. В этом случае, если еспи чип рабочий, то его можно будет программировать, но только опять же через ICSP. Если неисправно что-то другое — чинить или выкинуть

спасибо
мерцание — blink
Вы правы. Я допустил вольный (привычный мне) перевод. После посмотрел в интернет, везде переводится как «мигание, моргание» в связке с Ардуино. Извиняюсь. Мне стоило использовать язык оригинала.
После переустановки пакета версии 1.7.11 с офсайта пропали сообщения об ошибках ld.exe. Это радует, потому что, изменяя в скетче «blink» параметры delay теперь, можно видеть, что светодиод на плате слушается команд.
А раньше (при попытке загрузить скетч) компилятор выдавал ошибку — и всё тут.
Теперь при загрузке другого скетча проскочило такое сообщение:
avrdude: ser_open(): can’t open device «\.COM1»: Не удается найти указанный файл.
Хотя порт выбран СОМ4 и скетч «blink» по нему загрузился без ошибок

Alexey :

В Arduino IDE
Файл -> Настройки
Установить галку «Показать подробный вывод: Загрузка»
Можно посмотреть подробно, что делает/пытается сделать IDE.
Я сижу на версии 1.6.5, так как она корректно работает с ESP8266. Может быть это особенности 1.7

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

Скажите пожалуйста Уважаемый.
У Вас и не только(много примеров в интернете)
для отключения проверки уровня напряжений, используется в Extended Fuse = 0x07
При попытке прошить, дудка(Avrdude) то ли ругается, то ли предупреждает и предлагает вариант для Extended fuse прописать 0xFF
И действительно, в различных он-лайн калькуляторах для проца 328P, в Extended фьюзах, только младшие 3 бита отвечают за контроль напряжения(BODLEVEL), а остальные 5 бит вообще свободны и никуда не используются. Почему же тогда везде советуют делать 0x07? Какой смысл выставлять в 0 старшие 5 бит, если они никуда не нужны? Почему не 0xFF, на чeм настаивает дудка?

Читайте также:
Рабочая программа кружка по ручному труду сундучок идей

Развейте мои сомнения, пожалуйста, помогите чайнику. Заранее спасибо.

Alexey :

Вы правы. Там только 3 байта значащие
Это калькулятор ставит 0xFF как нравится дудке )))
http://www.engbedded.com/fusecalc/
Я скорее всего где то тоже из примеров взял фьюзы. Проверил — они не противоречат правильной конфе. Так и копируются по всему интернету

А можно еще пару вопросов? Наверняка ламерские, но не обессудьте? Я совсем чайник и прошу быть снисходительным и тапками не закидывать. Я в вашем МК-мире, от силы, недели две.
1. При прошивке скетча в среде Ардуино, каждый раз прошивается только скетч или и загрузчик тоже? И отличается ли процесс прошивки, если шить скетч программатором из Экслипса, Дудкой, по сравнению с Ардуиной? В Ардуине не видно команд и процесса прошивки Дудкой в реальном времени.

Когда прошивал через программатор из Экслипса, обратил внимание(там все видать в натуре), что в командной строке Дудки был ключ -D, т.е. предварительная очистка флэша. Это имеется ввиду полная очистка контроллера или бутлоадер остается? Как ФайлСкетча.HEX знает, где ему размещаться, где заканчивается бутлоадер?

И не стерся ли бутлоадер, который я сначала прошивал отдельно из командной строки, подглядев предварительно, как она выглядит при прошивке из Экслипса. А если бутлоадер не родной, а в частности Optiboot для Pro Mini? Ткните носом пожалуйста, где про всю эту кухню почитать, как все это организуется? Желательно по русски и простым языком.
2. Как во фьюзах выбирать параметры BOOTSZ, Boot Flash Sector Size, сколько слов и адрес? Почему в калькуляторе фьюзов, при выборе разного размера этих самых слов, Boot Start Address изменяется, странными значениями $3F00, $3C00, $3800? Разве стартовый адрес загрузчика не начинается от нулевого адреса и почему он(стартовый адрес) зависит от длины бутлоадера?

И почему, если выбираешь бутлоадер длиннее, то адрес меньше? Size=256 words — address = $3F00, а когда 2048 words, address= $3800 Как все это понимать? Заранее спасибо.

Alexey :

Бутлоадер может переписывается только если работать через программатор. Когда программа заливается через бутлоадер, то сам бутлоадер затереть невозможно, также как и изменить фьюзы. В этом и прелесть Ардуины в отличии от «голых» микроконтроллеров. Для того чтобы полностью видеть процесс загрузки:
Файл -> Настройки ->Показать подробный вывод ->Загрузки (поставить галочку) Фьюзы, размер загрузчика, начальный адрес и как это все организуется прописывается в файле board.txt для данного контроллера. $3F00 = 16128
$3800 = 14336
наводит на мысль, что это размер памяти основной программы (общий размер памяти — размер загрузчика)

Спасибо за ответ. У меня Линукс и в его ArduinoIDE, почему-то нет такой опции, выбрать просмотр процесса прошивки. Т.е. если я шью через Ардуину, я фактически шью только саму основную прогу, а если через программатор, то как мне знать, остался ли бутлоадер? А зачем он вообще тогда нужен? Какая его главная функция, если и без него можно прошить саму программу и будет работать?

Похоже, Вы правы. Вот цитата с сайта http://www.getchip.net/posts/104-proshivka-lyubogo-hex-fajjla-v-arduino-pri-pomoshhi-shtatnogo-zagruzchika-bootloader/ Теперь стало понятно про адресацию из калькуляторов фьюзов, при разных размерах загрузчика.

День добрый ! Подскажите,как убрать загрузчик из ардуино, как необходимо изменить при этом файлы Arduino IDE? А то в начале статьи упоминается в 4м пункте как загрузчик удалить, а в самой статье об этом ни слова! Спасибо.

Здравствуйте, для плат pro mini на чипе 168 это актуально?

Alexey :

Да. Только в board.txt соответствующий контроллер нужно выбрать

здравствуйте.
не могли бы Вы ликвидировать мою безграмотность вот в каком вопросе. имеется атмега 328р-au 20 мгц можно ли ее прошить используя в качестве ардуино уно в качестве программатора?

Alexey :

Как залить HEX файл в Arduino Due R3 без Arduino IDE желательно, хотя не обязательно?
И еще, где взять проверенный файл загрузчика для UNO и DUE?

Алексей, изучая вашу статью, обнаружил (как мне кажется) ошибку в примере:
«atmega328_16.bootloader.extended_fuses=0?07»
мне кажется что в конце строки должно быть 0x07.
Правда непонятно зачем вообще отключать контроль питания. Поставить 0х05 — 2,7 вольт и все будет соответствовать вашим желанием питаться от 3,3в

Alexey :

Спасибо, исправил.
По поводу 2.7В — cейчас проектами занимаюсь с питанием от двух AA. 2.7 явно маловато

Источник: samopal.pro

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru