Введение
В интернете много схем USB программаторов для микроконтроллеров AVR. Все их можно разделить на три группы: программаторы на основе микроконтроллеров AVR, в которых USB интерфейс реализован программно, программаторы на основе микроконтроллеров AVR с аппаратной поддержкой USB, и программаторы на основе микросхем FT232, которые работают в режиме BitBang.
Один из наиболее простых для повторения AVR USB программаторов – это USBasp. Он собран на микроконтроллере Atmega8 (или Atmega48), требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.
Правда есть одно НО! Для оживления этого программатора в микроконтроллер нужно записать прошивку, а значит, у вас уже должен быть какой-то работающий AVR программатор или хотя бы возможность его где-то взять.
Схема USBasp
Схема программатора USBasp представлена на рисунке ниже. Я взял за основу схему с сайта автора http://www.fischl.de/usbasp и немного изменил ee. Были добавлены диоды VD1 - VD3, чтобы уменьшить напряжение питания и согласовать логические уровни микроконтроллера и USB порта без стабилитронов. Были выкинуты цепи подключенные к UART`у, так как они не использовались, и добавлен джампер JP1.
Расскажу о назначении светодиодов и джамперов.
- HL1 сигнализирует о том, что идет процесс программирования. Он зажигается на время записи прошивки.
- HL2 показывает, что программатор находится в рабочем состоянии. Он зажигается при подаче питания.
- JP1 закорачивает цепочку из диодов, что позволяет изменять напряжение на разъеме программирования с 3 на 5 В. Однако без стабилитронов это прокатит не со всеми компьютерами. Многие компы не опознают USBASP, если у него 5-и вольтовые логические уровни.
- JP2 изменяет частоту SCK сигнала. При разомкнутом джампере частота SCK будет 375 кГц, при замкнутом — 8 кГц. Это требуется для программирования микроконтроллеров с низкой тактовой частотой (меньше 1.5 МГц).
- JP3 подключает вывод RESET к разъему программирования. Это нужно для того, чтобы запрограммировать сам микроконтроллер программатора.
- JP4 подключает к разъему программирования +5В от USB порта. Эта функция может понадобиться, чтобы запитать программируемую плату от программатора.
Сборка USBASP
Для сборки программатора USBASP понадобятся следующие компоненты:
Изготовление платы методом ЛУТа не представляет особых сложностей — плата односторонняя, дорожки широкие. При печати не надо зеркалить рисунок платы.
После сборки платы ее нужно тщательно проверить на предмет замыканий. Особенно по цепям питания. Если все в порядке, то можно записать в микроконтроллер прошивку. Ее можно в конце статьи. На сегодняшний день это самая последняя версия, но на всякий случай загляните на сайт автора.
Запрограммировать микроконтроллер можно прямо в составе платы. Для этого нужно замкнуть джампер JP3 и JP4, подключить USBasp к компьютеру для подачи питания и подключить программатор к разъему BH-10. Остальные действия зависят от того, какой программатор вы используете.
После того как микроконтроллер запрограммирован, нужно настроить Fuse биты, чтобы он тактировался от внешнего кварцевого резонатора. Значения Fuse битов такие:
atmega8 HFUSE=0xc9 LFUSE=0xef
atmega88 HFUSE=0xdd LFUSE=0xff
Я прошивал USBASP родным атмеловским программатором. У меня в Atmel Studio окно с Fuse битами выглядело так.
Если прошивать USBasp программатором на FT232, то в SinaProg изображение Fuse битов будет таким.
Разницы никакой, так что не задавайте вопросы какие Fuse биты установить.
Установка драйверов для USBasp
Для работы с программатором под Windows требуется установить драйвера. Их можно скачать с сайта автора. Для операционных систем Linux и MacOS X USBasp`у драйвера не требуется.
Подключаем собранный и запрограммированный USBasp к компьютеру. Операционная система оповестит нас о нахождении нового оборудовании и предложит установить драйвера.
Выбираем опцию - установить из указанного места
Указываем папку в которой лежат драйвера для программатора.
Система немного потупит, а затем начнется процесс установки.
Если все прошло удачно, мастер оборудования завершит работу.
А Windows оповестит нас об установке нового оборудования
Теперь программатором можно пользоваться.
Описанная процедура может немного отличаться в зависимости от версии операционной системы, но суть одна - подсунуть драйвера из папки.
Оболочки для работы с USBasp
На мой взгляд наиболее удобная в использование программа для USBaspa - это Khazama. Она имеет простой и интуитивно понятный оконный интерфейс. Процесс программирования микроконтроллера выполняется в три шага.
Программирование EEPROM (память предварительно должна быть стерта) выполняется аналогичным образом.
В меню Command > Program Options можно задать настройки программы. В частности, набор операций, которые будут выполняться при нажатии на кнопку Auto Program. По умолчанию там задано стирание чипа и запись во флэш память. Можно также выбрать запись в EEPROM и верификацию (проверку данных после записи).
Все операции можно выполнять как с помощью меню, так и с помощью меню бара. Также есть удобная опция AutoProgram.
1 — загрузить в буфер прошивку для Flash памяти
2 — загрузить в буфер прошивку для EPROM памяти
3 — записать прошивку во Flash память
4 — записать прошивку в EPROM память
5 — прочитать Flash память
6 — прочитать EPROM память
7 — стереть кристал
8 — установка FUSE и LOCK биты
9 — установить Khazama поверх всех окон
Файлы
Схема и печатная плата USBasp в формате Eagle
Win драйвер и прошивка USBasp
KhazamaAVRProgrammer
Comments
1 - MOSI
5 - RESET
7 - SCK
9 - MISO
У PonyProg каждый бит подписан. Надо поменять CKOPT, CKSEL - меняй. А здесь H, L, E - ???
Например: Atmega8
BODLEVEL 1 порог срабатывания схемы BOD 2.7В
BODEN 1 но BOD у нас запрещён=)
SUT1 0 эта пара определяет длительность задержки сигнала RESET после включения
SUT0 1 питания - 16тыс тактов (при 16МГц кварце это 1с)
CKSEL3 1 эти фьюзы
CKSEL2 1 определяют тип
CKSEL1 1 тактирования
CKSEL0 1 – кварцевый резонатор >1МГц
КАК в этом программаторе FUSE биты будут выглядеть???
Спасибо за нимание
у меня есть и рисунок платы в .lay.
не знаю только как поделиться всеми файлами -паша,разъясни. .
microsmaster"са м знаешь что"rambler.ru
Quoting Вадим:
Но в стандартном разъёме на этих выводах находится земля. Ничего если эти выводы Меги будут закорочены на землю? Работать будет или их лучше вообще от разъёма отключить?
Следующий вопрос: будет ли работать этот программатор если программируемый контроллер находится в устройстве и выводы для программировани я у него задействованы ещё на что-нибудь(напр имер LCD) ?
По идее программатор будет работать. Но когда эти выводы используются еще и для другого устройства, то нужно использовать токоограничител ьные резисторы. Введи в гугле в картинках запрос "isp avr resistor" и тебе обязательно попадется схемка, где показано как включаются резисторы.
собрал я это чудо и не работает оно. При подключении к порту Windows XP SP3 не моет опознать устойство, в чем тут дело?
Может в фьюзах? у тебя в описании проекта возмозно опечатка
SCOPT – 0
CKSEL3 - 1
CKSEL2 - 1
CKSEL1 - 1
CKSEL0 – 0
что это за SCOPT такой? я при прошивке выставил 0 на CKORT (определяет порог ограничения максимальной частоты)
что делать то деньчи потрачены а устройства нет )))
заранее благодарю за ответ!)
http://easyelectronics.ru/usb-programmator-avr-usbasp.html
программатор - контроллер
mosi - miso
miso - mosi
sck - sck
ss - reset
верно? вроде логично
mosi-mosi
miso-miso
sck-sck
ss-reset
error:programm enable:target does't answer.1
initialization failed, rc=-1
Double check connections and try again, or use -F to override this check
done. thank you.
Светодиод питания горит при подключении даже кратковременно загорается светодиод записи-чтения при подачи команды чтения памяти из программки Khazarma
Скажите кто нибудь в чем дело?
error:programm enable:target does't answer.1
initialization failed, rc=-1
Double check connections and try again, or use -F to override this check
Поставил перемычку J3, которая для понижения частоты и все заработало.
SCOPT – 0
CKSEL3 - 1
CKSEL2 - 1
CKSEL1 - 1
CKSEL0 – 0
А если в байтах то:
HIGH 0xС9
LOW 0xEF
если посмотреть на лов байт то циферка EF
подразумевает не запрограммирова нный битик
CKSEL0(тоесь он должен быть в единице)...
а выше видно что бит CKSEL0=0 тоесть запрограммирова н....подскажите как всё таки правильно
Что-то автор проигнорировал вопрос.
Правильно:HFUSE 0xC9
LFUSE 0xEF
Cформированная командная строка:
avrdude.exe -p m8 -c usbasp -P usb -U calibration:r:calibration.hex:r
found 8 busses
avrdude.exe: error: programm enable: target doesn’t answer. 1
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ############### ############### ############### ##### | 100% 0.02s
avrdude.exe: Device signature = 0×000000
avrdude.exe: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
avrdude.exe done. Thank you.
Все как в схеме, только резисторы на USB 1.3 кОм, и два по 56 Ом.
Помогите пожалуйста разобраться!
Дайте печатную плату на установку прошиваемых микроконтроллеров!
Спасибо!
Никакие софтины не хотят с моим программатором работать. А вот khazama заработал, НО для этого в Command/Program Options/ISP CLK SPEED выставил 187,5 KHZ. ММожет кому пригодится.
1. куда мне что подключать
2. как мне прошить свой программатор
Я в программировани и 0 и никогда ничего не прошивал. Расскажите мне все подробно что куда тыкать и что где нажимать. (Ded140@yandex.ru)
(на маем програматоре (который я програмирую) не загорается светодиод)....
подозрение, что просто я не магу прошить (не умею)....
Если программатор показывает, что ВИДИТ твой девайс (например, может прочитать его EEPROM), тогда прочитай Flash и сравни: оно похоже на требуемую прошивку?
Кроме Казамы, могу порекомендовать другую программу-проши вальщик: DudeAVR, ссылка есть выше. Она может сделать автодетект прошиваемому девайсу (если сделает, значит - девайс видится пограмматором). Ну, и прошивать этим DudeAVR'ом тоже можно :-)
1) либо неправильное соединение между программатором и прошиваемым девайсом (прозвони все шесть сигналов - Vcc,GND,SCK,MOS I,MISO,RST - непосредственно от чипа к чипу);
2) либо девайс с проблемой (где-то короткое замыкание или наоборот - неконтакт, неверные номиналы деталей, дохлый AVR...), проверь тщательно.
Номиналы все по списку.
Как правильно прошивать и какой прошивкой???
Фуз биты можешь отдельно программировать без заливки прошивки.
Питание от USB будет, если ты включишь соответствующую перемычку на программаторе.
Сотри, хуже не будет.
Фьюзы можешь в любой последовательно сти программировать , главное знать что менять.
http://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-Adapter-10-Pin-Cable-USB-ATMEGA8-ATMEGA128-Arduino-/310506909410?pt=LH_DefaultDomain_0&hash=item484ba76ee2
Просто у меня программатора нет чтоб его прошить.
Но когда я подключил прошиваемую схему (контроллер шью в схеме),то ругается и потом говорит что УСБАСП нету.... , а на программаторе горят оба светодиода.
Это у меня прошиваемая схема криво спаяна или программатор?
Почти такая же фигня. Купил его на ebay. Винда его видит, дрова встали. А SinaProg пишет "could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc" хотя в свойствах системы именно это и показывается( vid=0x16c0 pid=0x5dc ). Что делать не знаю... Да, винда XP SP3.
Скорее всего вы залочили фузы. Смотрите здесь: http://forum.easyelectronics.ru/viewtopic.php?f=4&t=14850&p=267594#p267594 и здесь: http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/ :-)
Любые AVR из семейств Classic (AT90Sxxxx), Tiny, Mega. Я использую UsbASP с оболочкой DudeAVR - таким образом около 100 разных контроллеров AVR можно прошивать (см. http://a-p-matveev.narod.ru/description).
начинаю шить, примерно на середине выскакиевает сообщение "LOck-биты установлены" и красный крест типа крит ошибка.
при этом моя мега превратилась в камень
После установки Lock-битов ATmega ещё не камень :-) Сделайте ей Chip Erase для снятия Lock.
P.S. не халтурьте при проверке схемы))
я так понимаю-сначала надо чтоб определился усбасп и потом ставить дрова?
у меня вин7 домашняя,ноутбу к дешевый,работае т,с фьюзами не разобрался как ставить в bascom avr,шью их через аб-544
Автор почему-то не хочет отвечать да данный вопрос?
Допусти у меня фьюзы указаны в Экстреме,как их програмировать в Казаме?
Програматор собрал из вашего поста, ссылка на него приведена в начале этой статьи. Его можно как-то проверить?
Затем загрузить прошивку из той же статьи и убедиться, что светодиод моргает.
Решил собрать схему по новой и LPT программатор к ней, если и в этот раз постигнет неудача, буду собирать схему для проверки.
http://www.getchip.net/posts/delaem-lpt-programmator-dlya-avr-mikrokontrollerov/
Что-то я явно делаю не так. Кстати в схеме программатора, которым прошивается USBasp какие выводы шлейф ISP нужно посадить на землю (4,6,8,10 или только 8,10)?
p.s. Попроси знакомого прошить голую мегу.
Всем спасибо за помощь, удалось запустить все вышеупомянутые мной схемы. Теперь у меня аж пять программаторов и один макет со светодиодом))
2. красный - у меня загорается, когда я шью меги или когда ошибка программатора (попробуй отключить и заново включить)
3. просмотри может где короткое замыкание или перемычку поставил на прошивание программатора внутрисхемно
2.пробовал отключать и снова подключать, на одном компе 7-ка, на другом ХР+Убунта, везде результат одинаков - при подключении к USB горит красный светодиод, но драйвер установился и на 7-ке и на ХР.
3.в моей схеме только три перемычки, четвертая(в этой схеме JP3), для программировани я своего контроллера - отсутствует. "Соплей" на плате не обнаружил.
Какой самый простой способ проверить правильность прошивки контроллера в схеме?
RSS feed for comments to this post