Конструктор Bootloader`а для Arduino
- Войдите на сайт для отправки комментариев
Иногда необходимо использовать загрузчик с нестандартными параметрами,например использовать м/к на другой частоте для экономии энергии или использовать внутренний генератор(освободив пару выводов под свои нужды),но для каждого варианта необходимо компилировать новый загрузчик,да ещё и не забыть про установку фьюзов.Новичкам такое не под силу..
Был написан конструктор,основанный на optiboot ,который занимает 512 байт и работает на большинстве м/к Atmega:
http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik
Конструктор имеет свой калькулятор фьзюзов с учетом настройки параметров задающего генератора или кварца.
Так же создается блок для вставки в файл board.txt в Arduino IDE.
Поддерживаемые м/к: Atmega328P, Atmega168 Atmega88 , Atmega8, Atmega16 ,Atmega32.Можно добавить и другие м/к.
Возможно добавить ещё опции загрузчика: выбор других выводов для софтового UARTa ,выбор другого вывода для индикационного светодиода и другие.
Принимаются предложения и критика проекта.
Так как проект работает в тестовом режиме - рекомендую перепроверять фьюзы,выданные конструктором в калькуляторе фьзов.Если Вы проверить сами не знаете как,то пишите параметры в этой теме - перепроверим.
Пожалуйста, прежде пройдите авторизацию
Упс , забыл включить для всех,исправил :)
Спасибо за конструктор. Но похоже имеет смысл добавить натройку baudrate, к примеру atmega32a на 8 МГц дает ошибку для аппаратного порта 7,8%, а максимальная стандартная скорость для данной частоты с приемлемой ошибкой 38400.
Учитывает ли это настройка программного UART?
Еще было бы не плохо написать как протестировать, что загрузчик запустился к примеру через обычный термирал.
Какую команду нужно послать чтобы получить ответ загрузчика?
Какие настройки драйвера порта кроме скорости (8, нет четности, стоп 1, контроль потока отсутствует)?
Еще раз спасибо.
Настройки скорости зависят от установленной частоты , это прописано в самом загрузчике - можно посмотреть исходники на оф сайте загрузчика.
Там же в исходниках можно найти ответы на Ваши вопросы..
В планах собираюсь сделать возможность настройки скорости порта вручную,но пока занят другими проектами..
Спасибо за быстрый ответ, но для полного понимания вопроса поясню.
Конструктор сам выдал на 8 МГц 115200. Эта скорость приводит к рассогласованию в 7,8% потому, что 8000000 не кратно 115200.
В степенях 2 ближайший 64 делитель, а по факту 69,4. Асинхронный режим предполагает, что премник и передачтки тактирутся каждый самостоятельно, а на деле на большой пакет возникает набегающая ошибка.
Т.е. это не мой каприз, а генерируется не рабочий загрузчик.
На счет времени понятно - буду сам компилить.
Добрый день...
на все поппытки сконструировать получаю ответ "Нет м/к в списке" ....
у меня тоже самое нет мк
Да ,косяк , таблица в базе затерлась при переезде на новый ноут.. В ближайшее время поправлю
Да ,косяк , таблица в базе затерлась при переезде на новый ноут.. В ближайшее время поправлю
ОК... спасибо, жду с нетерпением....
у меня лично вопрос. если в бутлоадере можно сразу программынй uart. на каких пинах он будет. на какой скорости будет работать.на сайте написано можно пины назначать, но не понял если честно где это делать
можно поподробнее, интересная тема
Несколько замечаний:
1. Текст полезно прогнать через спеллчекер, или вручную расставить пробелы после запятых и точек, а то читать тяжело.
Но используя специальный загрузчик,зашитый в нижнюю область памяти микроконтроллера можно прошивать через
Частица "но" - явно лишняя, а вот существительного "скетч" - не хватает.
Без комментариев... Там весь сайт такой... :( "для отчета пропущенных посетителей" - перлы в каждой строке.
2. Непонятна опция "Отключить светодиод". Всю страницу обшарил - ничего про нее не нашел...
3. Все-таки, не очень понятна мотивация создания собственного, фактически, уникального загрузчика... А потом, при наличии трез-четырех плат с разными загрузчиками, глюки - как разгребать? Где-то версию этого загрузчика видно, или писать карандашом на плате?
1. Да,изначально не прирживался многих правил, но сейчас стараюсь более грамотно писать :) ошибки конечно же встречаются )) не ошибается тот,кто не ничего не делает(с).
"для отчета пропущенных посетителей" -просто юморной оттенок пытался придать ..
2. светодиод имеется ввиду при запуске или ресете платы. обычно он на 13 выводе.
3. загрузчик не собственный ,а optiboot -просто в удобной обертке. Конструктор служит для бысторого создания загрузчика на определенный м/к и на необходимую частоту. В будущем и другие настройки могут быть добавлены.
у меня лично вопрос. если в бутлоадере можно сразу программынй uart. на каких пинах он будет. на какой скорости будет работать.на сайте написано можно пины назначать, но не понял если честно где это делать
можно поподробнее, интересная тема
это не выведено в конструкторе ,но это можно реализовать (в планах). Можно переделать уарт на другие пины внутри одного порта при программном режиме порта. По умолчанию сейчас он на тех же пинах что и аппаратный.
Конструктор снова работает !
1. Да,изначально не прирживался многих правил, но сейчас стараюсь более грамотно писать :) ошибки конечно же встречаются )) не ошибается тот,кто не ничего не делает(с).
вы издеваетесь?
поставьте проверку орфографии хоть куда-то - более лучше грамотно писать!
Нет не издеваюсь, просто не посмотрел чего написал :( ... Много отвлекающих факторов дома и пишу тут набегами
Вот я тестировал на аттини:
Если ,например,Attiny85 при работе 8мгц имеет потребление около 7 мА,а при работе на 1мгц(используя делитель на 8) 2 мА..
Это из темы беспроводного датчика . Думаю на атмегах примерно такие же цифры. Если м/к в основном в спящем режиме находится,то не особо больше будет жрать..
> .....Но используя специальный загрузчик,зашитый в нижнюю область памяти микроконтроллера....
А я всегда считал что загрузчик находится в верхней части памяти........
Для Мега328 по адресам 3F00 (256 ворд) 3E00 (512 ворд) 3C00 (1024 ворд) 3800 (2048 ворд)
ну наверно что подразумевать под верхом и низом. для меня все таки низ. так как в программах прошивальщиках все такие начальные сверху
да и в даташите
для меги8 и 328
есть предложение автору. может добавить настройку bodlevel
а то ведь смысл порога для меги 8 например 1,8В? можно было бы конечно и самому через калькулятор фьюзов. но если вы добавили функционал расчета фьюзов, выбор bodlevel тоже можно было бы внести
2. светодиод имеется ввиду при запуске или ресете платы. обычно он на 13 выводе.
Жалко, я подумал - тот, который по питанию научились отключать. :( Про молоток - знаю, хотелось программно...
3. загрузчик не собственный ,а optiboot -просто в удобной обертке. Конструктор служит для бысторого создания загрузчика на определенный м/к и на необходимую частоту. В будущем и другие настройки могут быть добавлены.
Ну так и напишите сравнительную характеристику: т.е., каков вообще смысл в обновлении загрузчика? Добавится памяти под программы, работать по UART будет быстрее, снижение тактовой экономит энергию (сколько в граммах?)... Про проблемы WDT можно упомянуть, ну и "в свете этого, чтобы два раза не вставать... - имеет смысл обновить загрузчик".
Конструктор не для обновления ,а больше для установки загрузчика на новые м/к ,в том числе м/к ,которые ардуино изначально не поддерживает.
Проблема с WDT там решена,хотя и не проверял - все же там стоит последний вариат optiboot ,где этой проблемы нет.
Данный конструктор сразу решает все вопросы у новичков,которым всего-то надо выбрать необходимые опции и получить загрузчик на нужный микроконтроллер. Многим будет в помощь ,что конструктор создает секцию для файла boarts.txt с указанием фьюзов.
Про снижение частоты - тут больше про то,что кому-то интересен вариант без использования внешнего кварца и тут соотсвественно необходимо корректировать скорость аппаратного UART ,хотя (насколько я помню) например что при 16 ,что при 8 мгц прошивки и скорость UART получается одинаковы. Для программного UART уже это не прокатит.
Попробовал добавить выбор выводов м/к при использовании программного UART . Интересующиеся могут протестировать..
........................ конденсаторов на 22nf ..........................
Или 22 pF ( англ) или 22 пФ (рус)
Попытался создать загрузчик с кварцем на 4 MHz, (такие в мышках стоят, сразу с кондерами на 22 pF в корпусе, очень удобно), для Атмеги8, но пишет "Не верные параметры !!"
Впрочем такое же пишет и при любых других частотах. Что я делаю не так?
Заранее спасибо !
Все нормально создается. Попробуйте другой браузер
Попробовал... То-же самое :(
Грешу на канал связи (gprs modem). Попробую позже.
Спасибо
Ухты, получается мегу8-ю можно от внутренней RC цепочки завести на частоте в 1 мГц?
Я тут полистал датаЩит 8а, вот график энергопотребления на частотах до 1 мГц:
Должен сказать весьма неплохо, чуть больше чем тинька13 но тут портов побольше, да и памяти...
Нужно будет поиграться...
А при такой частоте я смогу выводить информацию на LCD дисплей и в юарт? Не возникнут проблемы с скоростью?
лучше тогда 8мгц
жк дисплей, uart, nrf24l01 проверено. 1 мгц не тестил
Вроде как скорость уарт зависит от частоты процессора,так что на 1мгц она будет маловата
А какая будет? 9600 или 4800 или 1200 бод? Просто очень люблю энергоэффективные системы, если сеть возможность понизить потребление, так почему бы и нет? Производительности более чем должно быть даже при частоте в 1 мГц.
Например загрузчик льет прошивку при 1мгц на скорости 9600
та мне даже скорость юарта в 4800 будет норм.... даже 1200 в целом устроит.
Эх... как же леньки доставать всё барахло и шить МК.
Вот бы Вы ещё сделали такой бутлоадер чтобы можно было обходиться без переходника юсб - ттл а напрямую шиться по юсб то цены б Вам не было... и всё это чтобы поддерживало ардуино ИДЕ, как прошивку так и программирование.
Легко http://homes-smart.ru/index.php/oborudovanie/uroki-i-primery/ustanovka-usbasploader-na-platu-usbasp
Используется проект http://www.obdev.at/products/vusb/usbasploader.html
Так же точно можно поставить такой бутлоадер на атмегу 328 и другие , но занимает 2 кб.
Как-то на досуге прочту.
Только один вопрос, а можно будет зашить в мегу 8 загрузчик при помощи ардуинки, тоесть arduino as isp?
Конечно , в статье все это описано
А для асплоадера можно поставить кварц не на 12 мГц а на 16? Мне лениво переться на рынок и там искать, помню искал кварц на 16 мГц по всему городу, так и не нашёл. Потом закупился ими в инет магазине.
Вроде нельзя , там завязано на частоту м/к , если и есть вероятность ,то надо перекомпилировать загрузчик.
Макс проэкт нужный, я прокурил не один форум и не где не нашл ответы на свои вопросы, точней на один, в крации есть несколько плат от какссовых аппаратов компэй с атмегой 1280 и кварцем 147456, попробывал сделать ардуино мега все получилось с перепайкой кварца на 160000, но хотелосьбы не заморачеваться и оставить существующий кварц, я долго пытался разобраться с фюзами так нечего и не получилось, если тебя не затруднит напиши как это сделать.
147456 ? именно столько ? странная частота ,а может это и не частота..
http://ps.comepay.ru/files/attachments/sitecontent/74_1312_%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F%20%D0%BF%D0%BE%20%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%BC%D1%83%20%D0%BE%D0%B1%D1%81%D0%BB%D1%83%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E%20%D0%B8%20%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82%D1%83.pdf
Ну значит добавляем в ардуино иде ардуину 1280 с кварцем 14745000 и программируем.. Конструктор данный не подойдет для этого м/к .
Сделайте пожалуйста загрузчик для меги 8-й, чтобы юарт работал на 3.3 В. Я где-то нарыл загрузчик под 328р, пишет что на частоту 8 мГц, тактирование от RC цепочки, что при 3 В питания, что при 5.5 - юарт работает адекватно, а вот на меге8 на тех же 8 мГц - нет, при 3.3 В питалова юарт пишет всякую каку.
Так я уже пробовал бутлодер загружаеться но порт ввода не работает пин 2,3 мк
сегодня обещяли еще одну попробую там сночала прочитать фюзы
Завёл мегу8-ю на частоте 1 мГц, на 3.3 В юарт работает нормально.
Спасибо Вам за труды. Ещё с USBasp"ом поиграюсь, стабилитроны нужно купить, там ведь они по любому нужны, не так ли?
если заработает на 8мгц внутреннего генератора и 3.3В питалова отпишитесь. тоже необходимо
Вот так работает Serial.begin(4800); при Serial.begin(9600); вот что:
Правда мега шиться по юарту при питалову 3.3 напрочь отказывалась.
Можно глупый вопрос? А этот USBaspLoader создаёт в винде виртуальный СОМ порт?
жаль. у меня одно время в одной схеме прошивалось при 3.3В. а потом перестала. хз почему. так и не решил эту проблему
вроде как да. но я не проверял
Смотрю на схему:
И думаю, блииин, задели один порт с аппаратный ШИМом, а я полагал такие надежды на 3-х канальный ШИМ.