Конструктор Bootloader`а для Arduino

MaksMS
Offline
Зарегистрирован: 11.03.2013

Иногда необходимо использовать загрузчик с нестандартными параметрами,например использовать м/к на другой частоте для экономии энергии или использовать внутренний генератор(освободив пару выводов под свои нужды),но для каждого варианта необходимо компилировать новый загрузчик,да ещё и не забыть про установку фьюзов.Новичкам такое не под силу..

Был написан конструктор,основанный на  optiboot ,который занимает 512 байт и работает на большинстве м/к Atmega:

http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik

Конструктор имеет свой калькулятор фьзюзов с учетом настройки параметров задающего генератора или кварца.

Так же создается блок для вставки в файл board.txt в Arduino IDE.

Поддерживаемые м/к: Atmega328P, Atmega168 Atmega88 , Atmega8, Atmega16 ,Atmega32.Можно добавить и другие м/к.

Возможно добавить ещё опции загрузчика: выбор других выводов для софтового UARTa ,выбор другого вывода для индикационного светодиода и другие.

Принимаются предложения и критика проекта.

Так как проект работает в тестовом режиме - рекомендую перепроверять фьюзы,выданные конструктором в калькуляторе фьзов.Если Вы проверить сами не знаете как,то пишите параметры в этой теме - перепроверим.

 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Цитата:

Пожалуйста, прежде пройдите авторизацию

MaksMS
Offline
Зарегистрирован: 11.03.2013

Упс , забыл включить для всех,исправил :)

Ceasar
Offline
Зарегистрирован: 02.02.2014

Спасибо за конструктор. Но похоже имеет смысл добавить натройку baudrate, к примеру atmega32a на 8 МГц дает ошибку для аппаратного порта 7,8%, а максимальная стандартная скорость для данной частоты с приемлемой ошибкой 38400.

Учитывает ли это настройка программного UART?

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

Какую команду нужно послать чтобы получить ответ загрузчика?

Какие настройки драйвера порта кроме скорости (8, нет четности, стоп 1, контроль потока отсутствует)?

Еще раз спасибо.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Настройки скорости зависят от установленной частоты , это прописано в самом загрузчике - можно посмотреть исходники на оф сайте загрузчика.

Там же в исходниках можно найти ответы на Ваши вопросы..

В планах собираюсь сделать возможность настройки скорости порта вручную,но пока занят другими проектами..

Ceasar
Offline
Зарегистрирован: 02.02.2014

Спасибо за быстрый ответ, но для полного понимания вопроса поясню.

Конструктор сам выдал на 8 МГц 115200. Эта скорость приводит к рассогласованию в 7,8% потому, что 8000000 не кратно 115200.

В степенях 2 ближайший 64 делитель, а по факту 69,4. Асинхронный режим предполагает, что премник и передачтки тактирутся каждый самостоятельно, а на деле на большой пакет возникает набегающая ошибка.

Т.е. это не мой каприз, а генерируется не рабочий загрузчик.

На счет времени понятно - буду сам компилить.

 

renoshnik
Онлайн
Зарегистрирован: 11.04.2013

Добрый день...

на все поппытки сконструировать получаю ответ "Нет м/к в списке" ....

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

у меня тоже самое нет мк

MaksMS
Offline
Зарегистрирован: 11.03.2013

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

renoshnik
Онлайн
Зарегистрирован: 11.04.2013

MaksMS пишет:

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

 

ОК... спасибо, жду с нетерпением....

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

можно поподробнее, интересная тема

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Несколько замечаний:

1. Текст полезно прогнать через спеллчекер, или вручную расставить пробелы после запятых и точек, а то читать тяжело.

Цитата:

Но используя специальный загрузчик,зашитый в нижнюю область памяти микроконтроллера  можно прошивать через

Частица "но" - явно лишняя, а вот существительного "скетч" - не хватает.

Цитата:
правельные фьюзы

Без комментариев... Там весь сайт такой... :(  "для отчета пропущенных посетителей" - перлы в каждой строке.

2. Непонятна опция "Отключить светодиод". Всю страницу обшарил - ничего про нее не нашел...

3. Все-таки, не очень понятна мотивация создания собственного, фактически, уникального загрузчика... А потом, при наличии трез-четырех плат с разными загрузчиками, глюки - как разгребать? Где-то версию этого загрузчика видно, или писать карандашом на плате?

MaksMS
Offline
Зарегистрирован: 11.03.2013

1. Да,изначально не прирживался многих правил, но сейчас стараюсь более грамотно писать :) ошибки конечно же встречаются )) не ошибается тот,кто не ничего не делает(с).

"для отчета пропущенных посетителей" -просто юморной оттенок пытался придать ..

2. светодиод имеется ввиду при запуске или ресете платы. обычно он на 13 выводе.

3. загрузчик не собственный ,а optiboot -просто в удобной обертке. Конструктор служит для бысторого создания загрузчика на определенный м/к и на необходимую частоту. В будущем и другие настройки могут быть добавлены.

MaksMS
Offline
Зарегистрирован: 11.03.2013

jeka_tm пишет:

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

можно поподробнее, интересная тема

это не выведено в конструкторе ,но это можно реализовать (в планах). Можно переделать уарт на другие пины внутри одного порта при программном режиме порта. По умолчанию сейчас он на тех же пинах что и аппаратный.

Конструктор снова работает ! 

Клапауций
Offline
Зарегистрирован: 10.02.2013

MaksMS пишет:

1. Да,изначально не прирживался многих правил, но сейчас стараюсь более грамотно писать :) ошибки конечно же встречаются )) не ошибается тот,кто не ничего не делает(с).

вы издеваетесь?

поставьте проверку орфографии хоть куда-то - более лучше грамотно писать!

MaksMS
Offline
Зарегистрирован: 11.03.2013

Нет не издеваюсь, просто не посмотрел чего написал :( ... Много отвлекающих факторов дома и пишу тут набегами

MaksMS
Offline
Зарегистрирован: 11.03.2013

Вот я тестировал на аттини:

Если ,например,Attiny85 при работе 8мгц имеет потребление около 7 мА,а при работе на 1мгц(используя делитель на 8) 2 мА..

Это из темы беспроводного датчика . Думаю на атмегах примерно такие же цифры. Если м/к в основном в спящем режиме находится,то не особо больше будет жрать..

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

>  .....Но используя специальный загрузчик,зашитый в нижнюю область памяти микроконтроллера....

А я всегда считал что загрузчик находится в верхней части памяти........

Для Мега328  по адресам    3F00 (256 ворд) 3E00 (512 ворд) 3C00 (1024 ворд) 3800 (2048 ворд)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну наверно что подразумевать под верхом и низом. для меня все таки низ. так как в программах прошивальщиках все такие начальные сверху

да и в даташите 

для меги8 и 328

есть предложение автору. может добавить настройку bodlevel

а то ведь смысл порога для меги 8 например 1,8В? можно было бы конечно и самому через калькулятор фьюзов. но если вы добавили функционал расчета фьюзов, выбор bodlevel тоже можно было бы внести

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

MaksMS пишет:

2. светодиод имеется ввиду при запуске или ресете платы. обычно он на 13 выводе.

Жалко, я подумал - тот, который по питанию научились отключать. :( Про молоток - знаю, хотелось программно...

MaksMS пишет:

3. загрузчик не собственный ,а optiboot -просто в удобной обертке. Конструктор служит для бысторого создания загрузчика на определенный м/к и на необходимую частоту. В будущем и другие настройки могут быть добавлены.

Ну так и напишите сравнительную характеристику: т.е., каков вообще смысл в обновлении загрузчика? Добавится памяти под программы, работать по UART будет быстрее, снижение тактовой экономит энергию (сколько в граммах?)... Про проблемы WDT можно упомянуть, ну и "в свете этого, чтобы два раза не вставать... - имеет смысл обновить загрузчик".

MaksMS
Offline
Зарегистрирован: 11.03.2013

Конструктор не для обновления ,а больше для установки загрузчика на новые м/к ,в том числе м/к ,которые ардуино изначально не поддерживает.

Проблема  с  WDT там решена,хотя и не проверял - все же там стоит последний вариат optiboot ,где этой проблемы нет.

Данный конструктор сразу решает все вопросы у новичков,которым всего-то надо выбрать необходимые опции и получить загрузчик на нужный микроконтроллер. Многим будет в помощь ,что конструктор создает секцию для файла boarts.txt с указанием фьюзов.

Про снижение частоты - тут больше про то,что кому-то интересен вариант без использования внешнего кварца и тут соотсвественно необходимо корректировать скорость аппаратного UART ,хотя (насколько я помню) например что при 16 ,что при 8 мгц прошивки и скорость UART получается одинаковы. Для программного UART уже это не прокатит.

 

MaksMS
Offline
Зарегистрирован: 11.03.2013

Попробовал добавить выбор выводов м/к при использовании программного UART . Интересующиеся могут протестировать..

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

........................   конденсаторов на 22nf ..........................

Или  22 pF ( англ) или 22 пФ (рус)

mazaysky
Offline
Зарегистрирован: 19.05.2014

Попытался создать загрузчик с кварцем на 4 MHz, (такие в мышках стоят, сразу с кондерами на 22 pF в корпусе, очень удобно), для Атмеги8, но пишет "Не верные параметры !!"

Впрочем такое же пишет и при любых других частотах. Что я делаю не так?

Заранее спасибо !

MaksMS
Offline
Зарегистрирован: 11.03.2013

Все нормально создается. Попробуйте другой браузер

mazaysky
Offline
Зарегистрирован: 19.05.2014

Попробовал... То-же самое :(

Грешу на канал связи (gprs modem). Попробую позже.

Спасибо

 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Ухты, получается мегу8-ю можно от внутренней RC цепочки завести на частоте в 1 мГц?

Я тут полистал датаЩит 8а, вот график энергопотребления на частотах до 1 мГц:

Должен сказать весьма неплохо, чуть больше чем тинька13 но тут портов побольше, да и памяти...

Нужно будет поиграться...

А при такой частоте я смогу выводить информацию на LCD дисплей и в юарт? Не возникнут проблемы с скоростью?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

лучше тогда 8мгц

жк дисплей, uart, nrf24l01 проверено. 1 мгц не тестил

MaksMS
Offline
Зарегистрирован: 11.03.2013

Вроде как скорость уарт зависит от частоты процессора,так что на 1мгц она будет маловата

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

А какая будет? 9600 или 4800 или 1200 бод? Просто очень люблю энергоэффективные системы, если сеть возможность понизить потребление, так почему бы и нет? Производительности более чем должно быть даже при частоте в 1 мГц.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Например загрузчик льет прошивку при 1мгц на скорости 9600 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

та мне даже скорость юарта в 4800 будет норм.... даже 1200 в целом устроит.

Эх... как же леньки доставать всё барахло и шить МК.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Вот бы Вы ещё сделали такой бутлоадер чтобы можно было обходиться без переходника юсб - ттл а напрямую шиться по юсб то цены б Вам не было... и всё это чтобы поддерживало ардуино ИДЕ, как прошивку так и программирование.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Легко 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 кб.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Как-то на досуге прочту.
Только один вопрос, а можно будет зашить в мегу 8 загрузчик при помощи ардуинки, тоесть arduino as isp?

MaksMS
Offline
Зарегистрирован: 11.03.2013

Конечно , в статье все это описано

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

А для асплоадера можно поставить кварц не на 12 мГц а на 16? Мне лениво переться на рынок и там искать, помню искал кварц на 16 мГц по всему городу, так и не нашёл. Потом закупился ими в инет магазине.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Вроде нельзя ,  там завязано на частоту м/к , если  и есть вероятность ,то надо перекомпилировать загрузчик.

Nesha
Offline
Зарегистрирован: 22.06.2014

Макс проэкт нужный, я прокурил не один форум и не где не нашл ответы на свои вопросы, точней на один, в крации есть несколько плат от какссовых аппаратов компэй с атмегой 1280 и кварцем 147456, попробывал сделать ардуино мега все получилось с перепайкой кварца на 160000, но хотелосьбы не заморачеваться и оставить существующий кварц, я долго пытался разобраться с фюзами так нечего и не получилось, если тебя не затруднит напиши как это сделать.

MaksMS
Offline
Зарегистрирован: 11.03.2013

147456 ? именно столько ? странная частота ,а может это и не частота..

Nesha
Offline
Зарегистрирован: 22.06.2014
Сорри 14745 kHz. их пока 3 но сейчас платежные терминалы переходят под банк меньше заморочек с кассовыми аппаратами не надо каждый месяц ТО за 500р, каждый год ЭКЛЗ за 4000р менять и с налоговой нет проблем, поэтому снимают регистраторы, некоторые пытаются продать, мне пока дастались даром еще штук 15-40 лежат ждут продадут их или непродадут, правда за 10 месяцев еще не одной не продали спроса нет, скорей всего достануться за чисто символическую сумму.
 
вот ссылка на инструкцию по эксплуатации и схему

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

MaksMS
Offline
Зарегистрирован: 11.03.2013

Ну значит добавляем в ардуино иде ардуину 1280 с кварцем 14745000 и программируем.. Конструктор данный не подойдет для этого м/к .

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Сделайте пожалуйста загрузчик для меги 8-й, чтобы юарт работал на 3.3 В. Я где-то нарыл загрузчик под 328р, пишет что на частоту 8 мГц, тактирование от RC цепочки, что при 3 В питания, что при 5.5 - юарт работает адекватно, а вот на меге8 на тех же 8 мГц - нет, при 3.3 В питалова юарт пишет всякую каку.

Nesha
Offline
Зарегистрирован: 22.06.2014

Так я уже пробовал бутлодер загружаеться но порт ввода не работает пин 2,3 мк

сегодня обещяли еще одну попробую там сночала прочитать фюзы

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Завёл мегу8-ю на частоте 1 мГц, на 3.3 В юарт работает нормально. 
Спасибо Вам за труды. Ещё с USBasp"ом поиграюсь, стабилитроны нужно купить, там ведь они по любому нужны, не так ли?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

если заработает на 8мгц внутреннего генератора и 3.3В питалова отпишитесь. тоже необходимо

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Вот так работает Serial.begin(4800); при Serial.begin(9600); вот что:

Правда мега шиться по юарту при питалову 3.3 напрочь отказывалась.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Можно глупый вопрос? А этот USBaspLoader создаёт в винде виртуальный СОМ порт?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

жаль. у меня одно время в одной схеме прошивалось при 3.3В. а потом перестала. хз почему. так и не решил эту проблему

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

вроде как да. но я не проверял

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Смотрю на схему:

И думаю, блииин, задели один порт с аппаратный ШИМом, а я полагал такие надежды на 3-х канальный ШИМ.