Вчера наткнулся на разработку автора программатор 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" установлен диод Шотки.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения