Первая загрузка прошивки
Содержание
- 1 Подключение платы
- 2 Выбор и настройка платы
- 3 Загрузка прошивки
- 4 Ошибка компиляции
- 5 Ошибка загрузки
Подключение платы
Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:
- Неисправен USB кабель
- Неисправен USB порт компьютера
- Неисправен USB порт Arduino
- Попробуйте другой компьютер, чтобы исключить часть проблем из списка
- Попробуйте другую плату (желательно новую), чтобы исключить часть проблем из списка
- На плате Arduino сгорел входной диод по линии USB из-за короткого замыкания, устроенного пользователем при сборке схемы
- Плата Arduino сгорела полностью из-за неправильного подключения пользователем внешнего питания или короткого замыкания
Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:
- См. предыдущий список неисправностей
- Кабель должен быть data-кабелем, а не “зарядным”
- Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб
- Не установлены драйверы Arduino (во время установки IDE или из папки с программой), вернитесь к установке.
В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, обычно COM3. Если этого не произошло:
- См. предыдущий список неисправностей
- Некорректно установлен драйвер CH341 из предыдущего урока
- Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
- Возникла системная ошибка, обратитесь к знакомому компьютерщику
Выбор и настройка платы
- В наборе используется Arduino Nano, выбираем в ИнструментыПлатаArduino Nano
- На данный момент в микроконтроллер китайских плат зашит “старый” загрузчик, поэтому далее выбираем ИнструментыПроцессорATmega328p (Old Bootloader)
- Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
- Теперь выбираем порт, к которому подключена плата. COM1 – в большинстве случаев системный порт, у вас должен появиться ещё один (обычно COM3)
Загрузка прошивки
“Загрузка” прошивки происходит в два этапа – компиляция и непосредственно загрузка в микроконтроллер. Компиляция – проверка кода на наличие ошибок, её можно запустить, нажав кнопку с символом галочки в верхнем меню программы. Компилировать код можно даже не подключая плату к компьютеру! При нажатии на кнопку с символом стрелочки начнётся компиляция, а затем загрузка скомпилированного кода в плату.
Вставьте следующий код с полной заменой содержимого в IDE и загрузите его. Должен начать мигать светодиод L на плате, это означает что все программы настроены верно и можно переходить к работе с набором!
void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, 0); delay(300); digitalWrite(LED_BUILTIN, 1); delay(300); }
Ошибка компиляции
Возникает на этапе сборки и компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки, то есть проблема сугубо программная. Слева от кнопки “загрузить” есть кнопка с галочкой – проверка. Во время проверки производится компиляция прошивки и выявляются ошибки, если таковые имеются. Ардуино в этом случае может быть вообще не подключена к компьютеру.
- В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
- В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки и понять, куда копать
- В скачанных с интернета готовых скетчах часто возникает ошибка с описанием <название файла>.h no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по <название файла>.
- При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
- Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
- Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча.
- Ошибка недостаточно свободного места возникает по вполне понятным причинам. Оптимизация: статическая память – память, занимаемая кодом (циклы, функции). Динамическая память занята переменными.
Ошибка загрузки
Возникает на этапе, когда прошивка собрана, скомпилирована, в ней нет критических ошибок, и производится загрузка в плату по кабелю. Ошибка может возникать как по причине неисправностей железа, так и из-за настроек программы и драйверов.
- Если неправильно выбран COM порт – прошивка не загрузится с ошибкой avrdude: ser_open(): can’t open device. Вернитесь к пункту “Выбор и настройка платы” этого урока и убедитесь в том, что выбор порта активен и при подключении платы появляется новый.
- Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением Ардуины от питания. Потом вставляем USB и по новой прошиваем.
- Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”.
- Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
- Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
- Если в описании ошибки встречается bootloader is not responding и not in sync, а все предыдущие пункты этого списка проверены – с вероятностью 95% микроконтроллер сломался. Оставшиеся 5% – “слетел” загрузчик, и его можно прошить заново.
- Если появилась красная надпись avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00, но прошивка по факту загрузилась – возможно проблемы с USB кабелем/портом/гнездом на плате Arduino, можно попробовать другой кабель или порт.
Полезный пример?
Содержание
- Первая загрузка прошивки
- Подключение платы
- Выбор и настройка платы
- Загрузка прошивки
- Ошибка компиляции
- Ошибка загрузки
- Avrdude loadaddr b protocol error expect 0x14 resp 0xfc
- KvaksMan
- Fleshdeck
- KvaksMan
- Arduino.ru
- Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
- forum.arduino.ru
- Аномалия с Arduino Nano
- Avrdude loadaddr b protocol error expect 0x14 resp 0xfc
- Эдуард Анисимов
- Arduino.ru
- Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
- forum.arduino.ru
- не могу востановить загрузчик в четырёх нано
Первая загрузка прошивки
Подключение платы
Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:
- Неисправен USB кабель
- Неисправен USB порт компьютера
- Неисправен USB порт Arduino
- Попробуйте другой компьютер, чтобы исключить часть проблем из списка
- Попробуйте другую плату (желательно новую), чтобы исключить часть проблем из списка
- На плате Arduino сгорел входной диод по линии USB из-за короткого замыкания, устроенного пользователем при сборке схемы
- Плата Arduino сгорела полностью из-за неправильного подключения пользователем внешнего питания или короткого замыкания
Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:
- См. предыдущий список неисправностей
- Кабель должен быть data-кабелем, а не “зарядным”
- Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб
- Не установлены драйверы Arduino (во время установки IDE или из папки с программой), вернитесь к установке.
В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, обычно COM3. Если этого не произошло:
- См. предыдущий список неисправностей
- Некорректно установлен драйвер CH341 из предыдущего урока
- Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
- Возникла системная ошибка, обратитесь к знакомому компьютерщику
Выбор и настройка платы
- В наборе используется Arduino Nano, выбираем в ИнструментыПлатаArduino Nano
- На данный момент в микроконтроллер китайских плат зашит “старый” загрузчик, поэтому далее выбираем ИнструментыПроцессорATmega328p (Old Bootloader)
- Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
- Теперь выбираем порт, к которому подключена плата. COM1 – в большинстве случаев системный порт, у вас должен появиться ещё один (обычно COM3)
Загрузка прошивки
“Загрузка” прошивки происходит в два этапа – компиляция и непосредственно загрузка в микроконтроллер. Компиляция – проверка кода на наличие ошибок, её можно запустить, нажав кнопку с символом галочки в верхнем меню программы. Компилировать код можно даже не подключая плату к компьютеру! При нажатии на кнопку с символом стрелочки начнётся компиляция, а затем загрузка скомпилированного кода в плату.
Вставьте следующий код с полной заменой содержимого в IDE и загрузите его. Должен начать мигать светодиод L на плате, это означает что все программы настроены верно и можно переходить к работе с набором!
Ошибка компиляции
Возникает на этапе сборки и компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки, то есть проблема сугубо программная. Слева от кнопки “загрузить” есть кнопка с галочкой – проверка. Во время проверки производится компиляция прошивки и выявляются ошибки, если таковые имеются. Ардуино в этом случае может быть вообще не подключена к компьютеру.
- В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
- В чёрном окошке в самом низу Arduino IDE можно прочитать полный текстошибки и понять, куда копать
- В скачанных с интернета готовых скетчах часто возникает ошибка с описанием .h no such file or directory. Это означает, что в скетче используется библиотека , и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по .
- При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
- Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
- Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча.
- Ошибка недостаточно свободного места возникает по вполне понятным причинам. Оптимизация: статическая память – память, занимаемая кодом (циклы, функции). Динамическая память занята переменными.
Ошибка загрузки
Возникает на этапе, когда прошивка собрана, скомпилирована, в ней нет критических ошибок, и производится загрузка в плату по кабелю. Ошибка может возникать как по причине неисправностей железа, так и из-за настроек программы и драйверов.
- Если неправильно выбран COM порт – прошивка не загрузится с ошибкой avrdude: ser_open(): can’t open device. Вернитесь к пункту “Выбор и настройка платы” этого урока и убедитесь в том, что выбор порта активен и при подключении платы появляется новый.
- Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением Ардуины от питания. Потом вставляем USB и по новой прошиваем.
- Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”.
- Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
- Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
- Если в описании ошибки встречается bootloader is not responding и not in sync, а все предыдущие пункты этого списка проверены – с вероятностью 95% микроконтроллер сломался. Оставшиеся 5% – “слетел” загрузчик, и его можно прошить заново.
- Если появилась красная надпись avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00, но прошивка по факту загрузилась – возможно проблемы с USB кабелем/портом/гнездом на плате Arduino, можно попробовать другой кабель или порт.
Источник
Avrdude loadaddr b protocol error expect 0x14 resp 0xfc
KvaksMan
Загрузил Arduino ISP для Arduino nano,
при нажатии записать загрузчик выдаёт ошибку:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500_disable(): unknown response=0x12
Ошибка при записи загрузчика.
Fleshdeck
KvaksMan
Теперь ошибка:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xf9
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x15
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500_disable(): unknown response=0x12
Ошибка при записи загрузчика.
Источник
Arduino.ru
Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
forum.arduino.ru
Аномалия с Arduino Nano
Добрый день! Сегодня столкнулся с такой аномалией.
Заливал скетчи как обычно, всё нормально, но бац почему то при заливке пишет такие ошибки (они разные):
avrdude: verification error, first mismatch at byte 0x00c4
0xe8 != 0xec
avrdude: verification error; content mismatch
но пишет что залилось удачно.
или такую бывает тоже пишет:
avrdude: stk500_paged_load(): (a) protocol error, expect=0x10, resp=0x30
avrdude: stk500_cmd(): programmer is out of sync
Но при такой ошибке, пишет что залилось не удачно.
НО, аномалия в том что, на самом деле он заливает скетч и работает как надо контроллер, отвечает по TX — RX и т.п.
Что за аномалия и ошибки и как их убрать?
Попробуйте перевесить на другой USB-порт или отключить другие USB-устройства. Такое впечатление, что USB глючит.
Но прикол в том что, соседняя ардуинка nano, заливается скетч без ошибок и проблем.
Попробуем по позже с другого компа :).
Неисправность может оказаться и электрической, например, расшатался разъем. Попробуйте его пропаять.
А может ли быть проблема в том что Контроллер «дохнет»?
Возникла еще печальная проблема. Теперь же, даже при попытке просто залить скетч пишет тоже ошибки, такого типа:
avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x50
avrdude: stk500_cmd(): protocol error
Но контроллер нормально принимает команды по TX/RX.
Контроллер Nano, TX / RX подключен через программатор. К тому же, когда я заливаю скетч, то я зажимаю кнопку ресет и жду пока «моргнет» лампочка на программаторе, как только моргает, отпускаю, и обычно сразу заливался скетч.
Аномалия какая-то. раньше были ардуино запитаны от общего питания с отрубленным БП. Не перпрошивало эту аномальную ардуинку, отрубил вообще этот кабель и перепрошило. Что за фигня?)
Источник
Avrdude loadaddr b protocol error expect 0x14 resp 0xfc
Эдуард Анисимов
Доброго времени суток.
Столкнулся со странной проблемой.
Есть Arduino NANO. Подключаю USBasp тру память флеш и читаю обратно. Всё чисто.
После чего с Arduino IDE шью загрузчик. После чего обычным способом подключаю нану к Arduinio IDE и работает всё нормально.
Теперь повторяю то же самое, но самодельной платой. TX, RX разведены DTR через кондёр как на НАНО.
Читаю с помощью USBasp и НАНО и свою плату, фьюзы одинаковы, во флеше одинаковая прошивка.
Но при подключении USB->TTL преобразователя и попытке программированиня получаю вот такое сообщение:
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file «C:UsersUserAppDataLocalTemparduino_build_530250/sketch_oct19a.ino.hex»
avrdude: writing flash (444 bytes):
avrdude: 444 bytes of flash written
avrdude: verifying flash memory against C:UsersUserAppDataLocalTemparduino_build_530250/sketch_oct19a.ino.hex:
avrdude: load data flash data from input file C:UsersUserAppDataLocalTemparduino_build_530250/sketch_oct19a.ino.hex:
avrdude: input file C:UsersUserAppDataLocalTemparduino_build_530250/sketch_oct19a.ino.hex contains 444 bytes
avrdude: reading on-chip flash data:
Reading |
avrdude: stk500_paged_load(): (a) protocol error, expect=0x14, resp=0x94
############avrdude: stk500_cmd(): programmer is out of sync
avr_read(): error reading address 0x0000
read operation not supported for memory «flash»
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x94
avrdude done. Thank you.
выбранный последовательный порт
не существует или плата не подключена к нему
Источник
Arduino.ru
Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
forum.arduino.ru
не могу востановить загрузчик в четырёх нано
допустим в одной пишет ошибку
Полный лог загрузки (не компиляции) надо !
а зачем вообще полезли перешивать, если не разбираетесь?
А перед заливкой скетча не пробовали выбирать «Инструменты»->»Процессор»->»ATMega328P (Old Bootloader)» ?
а зачем вообще полезли перешивать, если не разбираетесь?
уже востанавливал раньше и часто меняю загрузчик у нано на уно для большей памяти
но тут всё странно
А перед заливкой скетча не пробовали выбирать «Инструменты»->»Процессор»->»ATMega328P (Old Bootloader)» ?
я этим и занимался
купил 100 нанок с бутлоадером и 3 из них кривые оказались при проверке и четвёртую запорол при востановлении их
а напрямую avrdude не умеете запускать при 100 платах то .
я там не понимаю что куда и как и для чего
а в ардуино всё просто выбрал и загрузил
Полный лог загрузки мы увидим или нет ?
Это при какой схеме загрузки ?
Так и выбрать надо программер arduino isp.
В скетче ISP ресет на 10 пине ?
странно везде советуют ардуино ас ИСП
через ардуиноИСП нехочет сразу же выдаёт
Но не stk500 как у вас в логе !
Вы можете открыть окно команд и зайти в папку где лежит avrdude — D:dokumentPortableFLProg_6-3-1_Win64ideV5hardwaretoolsavr/bin/
да но он не запускается
отдельно скачал прогу avrdudeprog33
avrdude -v -patmega328p -carduino -PCOM3 -b19200
avrdude -v -patmega328p -cavrisp -PCOM3 -b19200
в ней нету такого выставить
надо написать в командной строке и выполнить .
Программатор или arduino или avrisp.
avrdude запускается на полсекунды и закрывается
Вы просто мышкой по ней шелкаете что ли ?
Надо открыть окно командной строки, перейти в папку с avrdude и вводить команды.
Komandir — с таким персонажем надежды на успех мало 🙂
Посмотри — программирует в ФЛПроге, комкандную строку явно никогда не видел, вместо Нано выбрана тини, порт скорее всего неверный.
При это заливает 100 ардуинок.
«Кулинар!» (с) Покровские ворота :))))
Гость, вам что сказали — перейти в папку, где лежит avrdude. А вы где ее пытаетесь запустить? — в C:UserUser ? — разве у вас avrdude твм лежит?
неужели правда в консоли первый раз работаете.
я третий раз говорю
она там не запускается
куда катится этот мир .
можно в папке с avrdude зажать левый шифт и щелкнуть правой кнопкой — в меню выбрать Открыть окно команд
Источник
Posted by: gdelmatto : Category: Hacks
Years ago I wrote about using the Arduino Micro as an ISP for use with a standalone ATMEGA micro controller.
I used this again every now and then, but got to the point where I wanted sort of a more permanent setup. As I had a spare Duemilanove and some prototype boards lying around, all I had to get was a DIP28 ZIF socket and start soldering.
Here’s the Layout:
ATMEGA Pin 20 and 7 -> 5V
ATMEGA Pin 22 and 8 -> GND
RESET: ATMEGA Pin 1 -> Protoboard Pin 10
SCK: ATMEGA Pin 13 -> Protoboard Pin 13
MISO: ATMEGA Pin 12 -> Protoboard Pin 12
MOSI: ATMEGA Pin 11 -> Protoboard Pin 11
Yellow LED Anode -> Protoboard Pin 8
Red LED Anode -> Protoboard Pin 6
Green LED Anode -> Protoboard Pin 3
All LED Cathodes -> GND (attach a 150 Ohm resistor)
On the Protoboard, connect RSET and 5V through a 120 Ohm pull-up resistor
With this setup, I opened the ArduinoISP sketch included with Arduino IDE.
In my old tutorial I recommended downloading the sketch from Github, this has become obsolete.
The one include with recent versions Arduino IDE is far more advanced.
I had just these minor things changed in the sketch:
With this loaded onto the Duemilanove I could finally use it it burn standalone micros like a charm.
So, I took the solution upfront. This works for me.
The problem I had up to this point was a very unpleasant behaviour while burning the bootloader onto the micro, where I consistently got errors like these:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -P/dev/cu.usbserial-AH01GO57 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xE2:m
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:01:35
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
Using Port : /dev/cu.usbserial-AH01GO57
Using Programmer : stk500v1
Overriding Baud Rate : 19200
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x02
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10
Hardware Version: -1449398444
Firmware Version: -1073745528.444305
Topcard : STK502
Vtarget : 1.8 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us
avrdude: stk500_initialize(): (b) protocol error, expect=0x10, resp=0x01
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10
avrdude done. Thank you.
Error while burning bootloader.
While I never observed this misbehaviour when using the Arduino Micro, the Duemilanove constantly refused to burn to the chip.
Unfortunately, there seems to be gazillions of people observing the very same error, but afar from “check the cabling”, “check blahblah”, there seems to be not much help on this matter. On the other hand, there are obsiously people, who never encountered this issue. Or it is device or implementation dependenant respectively.
Only after hours of searching and reading, I found some people mentioning similar issues with serial programmers and how they got away with disabling serial signals. That very moment I remembered reading about Arduino doing Reset on Serial many years ago.
I don’t know, why this is not mentioned already in of the Arduino as ISP context (it should, I thinkg). At least there is official documentatio on how to disable reset on serial.
There’s multiple solutions, from soldering, to just sticking restistors. Since I didn’t want to tamper with the Arduino PCB, I’ve just added a removable resistor between RST and 5V. Since I didn’t have a 120 ohm resistor at hands, I had to combine a 100 and a 20 ohm resistor to achieve the same effect.
Weehee! With the resistor in place, it finally works the way it should.
Страница 1 из 3
-
Пытался загрузить bootloader в «пустой» Mega328 камушек по инструкции с arduino.cc с помощью UNO. Убились оба. Осталась у меня единственная рабочая ардуинка и один 328 камушек. Спасите, что-ли…
-
Все сделал по инструкции и вот что получил:
Arduino: 1.5.6-r2 (Windows 7), Board: «Arduino Uno»
avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
processing.app.debug.RunnerExceptionat cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:305)
at processing.app.Editor$47.run(Editor.java:2569)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: processing.app.debug.RunnerException: Проблема загрузки на плату. Для достижения дзен, курить http://www.arduino.cc/en/Guide/Troubleshooting#upload .
at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:111)
at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:298)
… 15 more
-
Это свежая бета IDE, я теперь вообще всего боюсь.
-
может стоит взять нормальный релиз, а не бету предназначенную для DUE
может конечно не из за этого ошибка, но если у вас уна, то бету лучше не пользовать
Последнее редактирование: 24 мар 2014
-
Говорят, для УНО 1.0.х нужно использовать.
Где-то тут на форуме была речь об этом. -
Вы правы, я много где накосячил и эту бету поставил потому, что со стабильным релизом (1.0.5 вроде) тоже не получилось «забутить» камушек. Коллеги, пожалуйста, распишите алгоритм действий записи bootloader`a в Mega328 подробно, как для чайника или, что лучше, для идиота. Заранее благодарен.
-
так расписано в сети подробней некуда.
в уну заливается ArduinoSPI
из уны берется MOSI, MISO и SCK и втыкается в атмегу на её SPI (17,18,19 ноги), питание и общий в 7,8, ресет (1 нога) атмеги втыкаем в 10 выход уны.
ну и про кварц на 16 мгц и два конденсатора на 10-22 пики не забываем..в блокноте выбираем программатор ArduinoSPI, выбераем плату, в которой используется 328 камень, компорт и заливаем загрузчик, всё
-
Читайте НАШ форумЯ уже 100 раз писал во всех темах что и как например в соседней теме http://tinyurl.com/ooq894t
-
acos
Официальный гик
АдминистраторКстати, про кварц.
Все хочу попробовать прошить сначала bootloader а затем фьюзы, напрямую батничком из дудки. При таком варианте вроде и кварц не нужен. После прошивке фьюзов может и ругнётся в конце, при проверке, но в итоге должно заработать. Или я не прав? -
Только без кварца он после прошивки фьюзов перестанет отзываться. А так да, можно.
-
acos
Официальный гик
АдминистраторВот мой батничек для записи бутлоадера с Arduino ISP. Сначала шьется бут, потом фьюзы. Кто будет пользоваться — обратите внимание на пути — у меня x86. Ну и ком порт естественно свой выставлять нужно.
По сути — то же самое, что делает Arduino IDE при записи бута, за исключением того, что фьюзы пишутся в конце, поэтому кварц при записи не нужен.
Попробовал залить на atmega328p без кварца — всё залилось, завелось на ардуине и даже не ругнулось почему-тоВложения:
Последнее редактирование: 26 мар 2014
-
Я так понял фьюзы отдельно прошивать не надо?Всё в НЕХ файле?
-
acos
Официальный гик
АдминистраторНет, фьюзы пишутся отдельно.
Сам батник выглядит так:set comport=COM7«C:Program Files (x86)Arduino/hardware/tools/avr/bin/avrdude» -C «C:Program Files (x86)Arduino/hardware/tools/avr/etc/avrdude.conf» -p atmega328p -c avrisp -P %comport% -b 19200 -Uflash:w:optiboot_atmega328.hex:i -Ulock:w:0x0F:m
«C:Program Files (x86)Arduino/hardware/tools/avr/bin/avrdude» -C «C:Program Files (x86)Arduino/hardware/tools/avr/etc/avrdude.conf» -p atmega328p -c avrisp -P %comport% -b 19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m
ping -n 105 127.0.0.1 > NUL
set comport=COM7 — это просто переменная, куда мы пишем свой номер COM-порта
Вторая строчка, вот с этим «Uflash:wptiboot_atmega328.hex» — шьёт сам hex, это отдельная операция. После неё дудка завершает работу, и запускается второй раз в третьей строчке
Третья строчка — прошивка фьюзов. «-Uefuse:w:0x05:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m» — это они и есть. Всё остальное — просто пути до дудки и её настройки. Про них можно тут почитать http://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-DescriptionsArduino IDE при прожиге бутлоадера сначала шьёт фьюзы, затем хекс. (Дальше просто домыслы — лень досконально проверять, но как-то так всё и происходит) После прошивки фьюзов дудка завершает работу, отпускает reset и контроллер ребутится, запускаясь с новыми настройками — тактирование от внешнего кварца и всё такое. Если кварца нет, то мы приплыли — контроллер не запустится и ISP не будет работать, hex не прошить.
(Лирическое отступление) Контроллер с завода идёт с тактированием от внутреннего генератора на 8 мГц с предделителем на 8, итого 1 мГц. Если сначала прошить hex, то всё ок — он прошьётся и всё хорошо. Фьюзы будут старые и второй раз для прошивки фьюзов он нормально запустится и ISP будет работать. После прошивки фьюзов (если всё ок) контроллер можно смело втыкать в плату Arduino Uno (где кварц уже есть)ну и пинг тут только для того, чтобы было время потупить в вывод сообщений avrdude, иначе терминал закроется сразу, и толком не узнать — успех или нет
Последнее редактирование: 26 мар 2014
-
А! Ну я так и делал только прошивал программатором Громова сначала НЕХ потом фьюзы на Ардуинке уже с кварцем. С дудкой както сложно батники всякие.Я пишу нижний фьюз и верхний.
-
acos
Официальный гик
АдминистраторА опыт есть? нормально в этом случае скетчи заливаются? UART работает? А то на UNO например, IDE заливает постоянно на 115200 бод — не уверен, что внутренний генератор такую скорость осилит.
И да, чтоб 8 мГц получить, всё равно нужно фьюзы перешивать — как минимум CKDIV8 сбросить. -
Пробовал всё работает USART только иногда глючит вместо символов кракозяблы вылезают даже на 9600.Это от плохой термостабильности первый раз с таким столкнулся когда програмный USART на Тини13 гонял.Но если проц руками не трогать не дышать на него то работать будет.И конечно CKDIV8 сбросить.А логика нормально работает всё пищит мигает включается выключается.Но это если так-побаловаться.У меня просто кварца на 16 мГц сразу не нашлось вот и пришлось мутить теперь с кварцем всё как надо.
Последнее редактирование: 28 мар 2014
-
Да, спасибо, так и сделал, но, видать, с перепугу выбрал не UNO а NANO и теперь все мои камушки, как на ардуинах, так и без них, называются NANO. В каком-то смысле мне пофиг, но — непорядок. Возможно ли забутить их ещё раз, чтобы они все стали UNO?
Страница 1 из 3
Hello All,
I am trying to burn a bootloader via an arduino TQFP32 which already as the Arduino ISP loaded into it. Wiring are as follows
Master SLAVE
MOSI -> MOSI
MISO -> MISO
SCK -> SCK
RESET -> To reset via 0.1uf cap (RST pin in schematic)
VCC -> VCC
GND -> GND
here is the verbose error log
Arduino: 1.8.5 (Windows 10), Board: «Arduino/Genuino Uno»
C:UsersgeorgetAppDataLocalArduino15packagesarduinotoolsavrdude6.3.0-arduino9/bin/avrdude -CC:UsersgeorgetAppDataLocalArduino15packagesarduinotoolsavrdude6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM12 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is «C:UsersgeorgetAppDataLocalArduino15packagesarduinotoolsavrdude6.3.0-arduino9/etc/avrdude.conf»
Using Port : COM12
Using Programmer : stk500v1
Overriding Baud Rate : 19200
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
———— —- —— —— —- —— —— —- —— —— —— ———
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x02
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x04
Hardware Version: 4728160
Firmware Version: 0.4598883
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_getparm(): (a) protocol error, expect=Error while burning bootloader.
0x14, resp=0x10
Vtarget : 420030.5 V
Varef : 199919366.4 V
Oscillator : 3.686 MHz
SCK period : 0.1 us
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x00
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00
avrdude done. Thank you.