Вчера наткнулся на разработку автора программатор USBasp, разработка AVRUSBBoot, заточена для того чтобы по USB атмега8 прошивала сама себя (после того как бутлоадер уже прошит), с кварцем в схеме 12 Мгц
Мне надо было тоже самое для меги16, причём на частоте 16 МГц.
Как оказалось, у автора разработка в версии от 2006 года, поэтому там было железно прописано под кварц 12 МГц, в общем приложил туда новые дрова из комплекта V-USB, теперь как минимум можно выбирать частоту кварца 12 MHz, 15 MHz, 16 MHz.
Процесс такой: прошиваем бутлоадер, фьюзы: BOOTRST,BOOTSZ0,BOOTSZ1 = 0, выключателем SB1 подаём 0 на ножку мк, тогда схема работает в режиме бутлоадера, запускаем программку, она прошивает по USB проводу вашу прошивку в мк, SB1 выключаем, пересоединяем USB и всё: работает уже ваша прошивка. Очень удобно, чтобы устройство было в собранном виде, а прогу можно будет менять, не подключая никаких программаторов и не вынимая сам мк из устройства.
Расскажи поподробней как использовать этот бутлодер и как корректировать программу под этот бутлодер.
Прицепил сюда.
Так зря и прицепил, я как раз собирался в свободную минуту ридми написать и внутрь архива запихать. В принципе если с инглишем без проблем, почитай пока ридми базовой разработки: http://www.fischl.de/avrusbboot/
Зарегистрирован: Вт сен 02, 2008 18:17:29 Сообщений: 39
Рейтинг сообщения:0
Скажите, при работе уже запрограммированного устройства Вы используете USB порт для связи с компьютером? Если да, то не возникает ли противоречие? При прошивке USB устройство с VID/PID 0x16c0/0x05dc с именем AVRUSBBoot, потом при работе устройство с той же парой VID/PID, но с другим именем, скажем, LCDControl.
Скажите, при работе уже запрограммированного устройства Вы используете USB порт для связи с компьютером? Если да, то не возникает ли противоречие? При прошивке USB устройство с VID/PID 0x16c0/0x05dc с именем AVRUSBBoot, потом при работе устройство с той же парой VID/PID, но с другим именем, скажем, LCDControl.
У меня другая пара для моей прошивки. Вообще то из ридми от V-USB я понял, что эти vid и pid для радиолюбительских устройств вообще можно от балды ставить.
Корректировать ничего не нужно, лишь одно ограничение есть в данном случае: бутлоадер занимает "верхние" 2 килобайта в 16 килобайтах свободного места внутри ATmega16, то есть ваша программа ограничена размером 14 килобайт, эта небольшая разница и есть цена за все удобства от бутлоадера.
Здарова братья и сестры, вот зарегился на крутом форуме Есть вопрос по поводу этих бутлоадеров. Возможно автор темы сталкивался с тем, что при изминении например D- на другой соседний пин, загрузчик отказываеться работать, винда не определяет. В чем может быть проблема? Меняю только сдесь :#define USB_CFG_DMINUS_BIT 4 Возможно следует изменить где-то еще?
Заголовок сообщения: Re: Выкладываю Bootloader для ATmega16
Добавлено: Вс мар 06, 2011 20:02:00
Это не хвост, это антенна
Карма: 6
Рейтинг сообщений: 83
Зарегистрирован: Ср сен 03, 2008 21:42:17 Сообщений: 1351 Откуда: Ленинградская область,пос.Красный Остров
Рейтинг сообщения:0
А видел ли кто-нибудь аналогичную программу-бутлоадер, но работающую через комп-порт, не не через usb? Потому как при особой надобности usb из компорта делается с помощью шнурка от телефона, а вот наоборот - весьма затруднительно...
Спасибо автору за тему, полезная вещь. В развитие темы есть таков вопрос - как потом через ЮСБ прошивку бутлоадера осуществить обмен данными между основной программой мк и компом. Со стороны компа нужен драйвер, а вот в мк как из одной прошивки вызывать функции записанные в другую? Спасибо
В развитие темы есть таков вопрос - как потом через ЮСБ прошивку бутлоадера осуществить обмен данными между основной программой мк и компом. Со стороны компа нужен драйвер, а вот в мк как из одной прошивки вызывать функции записанные в другую? Спасибо
Бутлоадер это маленькая программа сидящая в отдельно выделенной части флеш. Ее задача в основном - только залить основную прошивку. Из основной программы можно конечно вызвать функцию в бутлоадере, но в связи с ограниченным размером последнего (2Кб для меги16)- в него и так с трудом usbasp влезает.
Потому обмен с компом должна осуществлять основная программа - независимо от наличия бутлоадера. Требуется драйвер компу или нет - будет так-же зависеть от реализации USB в основной программе. Можно реализовать HID, virtual COM - для них дрова не нужны, windows подцепит свои драйвера по умолчанию.
ЗЫ: vusb - на котором реализован данный бутлоадер "жрет" почти все ресурсы МК. Но для небольших приложений он (vusb) мне нравится...
_________________ — Не говорите мне что делать и я не скажу куда Вам идти...
vusb - на котором реализован данный бутлоадер "жрет" почти все ресурсы МК. Но для небольших приложений он (vusb) мне нравится...
Выходит програмная реализация usb на мк годится практически только для конверторов протоколов и мигания светодиодами? Еще вопрос: если прописать usb стек на основную програму, а бутлоадер не использовать то у мк еще останутся ресурсы? ну если бутлоадер 2кб, а мега16 на 16кб -то еще 14кб кода можна впихнуть.
Выходит програмная реализация usb на мк годится практически только для конверторов протоколов и мигания светодиодами?
Скорее так: VUSB годится для программ не критичных к скорости выполнения. "Жрет ресурсы" - имеется в виду, что реализация программного USB очень критична к временным интервалам и соответственно большая часть вычислительных ресурсов уходит на обработку USB. Я использую VUSB либо как боотлоадер, либо "помигать лампочками и подрыгать ножками". При небольшой "доделке" можно использовать и для нечастых настроек каких либо параметров - контролировать факт подключения к порту USB компа и на это время устройство должно переставать выполнять основную задачу, а выполнять функцию настройки параметров
Valeri писал(а):
Еще вопрос: если прописать usb стек на основную програму, а бутлоадер не использовать то у мк еще останутся ресурсы? ну если бутлоадер 2кб, а мега16 на 16кб -то еще 14кб кода можна впихнуть.
Если бутлоадер не используется, то мега может использовать всю свою флеш память, Размер boot области задается фюзами. Для меги16 2кб максимум.
ЗЫ: Под ресурсами я имею ввиду вычислительные ресурсы, немного абстрактные, а не размер занимаемой памяти.
_________________ — Не говорите мне что делать и я не скажу куда Вам идти...
Если имелось ввиду usbasp с бутлоадером, то да. У меня есть бутлоадер под usbasp hardware - в системе определяется как usbasp. С его помощью можно менять основную прошивку - хочешь usbasp, хочешь stk500, а хочешь и что-то свое
_________________ — Не говорите мне что делать и я не скажу куда Вам идти...
Могу исходники под winavr (avr-gcc) выложить - тогда сможете сами подправить что-нить. МК должен быть из mega8, mega88, mega168 в 48 меге нет бутлоадера
Если надо могу hex сделать - под какой МК и кварц (допустимы 12, 16, 20 МГц)?.
Еще: бутлоадер запускается при: 1. аппаратном сбросе (reset нажали на включенном usbasp) - необходимо "допаять" кнопку сброса. 2. если при подключении к компу все выводы (reset,mosi,miso,sck) сидели на "земле"
Какой вариант нужен?
_________________ — Не говорите мне что делать и я не скажу куда Вам идти...
Я думаю запуск бутлоадера при аппаратном сбросе будет оптимальным (вариант 1), благо пока не изготовил печатку, а только распечатал на плёнке рисунок дорожек. Буду вносить корректировку в печатку, она у меня заточена под корпус как по ссылке http://ekits.ru/index.php?productID=2095. Давайте исходники, попробую разобраться. Если кого заинтересует, то выложу окончательный вариант печатки, но там в угоду габаритов удалена часть отвечающая за отладку (линии от 2, 3 ноги) и вместо перемычки "Supply target" установлен диод Шотки.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения