Загрузчик Pro Mini через Arduino ISP
- Войдите на сайт для отправки комментариев
Чт, 10/12/2015 - 09:18
Доброго времени суток, уважаемые.
Решил залить альтернативный загрузчик в Pro mini 3.3в чтобы работала на 1МГц и 1.8в.
Столкнулся с ошибкой:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x03
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x03
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x03
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x03
Ошибка при записи загрузчика.
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x03
Подскажите куда копать.
Если уже было, буду благодарен за ссылку. Сам не нашел на форуме.
VAFER, в комплекте с загрузчиком обычно дают конфиг для boards.txt . Cудя по вопросу самостоятельно вы его не напишите )
вот, чем-то схожая тема, только читайте внимательно.
VAFER, в комплекте с загрузчиком обычно дают конфиг для boards.txt . Cудя по вопросу самостоятельно вы его не напишите )
Конфиг я сделал. И мой старенький freeduino превратил в программатор :-)
Но вот что-то с Pro mini не работает.
С другими версиями всегда все работало.
Стаж уже более 5 лет :-)
Мб Pro mini 3.3в имеет какую-то особенность?!
Вставка в конфиг:
VAFER, для начала покажите свой конфиг. Стаж обычно не имеет никакого значения, есть товарищи, годами занимаются, и все равно не понимают бинарных операций, синтаксиса элементарных команд типа for, do-while, итд .
VAFER, для начала покажите свой конфиг.
Выложил чуть выше :-)
VAFER, мне не нравится этот конфиг. В нём нехватает нескольких строк, есть лишняя строка (максимум дата сайз), максимум сайз указан 30720, явно под 2х килобайтный загрузчик. Но фузами назначен загрузчик на 1 килобайт. Бред какой-то, а не конфиг.
Мб проблема в напряжениях?
Freeduino (программатор) имеет 5в логику на портах, а Pro mini 3.3в.
Где можно посмотреть расшифровку ошибки?
Что значит resp=0x66 и resp=0x03 ?
VAFER, мне не нравится этот конфиг. В нём нехватает нескольких строк, есть лишняя строка (максимум дата сайз), максимум сайз указан 30720, явно под 2х килобайтный загрузчик. Но фузами назначен загрузчик на 1 килобайт. Бред какой-то, а не конфиг.
Ок, чтобы Вы посоветовали ?
Фьюзы - это моя "слабая" сторона :-)
VAFER, напряжения не имеют отношения к проблеме. Могу посоветовать найти другой бутлоадер и конфиг к нему.
Я пробовал грузить родной бутлоадер от pro mini 8мгц - ошибка таже.
Я пробовал грузить родной бутлоадер от pro mini 8мгц - ошибка таже.
уточните марку контроллера на борту платы
VAFER, и как вы подключили плату? надеюсь подали +5 вольт на Vcc ?
уточните марку контроллера на борту платы
MEGA328P
VAFER, и как вы подключили плату? надеюсь подали +5 вольт на Vcc ?
Нет, подал 3.3в с "программатора".
Попробовал подать 5в - ничего не изменилось.
Может быть дело в скорости обмена?!
Я пробовал 7200 (видел такую рекомендацию на одном из форумов), 9600, 19200.
Результат одинаковый.
Эту скорость я прописывал в скетч "программатора".
Контролировал в настройках COM-порта в диспетчере устройств.
VAFER, сначала добейтесь того, что будет прошиваться родной бутлоадер. Потом уже можно с "тёмными" лошадками заняться. Напряжение программатора и программируемой микросхемы должно быть одинаковым. Скоростью играться нельзя, она предопределена в бутлоадере, и с другой просто не станет работать.
Добился нормальной прошивки штатного загрузчика.
скорость 19200
питание 5в
При попытке залить тот же самый загрузчик с другими фьюзами получаем:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
VAFER, гугл и яндекс с удовольствием вам расскажут, даже если хорошо попросить, то на русском языке :) И поищите другой бутлоадер, например тут можно попробовать сконструировать) Хотя недавно был случай, этот же конструктор создал нерабочий бутлоадер..
Нашел калькулятор фьюзов: http://www.engbedded.com/fusecalc/
Попробовал сгенерировать, получил:
Но при прошивке вылазит ошибка:
VAFER, гугл и яндекс с удовольствием вам расскажут, даже если хорошо попросить, то на русском языке :) И поищите другой бутлоадер, например тут можно попробовать сконструировать) Хотя недавно был случай, этот же конструктор создал нерабочий бутлоадер..
Спасибо за ссылку, сгенерированный загрузчик прошился после небольшой правки конфига.
Буду разбираться дальше.
теперь скетч не заливается, пишет что неизвестная система/платформа :-(
Возможно виновата IDE версии 1.6.6
VAFER, виноват конфиг
Конфиг:
Ошибка:
VAFER, конфиг для старых версий. Сравните с новыми для mega328, исправьте то, что не должно быть.
VAFER, конфиг для старых версий. Сравните с новыми для mega328, исправьте то, что не должно быть.
Именно так и сделал этот конфиг.
Не понимаю, в чем загвоздка :-(
Обнаружил интересную фишку:
если сразу после выдачи ошибки на запись загрузчика опять попробовать загрузить - все загружается.
Загрузил таким макаром штатный загрузчик для Pro mini 8мгц со слегка измененными фьюзами:
Загрузчик на основе optiboot удалось зашить таким же способом.
В общем, я завис на "unknown board".
Не могу понять, откуда он берет название a328p_1MHz ???
Не могу понять, откуда он берет название a328p_1MHz ???
optiboot_atmega328.hex - ему сказано грузить это
optiboot_atmega328.hex - ему сказано грузить это
Т.е. это название внутри прошивки где-то ?
Мб это какой-то глюк IDE 1.6.6 ?!
стоп! еще раз перечитал вопрос и запутался...
" откуда он берет название a328p_1MHz ??? " что за название и где это написано?
optiboot_atmega328.hex - это файл загрузчика которому сказано грузиться, попробуйте найти поиском
у меня такой путь : ...ardu\prog\hardware\arduino\bootloaders\optiboot
При компиляции скетча пишет:
При компиляции скетча пишет:
не представляю почему компилятор вылетает, но " Плата a328p_1MHz " это название не более (пост 28), а hex как вы только что нашли будет грузится этот, а не на 1 МГц - как то так...
не представляю почему компилятор вылетает, но " Плата a328p_1MHz " это название не более (пост 28), а hex как вы только что нашли будет грузится этот, а не на 1 МГц - как то так...
Всё, я понял откуда название :-)
Просто взгляд уже "замылился".
1Мгц получается на том же загрузчике что и 8мгц, путем установки соответствующих фьюзов.
Divide clock by 8 internally; [CKDIV8=1]
Попробую более древнюю версию IDE.
VAFER, что вы всё мудрите, на какие то забугорные форумы ходите? Зачем всё это? Зайдите в ваш родной boards.txt найдите секцию pro mini У неё есть общая шапка, и индивидуальные блоки конфигурации для разных моделей. Скопируйте такой блок, измените имя, фузы, сайзы, итп на свои, и всё! дел на 5 минут.
хмм... а зачем на PRO MINI при заливке по ISP нужен загрузчик вообще ?
ставите фьюзы через Khazama, заливаете кнопкой Ctrl+Shift+U (загрузить через программатор).
и все работает.
а зачем на PRO MINI при заливке по ISP нужен загрузчик вообще ?
не понял вопроса :-)
зачем нужен другой bootloader?
Чтобы контроллер стартовал быстрее (optiboot) и работал на частоте 1мгц (питание предполагется от батареек).
VAFER, что вы всё мудрите, на какие то забугорные форумы ходите? Зачем всё это? Зайдите в ваш родной boards.txt найдите секцию pro mini У неё есть общая шапка, и индивидуальные блоки конфигурации для разных моделей. Скопируйте такой блок, измените имя, фузы, сайзы, итп на свои, и всё! дел на 5 минут.
Уже сделал так :-)
Но теперь компиляция проходит, а загрузка подвисает...
ну и судя по всему ничего не загружается
Попробую более старую IDE
Я спросил для чего Вам вообще нужен бутлоадер.
Поставил IDE 1.0.6
В конце процесса загрузки пишет:
not in sync: resp=0x00
И в итоге программа в контроллере остается неизменной.
Судя по всему проблема не в среде программирования.