USB программатор для AVR, аналог AVRISP mkII
Программатор это пожалуй один из основных инструментов разработчика устройств на микроконтроллерах. Ведь именно он позволяет вдохнуть жизнь в микросхему. Такой инструмент должен быть качественным и отвечать современным требованиям:
- Иметь интерфейс USB, а не устаревшие COM или LPT
- Поддерживаться популярными программами
- Поддерживать прошивку самых распространённых контроллеров
- Прошивать с высокой скоростью
Конечно программатор можно и купить, но у Atmel к сожалению слишком неадекватные цены на средства программирования и отладки. В сети очень много схем различных программаторов, но как правило вышеизложенным требованиям они не удовлетворяют. Особенно это касается интерфейса подключения к компьютеру. Например у USBasp интерфейс USB реализован программно, и гарантии что он будет работать на всех компьютерах нет. Так какой же программатор собрать? Я предлагаю аналог AVRISP mkII.
Клоном его назвать не поворачивается язык, уж слишком сильные схемотехнические различия между оригиналом и данным программатором. Аналог фирменного это очень хорошо, ведь фирменные программаторы поддерживаются AVR Studio и многим другим популярным софтом т.к. протокол обмена программы и программатора открыт. Открыт так же исходный код прошивки данного программатора. В будущем я планирую доработать его, добавив буфер и светодиод индикации активности. Буфер нужен для того чтобы обезопасить микроконтроллер в случае если на выводы программирования попадёт повышенное напряжение или произойдет короткое замыкание. Буфер стоит копейки, а микроконтроллер далеко не самый дешевый. В данной схеме вся защита возложена на токоограничивающие резисторы, поставленные в разрыв линий программирования. Их можно и не ставить но безопасности ради я рекомендую. Вот собственно схема:
Впервые рисовал схему в Eagle так что сильно не пинать =) Рулезная вещица кстати!
С вывода UCAP можно снимать напряжение 3. 3 вольта, через него запитан сам микроконтроллер. Это сделано для того, чтобы можно было безболезненно прошивать микроконтроллеры питающиеся от 3.3 вольт. У данного программатора очень хорошо решена проблема «курицы и яйца». Обычно, чтоб сделать USB программатор вроде того же USBasp, сначала нужно найти другой программатор чтоб запрограммировать контроллер для будущего программатора. С этим программатором всё иначе. Туда уже зашит загрузчик который позволит обновить прошивку по USB при помощи утилиты от Atmel. Я к сожалению узнал об этом когда уже прошил контроллер другим программатором и эту возможность протестировать не удалось. Перемычка нужна видимо для управления загрузчиком. Для работы с программатором должны быть установлены драйвера. Как правило они ставятся вместе со студией. Если драйвера не нашлись то обновляем студию. Когда драйвера поставятся – можно шить. Список поддерживаемых контроллеров огромен, присутствует поддержка ATXmega (лично не проверял). Шьёт программатор быстро.
Резисторы можно заюзать самые обычные выводные, но я что-то совсем обленился сверлить дырки и перешел на SMD монтаж. Кстати типоразмер 1206 можно паять обычным паяльником с тонким жалом. Просто нужно немного приноровится. Исправленная печатка прилагается и в случае чего можно её поправить как нужно. В дальнейших планах засунуть всё это дело в нормальный корпус и юзать в качестве основного программатора.
Прошивка (10 Кб). Загрузок: 542
Печатная плата (10 Кб). Загрузок: 602
Просмотров: 9234
Печать
Программатор USBasp для AVR контроллеров Arduino — Схемы.ру
Автор admin На чтение 5 мин. Опубликовано
USBasp S51&AVR — простой внутрисхемный USB-программатор для контроллеров серии S51 фирмы Atmel: AT89S51, AT89S52, AT89S53, AT89S8252.
У любителей Arduino приборчик USBasp тоже пользуется спросом, так как может загружать скетчи и прошивать ядро микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM, а также без проблем работает с программным обеспечением Arduino IDE.
Мозгом загрузчика USBasp служит микроконтроллер ATmega8. Так же есть варианты с ATmega88 или ATmega48. Собран он из минимума деталей, USB контроллер не нужен, поскольку имеется программный USB-драйвер.
Возможности программатора USBasp
- Совместим с Windows, Linux и Mac OS X.
- Поддержка контроллеров S51 и AVR.
- Питание от USB порта +5В, дополнительное не требуется.
- Прошивка контроллеров работающих от 5 или 3.3 В.
- Скорость передачи до 5 Кбайт/сек.
- Переключение SCK-джампером для прошивки низкоскоростных чипов < 1.5МГц.
- Сбрасываемый предохранитель от короткого замыкания.
- Стандартный IDC 10PIN интерфейс.
Драйвер к программатору USBasp
Windows USBasp-win-driver-x86-x64-ia64-v1.2.4
Программное обеспечение для USBasp
- BASCOM-AVR — среда разработки, начиная с версии 1.11.9.6.поддерживает USBasp.
- AVRDUDE 6.1 — консольная программа, начиная с версии 5.2 поддерживает USBasp.
- Khazama AVR Programmer v1.7 — имеет графическую оболочку, совместима с Windows XP и Vista.
- eXtreme Burner AVR 1.3 Beta — графическая оболочка.
- Arduino IDE 1.0.6
Самодельный
Обвязка микроконтроллера в USBasp S51&AVR настолько проста, что достаточно легко собрать самому миниатюрный программатор, который можно будет везде носить с собой как флешку.
Для самоделки можно выбрать управляющий микроконтроллер ATmega8, ATmega48 или ATvega88, но только без всяких индексов L, PU. Так как нам потребуется рабочая частота свыше 8 Мгц.
Схема программатора
Устройство, собранное по этой схеме предназначено только для программирования 5-вольтовых контроллеров!
Красный светодиод показывает, что устройство подключено к USB-питанию.
Зеленый светодиод мигает, когда идет обращение к прошиваемому микроконтроллеру.
Элементы для сборки USBasp:
- R1, R2 — 68 Ом;
- R3 — 2.2 кОм;
- R4, R5, R7 — 1 кОм;
- R6 — 10 кОм;
- C1 — электролит на 4.7 мкФ;
- С3 — керамический конденсатор 100 нФ;
- C4, C5 — керамические, неполярные конденсаторы 22пФ;
- LED1 — красный светодиод на 20мА;
- LED2 — зеленый светодиод на 20мА;
- D1, D2 — стабилитроны на 3,6В;
- IC1 — микроконтроллер ATmega8, ATmega48, ATmega88, без индексов L, PU;
- Q1 — кварц 12 МГц, корпус HC49-S;
- X1 — разъем USB, тип B;
- X2 — разъем IDC-10;
Уставки джамперов
J1 — питание от USB-гнезда, либо внешнего источника.
J2 — установленная перемычка позволяет перепрошивать программатор.
J3 — установленная перемычка снижает частоту SCK синхросигнала с 375 кГц до 8 кГц для прошивки низкоскоростных чипов < 1.5 МГц.
Джампер J1 следует снимать при первом подключении к ПК собранного и прошитого программатора, поскольку компьютер должен определить новое устройство и установить драйвер для него.
Использование перемычек, как в оригинальной схеме, не совсем удобно, поэтому рекомендуется замена всех их на один DIP переключатель.
Установка драйвера для USBasp
Для работы программатора потребуется на Windows установить драйвер. Последнюю версию которого можно найти на сайте USBasp.
На операционные системы Linux и MacOS драйвер не требуется.
Вставьте собранный программатор в гнездо USB. Операционная система найдет новое оборудование и предложит установить драйвер для него. Выберите пункт: «Установка из указанного места», найдите папку со скачанным драйвером.
Прошивка самодельного USBasp
Чтобы собранное устройство заработало, его микроконтроллер ATmega, необходимо предварительно прошить.
Запускайте программное обеспечение, например, AVRDUDE и не забудьте проверить правильность установки джампера J2.
Загружайте прошивку:
«bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex»
«bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex».
Для работы от внешнего кварца необходимо будет выставить фьюзы:
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff
Воспользуйтесь для вставки фьюзов прогой Makefile с функцией «make fuses».
Печатная плата
Печатных плат для самодельного USBasp разработано более 10 видов. Рекомендуем использовать оригинальную, с установкой стабилитронов.
Или сделайте свою трассировку печатной платы под установленный лично DIP переключатель вместо отдельных джамперов.
Программирование в Khazama
Стоит упомянуть об удобной графической программе Khazama. Все операции можно быстро выполнить как в меню, так и с помощью строки бара.
1 — загрузить в буфер прошивку для Flash памяти.
2 — загрузить в буфер прошивку для EPROM памяти.
3 — записать прошивку во Flash память.
4 — записать прошивку в EPROM память.
5 — прочитать Flash память.
6 — прочитать EPROM память.
7 — стереть микрочип.
8 — установить FUSE и LOCK биты.
9 — установить поверх всех окон.
В меню есть удобная кнопка Auto Program.
В Command > Program Options можно изменять настройки программки. В частности, можно задать набор операций, которые будут выполняться при нажатии на Auto Program. По умолчанию установлено стирание чипа и запись во флэш-память. Также можно выбрать запись в EEPROM, добавить верификацию (проверку записанных данных).
Программирование Flash памяти
Программирование EEPROM памяти
В любом случае, до записи прошивки, память микрочипа должна быть предварительно стерта.
С помощью Khazama также удобно выставлять FUSE биты.
Автор: Виталий Петрович. Украина Лисичанск.
Читайте также: Новости России Украины и мира
Изучите и создайте собственный USBasp
USBasp — USB-программатор для контроллеров Atmel AVR
Atmega8
О программаторе
USBasp — внутрисхемный USB-программатор для контроллеров Atmel AVR. Он просто состоит из ATMega48 и ATMega88, ATMega8 и пары пассивных компонентов. Программатор использует USB-драйвер только для прошивки, специальный USB-контроллер не требуется.
Характеристики
- Работает на нескольких платформах. Linux, Mac OS X и Windows тестируются.
- Никаких специальных контроллеров или компонентов smd не требуется.
- Скорость программирования до 5Кбайт/сек. Опция
- SCK для поддержки целей с низкой тактовой частотой (< 1,5 МГц).
Схема USBASP с использованием ATMEGA8:-
Купить детали, которые вам нужны
ЧАСТЬ DESCIRPTION QTY
ATMEGA8 Microcontroller 1
3,6 Вольт Zeaner Diode 2
22PF Конденсатор 2
100NF Конденсатор 1
4.7UF Конденсатор 1
Кристалл 12 МГц 1
10K сопротивление 1
1K сопротивление 3
68OHM сопротивление 2
00032,2K Сопротивление 1
Светодиодный светодиод (Red & Geen) 2
USB-разъем 1
USB-кабель 1
3-й Way Dip Switch 1
Соединения с трагем Используя эту схему, все, что вам нужно сделать, это найти лист данных того микроконтроллера, который вы хотите запрограммировать, и проверить конфигурацию контактов. и найдите PIN MOSI MISO SCK и Reset , подключение будет следующим
Подготовка микроконтроллера Atmega8 к использованию в качестве программатора:-
Подготовка микроконтроллера atemega8 к вставке в только что припаянную печатную плату и начало работы. вам нужно записать прошивку, которую вы только что загрузили на шаге 1, в микроконтроллер atmega8. вы можете использовать серийный программатор avr, чтобы выполнить эту работу. нажмите здесь, чтобы узнать о том, как сделать программатор avr и как запрограммировать atmega8 с помощью программатора avr.
Примечание: — Убедитесь, что вы записали правильную конфигурацию бита предохранителя вместе с прошивкой в микроконтроллер atmega8
для atemega8. немного используйте программатор последовательного avr, затем посетите страницу серийного avr progammer для получения подробной информации
Установка драйвера на ПК: —
указать правильный путь для установки драйверов.
Windows требуется драйвер для USBasp : usbasp-windriver.2011-05-28.zip (274 КБ)
Если все сделано правильно, у вас будет собственный USBASP
Вот так:Нравится Загрузка…
Эрик М. Клаус — USBASP MOD
Модификации USBASP AVR Programmer
Что такое USBASP?
USBASP — замечательное устройство от Томаса Фишла. http://www.fischl.de/usbasp/ Он используется для программирования большого количества микроконтроллеров Atmel. Я уже несколько лет являюсь большим поклонником микроконтроллеров Atmel и сам собрал пару таких удобных устройств.
Этот проект, который я назвал usbasp+, представляет собой модификацию программатора с добавленной поддержкой встроенного UART, что позволяет ему взаимодействовать с вашими AVR-проектами через программатор.
В сочетании с хост-компонентом ПК USBASP_tty.exe вы сможете отправлять и получать последовательные данные уровня TTL в/из вашего проекта микроконтроллера через программатор.
Вы также можете создать свой собственный программатор, но вам все равно потребуется доступ к программатору для установки прошивки.
ИЛИ За несколько долларов вы можете найти один из них на ebay (на самом деле вам понадобится как минимум два)
Эти устройства не совсем соответствуют показанной схеме.
Контакты 4, 6, 8 и 10 на 10-контактном разъеме подключены к GND.
Я объясню шаги модификации ниже. они добавляются в проект, а также отлаживают всю систему.
Большинство чипов Atmel имеют по крайней мере один UART, но если нет, обычно несложно эмулировать его.
Раньше мне требовалось, чтобы адаптер USB-Serial, а также программатор USBASP были подключены к целевому устройству на протяжении всего процесса разработки. Иногда это становилось немного неуклюжим, особенно если проект находился в неудобном месте или его нужно было много перемещать. Я заметил 2 соединения с контактами RXD и TXD на схеме USBASP и пожелал каким-то образом использовать их или любой другой метод, чтобы заставить программиста общаться с моим проектом не в режиме программирования. Наконец, я просто начал играть с исходным кодом и понял, как это сделать.
Модификации оборудования
Шаг 1: просверлите несколько крошечных отверстий возле контактов 4 и 6
Отпаяйте контакты 4 и 6 и снимите их с платы (трудно увидеть)
Найдите очень тонкий провод и осторожно соедините 2 провода к контактам 30 и 31 микросхемы ATMega 8.