Как работает USB программатор для AVR микроконтроллеров. Какие модели AVR поддерживает. Как правильно подключить и настроить программатор. Какое программное обеспечение нужно для работы с USB программатором AVR. Какие основные преимущества использования USB программатора для AVR.
Особенности и характеристики USB программатора для AVR
USB программатор для микроконтроллеров AVR — это удобное устройство для программирования и отладки AVR микроконтроллеров через USB-порт компьютера. Рассмотрим основные характеристики и возможности такого программатора:
- Интерфейс подключения к ПК: USB 2.0
- Поддерживаемые микроконтроллеры: большинство 8-битных AVR (ATmega, ATtiny и др.)
- Напряжение питания: 5В (от USB-порта)
- Поддержка ISP-программирования (внутрисхемного программирования)
- Возможность программирования микроконтроллера без извлечения из устройства
- Компактные размеры (обычно не более 5×3 см)
- Низкая стоимость (от 300-500 рублей)
Поддерживаемые модели микроконтроллеров AVR
USB программатор поддерживает широкий спектр 8-битных микроконтроллеров AVR, включая следующие популярные серии:
- ATmega: ATmega8, ATmega16, ATmega32, ATmega128 и др.
- ATtiny: ATtiny13, ATtiny45, ATtiny85 и др.
- AT90: AT90S2313, AT90S8515 и др.
- ATxmega: ATxmega128A1, ATxmega256A3 и др.
Программатор способен работать с большинством современных 8-битных AVR микроконтроллеров. При выборе конкретной модели программатора следует уточнить список поддерживаемых микроконтроллеров в документации.
Подключение и настройка USB программатора
Для подключения и настройки USB программатора AVR необходимо выполнить следующие шаги:
- Подключить программатор к свободному USB-порту компьютера.
- Установить драйвера для программатора (обычно входят в комплект или доступны для скачивания).
- Подключить программируемый микроконтроллер к разъему ISP программатора.
- Запустить программное обеспечение для программирования (например, AVRDude).
- Выбрать модель микроконтроллера и файл прошивки.
- Запустить процесс программирования.
При первом подключении Windows определит программатор как новое устройство. Важно корректно установить драйвера, чтобы операционная система могла работать с программатором.
Программное обеспечение для работы с USB программатором AVR
Для программирования микроконтроллеров через USB программатор можно использовать различное программное обеспечение:
- AVRDude — популярная консольная утилита для программирования AVR
- AVRDUDESS — графическая оболочка для AVRDude
- Atmel Studio — официальная среда разработки от производителя AVR
- Arduino IDE — среда для программирования Arduino (на базе AVR)
- Khazama AVR Programmer — простая программа с графическим интерфейсом
Выбор конкретного ПО зависит от предпочтений разработчика и сложности решаемых задач. Для начинающих удобнее использовать программы с графическим интерфейсом.
Преимущества использования USB программатора для AVR
USB программатор для AVR имеет ряд важных преимуществ по сравнению с программаторами на базе COM или LPT портов:
- Совместимость с современными компьютерами без устаревших интерфейсов
- Не требует дополнительного питания (питается от USB)
- Высокая скорость программирования
- Компактные размеры и мобильность
- Низкая стоимость
- Простота подключения и использования
Благодаря этим преимуществам USB программаторы AVR стали стандартом де-факто для разработки устройств на базе микроконтроллеров Atmel AVR. Они значительно упрощают процесс программирования и отладки.
Типичные проблемы при работе с USB программатором AVR
При использовании USB программатора для AVR могут возникать некоторые типичные проблемы:
- Не устанавливаются драйвера устройства в Windows
- Программатор не определяется в программном обеспечении
- Ошибки при программировании микроконтроллера
- Невозможность считать или записать фьюзы (конфигурационные биты)
Для решения этих проблем рекомендуется:
- Проверить правильность подключения и целостность кабелей
- Переустановить драйвера программатора
- Попробовать другой USB-порт компьютера
- Обновить прошивку самого программатора
- Проверить совместимость программатора с используемым микроконтроллером
В большинстве случаев проблемы решаются корректной установкой драйверов и настройкой программного обеспечения. При сохранении проблем стоит обратиться к документации производителя программатора.
Выбор USB программатора AVR для конкретных задач
При выборе USB программатора AVR следует учитывать следующие факторы:
- Список поддерживаемых микроконтроллеров
- Наличие дополнительных функций (например, программирования EEPROM)
- Скорость программирования
- Поддержка различного программного обеспечения
- Отзывы пользователей и надежность устройства
- Стоимость программатора
Для большинства любительских проектов подойдет недорогой USBasp программатор. Для профессиональной разработки лучше выбрать более функциональные модели, например AVRISP mkII или Atmel-ICE.
Правильно подобранный USB программатор AVR значительно упростит процесс разработки устройств на базе микроконтроллеров Atmel и сделает его более удобным.
Изготовление и настройка программатора USBASP SW19.ru
Здравствуйте, уважаемые коллеги SW19 и просто те, кому интересна электроника.Эта статья будет посвящена изготовлению программатора USBASP своими руками. Собрать его решил просто из спортивного интереса, так как детали давно лежали и заняться было не чем. Он предназначен для прошивки микроконтроллеров фирмы Atmel. Схема проста, как 3 копейки и требует только внимательности и аккуратности. Я не стал мудрствовать и нашёл схему в интернете:
По ней и будем собирать наш программатор.
Там же брал и все файлы для изготовления программатора. Продолжим дальше. Использовать будем микроконтроллер (далее МК) Atmega8 – 16PU, можно Atmega8A.
Печатную плату я переделал под корпус, который был в наличии у меня. Заказывал его на Али.
Вот ссылка, где брал: http://ru.aliexpress.com/item/New-Plastic-Electronic-Project-Box-100x60x…
У меня получилось как- то так:
Травим наше творение в хлорном железе:
Тогда я ещё не знал про перекись водорода, лимонную кислоту и соль, ну да ладно. Делаем так, как знаем.
Получаем такой результат:
Сверлим отверстия. Я сверлил моторчиком с латунной цангой. Тоже брал с Али. Кому интересно, вот ссылка на сей девайс:
http://ru.aliexpress.com/item/12V-Motor-0-5-3mm-Small-Electric-Drill-Bit…
Потом лудим обычным паяльником, предварительно покрыв нашу плату ЛТИ-120.
Получилось немного коряво, но ничего страшного. Мы делаем первый раз такие вещи и нам простительно. Тем более, что на выставку мы не претендуем. После того, как плату залудили – советую её отмыть изопропиловым спиртом, так как ЛТИ -120 губительно сказывается на дорожках печатной платы и выводах деталей, и со временем разрушает их.
Список деталей для нашего программатора:
МК Atmega8 – 16PU | 1шт. |
Панелька под МК DIP 28 | 1шт. |
Кварцевый резонатор на 12 Мгц | 1шт. |
Стабилитрон BZV85C3V6(1N4729A) | 2шт. |
Резистор 10 Ком | 1шт. |
Резистор 68 ом | 2шт. |
Резистор 390ом | 2шт. |
Резистор 270 Ком | 1шт. |
Резистор 1,5 Ком | 1шт. |
Конденсатор 18 пф | 2шт. |
Конденсатор 100 нф | 1шт. |
Конденсатор 10 мкф 16в | 1шт. |
USB разъём USBB-1J | 1шт. |
Разъём ISP 10 штырей | 1шт. |
Джампер | 3шт. |
Светодиод красный | 1шт. |
Светодиод зелёный | 1шт. |
Далее собираем наш программатор. Первым делом впаиваем перемычки, джампера, резисторы.
Далее по возрастающей. Последними запаиваем разъёмы, панельку под МК, светодиоды, кварцевый резонатор.
В итоге получаем вот такой вот вид:
Теперь прошьём наш МК. Мой компьютер не имеет LPT и COM портов, поэтому будем прошивать USB программатором. В моём случае это TL866CS, брат-близнец нашего WizardProg 87. Брал его тоже на Али, но ссылка, к сожалению не сохранилась.
Подключаем программатор к компьютеру. Запускаем программу для работы с программатором.
Она от WizardProg 87, полностью русифицирована и полностью дружит с нашим китайским девайсом.
Выбираем наш МК из списка. В данном случае это Atmega8A.
Нажимаем на кнопочку «Размещение ИМС», для того, чтобы посмотреть, как установить наш МК в панель программатора:
И устанавливаем наш микроконтроллер:
Выбираем прошивку, которую будем записывать в память МК:
Выставляем фьюзы так, чтобы получилось как у меня на фото, смотрим, где обведено красным маркером:
Будьте внимательны при настройке фьюзов! В разных программаторах они могут быть инверсными! Это значит, что там где у меня стоит галочка, в Вашем может её и не быть! Это важно! Неправильная настройка фьюзов может привести к полному залочиванию МК!
Далее прошиваем нашу Atmega8 – 16PU.
Проверяем наш МК программатором на наличие ошибок после записи прошивки, так называемая варификация:
Всё успешно прошилось.
Теперь собираем наш программатор и проверяем. Подключаем его к ПК через кабель USB.
Ставим драйвера.
У меня всё получилось с первого раза. Далее собираем всё в корпус. Где его взять – написано в самом начале статьи. И оформляем, чтобы было понятно, что куда подключать.
Вид готового программатора, подключённого к ПК.
Ну вот и всё на сегодня, надеюсь было интересно и полезно. Желаю всем удачи в ремонтах и спасибо за внимание!!!
USB ПРОГРАММАТОР AVR
В жизни каждого юзера наступает такой момент, когда надо апгрейдить компьютерное железо. Но не все так радосто, как казалось – производители компьютеров сейчас выкидывают такие ненужные по их мнению вещи, как COM- и LPT-порты (тоже относится и к владельцам ноутбуков). И что же делать несчастному юзеру, если необходимо прошить очередной МК AVR для девайса? Выход один – делать USB-программатор (или прикупить). Сегодня мы этим и займемся… (я имею ввиду сборку). И так, наша цель – создание программатора USBasp.
Однако при изготовлении данного программатора есть одна проблема – нужно прошить контроллер, используемый в данном программаторе. Так что ищем друга, у которого есть рабочий COM- или LPT-порт в компьютере и, прикупив пивка, идём к нему (уж за такой презент он не откажет). Когда делал свой USBasp, пользовался простейшим ISP программатором – программатором Громова (Громов – разработчик Algorithm Builder). Так что расскажу как сделать USBasp с помощью него. Вначале паяем программатор Громова по следующей схеме:
Вопросы типа: «А где рисунок платы?» будут оставлены без ответа, т.к. ответ в архиве. Замечу один момент: на прошиваемый контроллер необходимо подача питающего напряжения 5 вольт (+ и -), которое можно взять с компьютерного блока питания (использовал разъем от флоппика). Для этого в плате программатора AVR предусматриваем место для подключения 2-х питающих проводов. Выглядеть будет примерно так:
Основные подготовительные операции выполнены и теперь приступаем к действиям для достижения основной цели – сборка USBasp.
Про сборку и описывать особо нечего, так как тут всё ясно. Для себя исключил из схемы перемычки Jmp1 и Jmp3, Jmp2 заменил переключателем, а вместо разъема ISP типа BH-10 поставил DB-9M. Контроллер прошивал отдельно с использованием вот такой платы:
Собранный USB программатор AVR засунул в подходящий пластмассовый корпус:
А теперь расскажу, как же все таки заставить работать USBasp. Что у нас имеется в распоряжении (весь софт скачиваем в архиве):
1. программатор Громова;
2. софт под названием Uniprof;
3. программатор USBasp;
4. прошивка для контроллера USBasp;
5. драйвера для установки USBasp в системе.
На собранном USBasp ставим перемычки Jmp1 (цепь RESET) и Jmp2 (+5V), подключаем к нему программатор Громова и все это дело подключаем к COM-порту компа, не забыв подать питание 5 вольт. Запускаем Uniprof, если все собрано и подключено правильно, то должнен определиться тип прошиваемого контроллера:
Нажимаем кнопку с рисунком папки и надписью HEX и указываем путь к файлу прошивки контроллера USBasp. В итоге получаем следующее:
Осталось нажать на кнопку Prog с красной стрелкой, чтобы запустить режим прошивания. Ждем окончания заливки hex-файла. А теперь самые большие грабли – прошивка fuse-битов. В чекбоксе «Тормоз» (тот что над пивной кружкой) ставим галку (особенно актуально для шустрых системников), нажимаем кнопку «Fuse» (ала серп и молот :-D) и выставляем фьюзы как указано на картинке:
После установки галок нажимаем кнопки «Write» в каждом из байтов.
Примечание (вдруг кто будет пользовать программатор Громова и дальше): в Uniprof галка напротив фьюза означает, что он установлен в 1 (в PoniProg галка означает установку в 0).
Прошили? Отлично! Снимаем перемычку J1 и втыкаем программатор в компьютер. Теперь скармливаем дрова и в системе появляется новое устройство под названием USBasp. Для прошивки контроллеров качаем avrdude, но у нее есть недостаток – она консольная. Однако добрые дяди не оставили нас в беде и сделали графическую оболочку для avrdude, называется она USBASP_AVRDUDE_PROG. При прошивке fuse-битов через avrdude галка в чекбоксе напротив бита означает 0.
Вот вроде и всё. Будут вопросы по запуску программатора — справшивайте, вместе как-нибудь разберемся. Автор: skateman.
Originally posted 2019-01-29 07:07:43. Republished by Blog Post Promoter
Программатор avr своими руками под windows 10. Миниатюрный USB программатор для AVR микроконтроллеров. Органы управления на плате
В интернете много схем USB программаторов для микроконтроллеров AVR. Все их можно разделить на три группы: программаторы на основе микроконтроллеров AVR, в которых USB интерфейс реализован программно, программаторы на основе микроконтроллеров AVR с аппаратной поддержкой USB, и программаторы на основе микросхем FT232, которые работают в режиме BitBang.
Один из наиболее простых для повторения AVR USB программаторов – это USBasp. Он собран на микроконтроллере Atmega8 (или Atmega48), требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.
Правда есть одно НО! Для оживления этого программатора в микроконтроллер нужно записать прошивку, а значит, у вас уже должен быть какой-то работающий AVR программатор или хотя бы возможность его где-то взять.
Схема программатора 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 понадобятся следующие компоненты:
Изготовление платы методом ЛУТа не представляет особых сложностей — плата односторонняя, дорожки широкие. При печати не надо зеркалить рисунок платы.
После сборки платы ее нужно тщательно проверить на предмет замыканий. Особенно по цепям питания. Если все в порядке, то можно записать в микроконтроллер прошивку. Ее можно в конце статьи. На сегодняшний день это самая последняя версия, но на всякий случай загляните на сайт автора.
Запрограммировать микроконтроллер можно прямо в составе платы. Для этого нужно замкнуть джампер 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 биты установить.
Для работы с программатором под Windows требуется установить драйвера. Их можно скачать с сайта автора. Для операционных систем Linux и MacOS X USBasp`у драйвера не требуется.
Подключаем собранный и запрограммированный USBasp к компьютеру. Операционная система оповестит нас о нахождении нового оборудовании и предложит установить драйвера.
Выбираем опцию — установить из указанного места
Указываем папку в которой лежат драйвера для программатора.
Система немного потупит, а затем начнется процесс установки.
Если все прошло удачно, мастер оборудования завершит работу.
А Windows оповестит нас об установке нового оборудования
Теперь программатором можно пользоваться.
Описанная процедура может немного отличаться в зависимости от версии операционной системы, но суть одна — подсунуть драйвера из папки.
Для работы с USBasp`ом есть несколько программ — avrdude, eXtremeBurner, Khazama и.. какие то еще.
На мой взгляд наиболее удобная в использование программа для USBaspa — это Khazama. Она имеет простой и интуитивно понятный оконный интерфейс. Процесс программирования микроконтроллера выполняется в три шага.
Для программирования микроконтроллеров AVR требуется программатор. Проще всего сделать программатор для COM либо LPT. Но я работаю на ноутбуке, а в них сейчас устанавливаются только USB порты. Вот и назрела необходимость обзавестись программатором для AVR по USB. Сейчас, я скорее всего купил бы данный программатор. На ebay они стоят недорого, наверное, даже дешевле чем купить детали, сделать плату и всё спаять. Хотя если посмотреть с другой стороны, заказ с ebay будет идти по почте не меньше месяца, а собрать программатор avr usb своими руками, в силу его простоты, можно за вечер. Более того, если начинающий радиолюбитель сам соберёт программатор, то в дополнении к программатору он получит опыт, бесценный опыт, а это дорогого стоит.
Это второй мой USB программатор для AVR, первым я сделал программатор USB-asp, но он мне не очень понравился, так как иногда отваливался от моего компьютера, хотя на другом компьютере ничего подобного не наблюдалось. Я решил попробовать собрать другой программатор, и мой выбор пал на программатор AVR910. У данного программатора немного по другому реализована схема подключения по USB, и как позже оказалась, на моём компьютере всё работает очень хорошо. Я забыл о проблемах, которые у меня были с моим прошлым программатором. Описанный в данной статье программатор AVR910 является на данный момент моим основным программатором для AVR.
Схема и прошивка использованы с сайта проекта (http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm).
Питается программатор от USB порта. Для того чтобы не требовалось согласование с уровнями линий данных USB порта (3.6В) питание микроконтроллера составляет 3.6В. Для получения из 5В в USB порте 3.6В, используется схема их двух последовательно прямо включённых кремниевых диодов. На каждом диоде падает по 0.7В, а в сумме получается 1.4В. Диоды должны быть кремниевыми, не допускается использование диодов шотки, так как на них падает меньше 0,7В. Выходы разъёма программирования подключены через резисторы на 330 Ом для согласования уровней. Работает устройство на микроконтроллере AtMega8-16 на тактовой частоте 12МГц. На схеме приведены номера выводов для микроконтроллера в DIP корпусе, хотя я отраcсировал плату под SMD корпус, который называется TQFP. Программатор имеет индикацию записи, чтения, наличия питания. Также данный программатор имеет выход, на котором всегда присутствует меандр, частотой 1 МГц. Это очень классная и полезная штука для восстановления микроконтроллеров, у которых из-за ошибочно запрограммированных Fuse битов тактирование сконфигурировано от внешнего источника тактовых импульсов. Я таким образом уже несколько раз восстанавливал микроконтроллеры. Нужно всего лишь посмотреть в даташите на конкретный микропроцессор AVR, к какому выводу подключается внешний источник тактового сигнала, и подпаять к данному выводу источник меандра. Подключить программатор, и перепрограммировать fuse. Всё очень просто, но иногда здорово выручает!
Имеющиеся варианты реализации печатных плат под программатор AVR910 не совсем меня устраивали, и я выполнил трассировку своего варианта (скачать файлы проекта можно в конце статьи).
Защитный рисунок на фольгированный стеклотекстолит нанесён при помощи лазерного принтера и утюга.
После травления получилась вот такая красота. Я не сдержался, и процарапал тонер на дорожках между ножками микросхемы. Мне не терпелось проверить получились они или нет.
Для удобства пользования я отметил назначение каждого вывода программатора AVR910. Для это я нарисовал небольшую табличку, которую напечатал на глянцевой фотобумаге и наклеил на плату программатора двусторонним скотчем.
Групповую заготовку для таблички для печати на фотобумаге размером 10х15 я положил в архив со всеми файлами к данной записи. Скачать его можно в конце данной статьи.
Прошивку для программатора можно скачать по ссылке в конце статьи.
Fuse биты устанавливаются с соответствии с рисунком ниже:
Как запрограммировать микроконтроллер AtMega8 для программатора AVR910 можно посмотреть в моём видео:
Корпус для программатора AVR910 я не смог подобрать, мне хотелось, чтобы программатор оставался маленького размера, и изначально я пользовался голой, никак не изолированной платой. Но затем я купил широкую прозрачную термоусадку и усадил в неё программатор. Что в итоге получилось вы видите на фото. По моему довольно интересно и даже симпатично.
С термоусадкой всё кажется просто, но мне было сложно сделать отверстия под штыри. Если протыкать отверстия шилом, то при усадке термоусадочная трубочка рвётся начиная от данных отверстий. Я даже испортил несколько заготовок, но у меня в конце экспериментов всё получилось. В итоге я отверстия не протыкал, а проплавлял горячим паяльником с жалом иглой. По краям платы я спаял концы термоусадочной трубки. Спаиваются они очень просто – нагреваются оба конца трубочки, затем быстро, пока они не успели остыть, зажимаются и удерживаются зажатыми до полного остывания. Получается достаточно прочный спай. Я зажимал медицинским зажимом, на термоусадке даже остались следы от насечек на его губках.
При первом подключении к компьютеру программатора AVR910 в системе появится новое устройство AVR910. Теперь необходимо установить драйвера и можно работать.
Я работал с данным программатором на 32 битных системах Windows XP и Windows 7. Всё работает очень хорошо и никаких проблем не возникает. Проблемы возникли у меня когда я попытался установить драйвера для 64 битной Windows 7. Дело в том, что этот драйвер не имеет цифровой подписи Microsoft и 64 битный Windows 7, будучи более защищенным в безопасности, блокирует все драйвера без цифровой подписи. Эту блокировку можно отключить, но это не совсем просто….. Так что имейте ввиду.
Заливаю прошивку в микроконтроллер я при помощи программы AvrOsp2. Она очень простая, не требует установки, бесплатна, поддерживает программатор AVR910 и огромное кол-во микроконтроллеров АВР, хорошо работает и имеет очень удобное меню для работы с FUSE битами. В общем, классная программка, мне она очень нравится, рекомендую! В видео ниже я показал процесс установки драйверов для AVR910, как настроить и пользоваться программой AvrOsp2.
В моей версии программатора я не установил выводной электролитический конденсатор на 22 мкФ, который устанавливается со стороны противоположной дорожкам и паяется в отверстия, которые находятся возле разъёма USB. Возможно потребуется установить дополнительный электролитический конденсатор ёмкостью 10-50мкФ параллельно впаянному керамическому конденсатору 0.1 мкФ, возле зелёного светодиода PWR. Ниже на картинке, от руки показаны места подключения.
Для работы программатора необходим микроконтроллер способный работать до 16 МГц. AVR AtMega8 выпускается в двух сериях, работающих до 8 МГц (серия L), они нам не подходят, так как проект работает от кварца на 12 МГц. Есть и обычная версия, которая работоспособна вплоть до частоты 16 МГц. Это то, что нам нужно. Ниже представлен кусочек даташита AVR AtMega8, в котором вычеркнуты версии микроконтроллеров которые не буду работать в данном программаторе, и выделены зелёной рамкой версии микроконтроллеров которые будут работать в данном проекте.
Микроконтроллеры фирмы ATMEL успели завоевать широкую популярность. Их программирование перед применением можно выполнить непосредственно в плате готового устройства через несложный ISP кабель, подключаемый к LPT порту персонального компьютера или кабель чуть посложнее, подключаемый к COM порту. Но в настоящее время всё больше материнских плат выпускается без того и другого, а в ноутбуках LPT исчез уже давно, сменившись интерфейсом USB. Впрочем, под этот интерфейс программаторы тоже существуют и доступны.
Для масштаба рядом лежит обычный 5 мм светодиод.
Этот программатор USBASP поддерживает следующие микроконтроллеры:
Список поддерживаемых МК
ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168,ATmega169, ATmega32, ATmega323,ATmega324, ATmega325,
ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega103, ATmega406, ATmega8515, ATmega8535
AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
AT89S51, AT89S52
AT86RF401
Вместе с программатором поставляется 10-жильный летночный кабель с разъёмами.
Питание программатора берется с USB порта компьютера.
На плате программатора имеется место для распайки LDO стабилизатора напряжения на 3,3В, но сам он не распаян.
Программатор поддерживается программой AVRDUDE. Сама программа консольная, но под неё есть . Утилиту avrdude можно найти в папке /hardware/tools/ в дистрибутиве Arduino IDE или скачать в интернете.
Перед началом работы с программатором потребуется скачать драйвер со .
Также программатор поддерживается средой разработки Arduino.
Для программатора существует прошивка под названием , превращающая его в STK500-совместимый и воспринимаемый фирменной средой разработки ATMEL AVR Studio, но в силу высокой вариативности китайского железа пользоваться ею можно только на свой страх и риск.
Планирую купить +32 Добавить в избранное Обзор понравился
+17 +42
Сегодня расскажу, о недорогим и очень простом программаторе USBAsp v.2.0 для микроконтроллеров AVR (основанный на дизайне Томаса Фишла), с его помощью можно прошивать контроллеры AVR по интерфейсу ISP (не выпаивая его с платы), а самое главное, можно прошить загрузочный сектор на контроллерах Arduino.
Технические параметрыНапряжение питания: 5 В, DC
Интерфейс: USB 2.0
Программирование/ чтение: Atmel (AVR)
Габариты: 70 мм x 18 мм x 10 мм
Поддержка операционных систем: Windows XP / 7 / 8 / 8.1 / 10.
Программатор USBAsp распространяется и открытым исходным кодом, так что при желании можно изготовить самому, скачав печатную плату и прошивку с сайта Thomas, из-за этого в различных интернет магазинах существует различные варианты программатора с одинаковым функционалом. В моем случае буду рассказывать о USBAsp V2.0 китайского производителя LC Technelogy.
Программатор собран на синий печатной плате, слева расположен USB-разъем необходимый для подключения к компьютеру. В центре располагается контроллер ATmega8A, рядом установлен кварцевый резонатор на 12 МГц и электрическая обвязка (резисторы, конденсаторы). Справа расположен 10-контактный разъем (два ряда, по пять выводов, шагом 2.54 мм), обеспечивающий обмен данными с прошиваемым микроконтроллером (интерфейс ISP). В комплекте поставляется кабель, с каждой стороны которого, установлен разъем IDC (10 выводов), для простоты прошивки некоторых плат (например Arduino), советую приобрести адаптер-переходник с 10-pin на 6-pin. Назначение выводов программатора USBAsp можно посмотреть на рисунке ниже, вид на стороне программатора.
Назначение выводов:
1 – MOSI
2 – VCC
3, 8, 10 – GND
4 – TXD
5 – RESET
6 – RXD
7 – SCK
9 – MISO
Световая индикация
Красный светодиод G — Включен
Красный светодиод R — Обмен данными
Перемычки
JP1 — POWER, управляет напряжением на разъеме ISP VCC (вывод 2), можно установить на + 3.3В, + 5В или вовсе убрать перемычку, если программируемое устройство, имеет собственный источник питания.
JP2 — SERVICE, обновления прошивки USBasp.
JP3 — SLOW, программирования на низких скоростях, если программируемое устройство, работает на частоте ниже 1.5 МГц, SCK (вывод 7) уменьшит частоту с 375 кГц до 8 кГц.
Принципиальная схема программатора USBAsp V2.0 можно посмотреть на рисунке ниже.
Список поддерживаемых AVR микроконтроллеров:
Mega Series: ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535,
Tiny Series: ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny2313, ATtiny2313A
Classic Series: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
Can Series: AT90CAN128
PWN Series: AT90PWM2, AT90PWM3
Подключаем программатор к USB порту на компьютере, если все нормально, на плате загорится красный светодиод. Далее операционная система начнет поиск драйвера
Так как, в операционной системе нету необходимого драйвера, в «Диспетчере устройств » появится устройство «USBAsp » с восклицательным знаком.
Скачиваем с цифровой подписью, разархивируем и запускаем «InstallDriver.exe»
Драйвер установлен, в «Диспетчере устройств » пропадет восклицательный знак с «USBAsp ».
Установка драйвера на Windows XP и Windows 7 аналогичная, программатор готов к работе.
Программу разработал «Боднар Сергей », работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe ».
В качестве примера, прошью китайскую плату в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры » и выбираем ATmega328P.
Далее, необходимо выбрать прошивку, в строке «Flash » нажимаем «. . . », переходим в папку «C:\Program Files\Arduino\hardware\arduino\avr\bootloaders\atmega » и выбираем «ATmegaBOOT_168_atmega328.hex », жмем «Открыть »
Подключаем программатор к плате «Arduino UNO R3 », и нажимаем кнопку «Программирование ».
В конце, выйдет диалоговое окно, о удачном окончании программировании.
С развитием компьютерной техники, с каждым разом становится все меньше и меньше компьютеров оснащенных COM и LPT портами. Это в свою очередь вызывает затруднения, в частности у радиолюбителей, связанные с сопряжением средств программирования микроконтроллеров с персональным компьютером.
В данной статье приведено описание USB программатора для микроконтроллеров AVR, который можно собрать своими руками. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK500 v2.
Описание USB программатора
USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита . На плате есть 2 перемычки: одна расположена под разъёмом SPI, вторая перемычка расположена неподалеку от того же разъема.
После того как все детали будут запаяны нужно прошить микроконтроллер Atmega8 прошивкой приведенной в конце статьи. Фьюзы, которые необходимо выставить при программировании микроконтроллера Atmega8, должны выглядеть следующим образом:
- SUT1 = 0
- BOOTSZ1 = 0
- BOOTSZ0 = 0
- CKOPT = 0
- SPIEN = 0
Необходимо напомнить, что в некоторых программах фьюзы выставляются противоположно этому. Например, в программе CodeVisionAVR необходимо проставить галочки напротив вышеперечисленных фьюзов, а в программе PonyProg наоборот.
Программирование Atmega8 через LPT-порт компьютера
Самый быстрый и дешевый способ запрограммировать Atmega8 – применить LPT-программатор для AVR. Подобная схема приведена ниже.
Питание микроконтроллера осуществляется от простого стабилизатора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.
При первом включении программы и при не подключенном контроллере, нажав кнопку «LPTpins», необходимо настроит выводы LPT-порта следующим образом:
В момент запуска UniProf, она автоматом определяет вид микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отклоняем подключение файла EEPROM.
Выставляем следующим образом фьюзы (для программы UniProF), нажав кнопку «FUSE»:
Для запоминания установок нажимаем все три кнопки «Write». Затем нажав на «Erase» предварительно очищаем память прошиваемого микроконтроллера. После этого уже жмем на «Prog» и дожидаемся завершения прошивки.
Настройка USB программатора
После того как наш микроконтроллер прошит, его необходимо установить в плату USB программатора. Далее подключаем программатор к USB порту компьютера, но пока питание не подаем.
Настройка порта:
Настройка терминала:
Настройка ASCII:
Теперь после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен промигать 6 раз и затем светится постоянно.
Для проверки связи USB программатора с компьютером 2 раза нажимаем клавишу «Enter» в программе HyperTerminal. Если все в порядке мы должны увидеть следующую картину:
Если это не так проверяем еще раз монтаж, особенно линию TxD.
Далее вводим версию программатора 2.10, так как без этого программатор не будет работать с программами «верхнего уровня». Для этого вводим «2» и нажимаем «Enter», вводим «а» (английская) и нажимаем «Enter».
USB программатор способен распознавать подключение программируемого микроконтроллера. Выполнено это в виде контроля «подтяжки» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:
- «0», «Enter» — режим выключен.
- «1», «Enter» — режим включён.
Изменение скорости программирования (1МГц):
- «0», «Enter» – максимальная скорость.
- «1», «Enter» – сниженная скорость.
На этом подготовительная работа завершена, теперь можно попробовать прошить какой-нибудь микроконтроллер.
(скачено: 1 203)
Собираем USB-программатор для AVR из ATmega328P и FT232
Из заметки Как собрать Arduino прямо на макетной плате вы можете помнить, что Arduino так легко и просто программируется благодаря залитому в его микроконтроллер бутлоадеру. Но использование бутлоадера не всегда удобно, так как он занимает лишнюю flash-память в микроконтроллере, тормозит при его запуске, не говоря уже о том, что в новые микроконтроллеры его нужно каждый раз прошивать. И ведь можно обойтись без него, если один раз обзавестись программатором.
Покупать готовый программатор, например, USBASP, как-то не спортивно. Да и используемые в нем 10-и пиновые IDC-разъемы я нахожу не особо удобными. В Arduino используется 6 пинов, значит нужен переходник. На макетке в два ряда пины вставить не получится, значит нужен еще один переходник. Да и ждать готовый USBASP из Китая долго. Можно было бы спаять свой. Но покупать используемую в нем ATmega8 специально для программатора не хотелось. Использовать же прошивку USBASP на ATmega328P у меня, увы, не получилось. Не исключаю, что просто руки кривые.
Так или иначе, решил попробовать сделать свой программатор. Долгой историей его разработки утомлять вас не буду, приведу лишь краткую версию. Так, в частности, выглядел первый работающий прототип:
В нижней части вы видите сам программатор, в верхней — микроконтроллер, который он программирует. Приведенный программатор представляет собой обыкновенную Arduino Uno, собранную из SMD компонентов. В нее заливается уже знакомый нам скетч ArduinoISP, превращающий Arduino в программатор. Новым для нас здесь является только чип FT232. Ранее мы уже использовали готовые USB-UART преобразователи на его базе, но в собственной цепи FT232 мы еще не использовали.
Что к чему у этой микросхемы подключается подробнейшим образом описано в даташите [PDF]. Притом, понадобились не все пины, только 1 (TX), 4 (VCCIO, к плюсу), 5 (RX), 7 (GND), 15 (USB D+), 16 (USB D-), 18 (GND), 20 (VCC), 21 (GND), 25 (AGND, к земле), 26 (TEST, к земле). Вжух, и с микроконтроллером можно общаться по USB через виртуальный последовательный порт!
Рассыпуха, используемая мной в программаторе:
Окончательный вариант программатора, вид сверху:
Вид снизу:
То, что текст на обратной стороне слегка сполз — это косяк Резонита. Думаю, проект просто криво импортнулся из EAGLE в используемый ими какой-то другой софт, и этого никто не заметил.
Прошить микроконтроллер, используемый в программаторе, можно двумя вариантами.
Первый способ — сделать это до впаивания, через переходник из TQFP32 в DIP. Такой переходник вы можете заметить на фотографии прототипа. Он легко изготовляется при помощи ЛУТ или пленочного фоторезиста и довольно часто пригождается. Так что, если у вас данного переходника еще нет, самое время им обзавестись. Затем прошивка с (опционально) бутлоадером Arduino заливаются, как обычно.
Второй способ — использовать в качестве такого переходника саму плату программатора. Припаиваем на нее все компоненты, а также один дополнительный провод к reset-пину микроконтроллера. Теперь можно прошить микроконтроллер так же, как и в первом случае, поскольку доступ ко всем необходимым пинам есть через гребенку и провод к reset-пину.
Как вы, вероятно, уже знаете, существует утилита avrdude, предназначенная специально для общения с программатором. К сожалению, использовать ее напрямую не очень удобно. Поэтому в дополнение к программатору я также написал небольшую обвязку для avrdude на Python. На момент написания эти строк скрипт умел следующее:
$ avrisp
Usage: /home/eax/bin/avrisp <dump|upload|info|set-fuses> [fuses-name]
Possible [fuses-name] values: arduino, atmega328p-1mhz, atmega328p-8mhz
Другими словами, он умеет заливать и дампить прошивку, отображать информацию о микроконтроллере, в частности, текущие fuse bits, а также выставлять предопределенные fuse bits — дэфолты для Arduino, заводские дэфолты для ATmega328P, при которых используются внутренние часы на 8 МГц и стоит флаг Divide clock by 8, и те же fuse bits, только без названного флага. Подробнее о fuse bits вы можете прочитать в полном даташите по ATmega328P [PDF] на странице 348, в секции 31.2. Но будьте осторожны! Выставив не те fuse bits, можно перевести микроконтроллер в такое состояние, в котором вы потом не сможете до него достучаться обычными средствами.
Если в своих проектах вместо кварцевого резонатора вы решите использовать часы микроконтроллера, учтите, что для этого в ранее использованном нами файле arduino.mk понадобится закомментировать строку:
# BOARD_BUILD_FCPU := $(call readboardsparam,build.f_cpu)
… а в Makefile дописать частоту микроконтроллера, например:
# для фьюзов с именем atmega328p-1mhz
BOARD_BUILD_FCPU := 1000000
Все исходники к этой заметке, включающие в себя принципиальную схему и плату в форматах EAGLE, код скетча ArduinoISP, который я одолжил из Arduino IDE, а также скрипт avrisp.py, вы найдете в этом репозитории на GitHub. Как обычно, буду рад вашим дополнениям и вопросам!
Метки: AVR, Электроника.
USBasp программатор AVR микроконтроллеров делаем сами
В инете сообщено, что USBasp — один из самые простых для повторения AVR USB программаторов. + требует минимум внешних компонентов, имеет пара готовых вариантов разводки печатной платы и оболочек для программирования, и может трудиться под Linux и MacOS.
То что необходимо! Делаем )))
Процесс изготовления
1. Отыскал схемку программатора на контроллере Mega8. Требуется минимум навестных элементов
2. Модифицировал печатную плату под собственный корпус. Было нужно мало попотеть, чтобы впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Итог превзошел мои ожидания )
3. Переносим рисунок с чудо-бумаги на плату. Дорожки мало расплылись — не беда. Исправим это посредством иголки (булавки, либо еще чего острого).
4. Процесс травления уже сзади. Плата промыта и просушена.
5. Стираем растворителем тонер — приобретаем готовые дорожки для будущего устройства
6. Потом слесарно-монтажные работы — пилим, сверлим, точим, лудим (последовательность выбирайте сами)
7. Оказалась компактная плата, пока еще без элементов.
8. Пичкаем плату нужными элементами. До тех пор пока без светодиодов и разъем IDC-10 через чур долгий (торчит из корпуса)
9. Выпаиваем Г-образный IDC-10 разъем. Вместо оплетки для лужения (и других премудростей) применял простой многожильный провод. Оказалось бережно и скоро )))
10. Припаиваем SMD-компоненты. Вид со стороны дорожек. Все делалось паяльником на 60Вт с жалом 5мм в диаметре. Таким необходимо еще наловчиться…
11. Не все резисторы оказалось перевести на SMD. Вид со стороны компонентов.
Как видно, контроллер — USB — IDC-10 хорошо расположены… Кварц забрал простой, благо высота корпуса разрешает.
12. А вот и корпус, куда будет помещен программатор. Весьма полезная вещь )
13. Устройство благополучно внедрено в «шкурку сплиттера». Компактно вышло.
14. Размер платы если сравнивать с 5 рубленными «монетками»
16. Конечный результат…
Доработанная печатная плата USBasp программатора: СКАЧАТЬ в формате Lay [13,91 Kb] (cкачиваний: 213)
Программирование микроконтроллера Mega8
1. Прошиваем микроконтроллер посредством этого программатора:
Несложной LPT программатор AVR микроконтроллеров (5-ть проводков)
Заливаем файл firmware называющиеся «usbasp.atmega8.2007-10-23.hex» из архива в конце статьи…
Подключаем к программатору адаптер для программирования микроконтроллеров.
Эти для независимого изготовления возможно забрать тут…
Печатная плата адаптера в формате lay для Sprintlayout [12,78 Kb] (cкачиваний: 401)
При подключении USB будет всегда светиться зеленый (красный) светодиод
Установка драйвера для USBasp
1. Возможно было запрограммировать и в самом USBasp программаторе, подключив к нему несложный программатор в соответствии с распиновке. В случае если все собрано и запрограммировано правильно, то устройство при подключении к ПК определится и «попросит» установить двайвер.
2. На что ему культурно ответим выбрав папку со скаченными и разархивированными двайверам
3. Драйвера удачно установятся, в случае если схема собранна правильно и МК также прошит правильно.
4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device.
Радуемся, и тестируем )
Проверка работоспособности программатора
1. В качестве програмки применял avrdude в оболочке Sinaprog1.5.5.10.
Возможно применять и приложенное к архиву оболочкуUSBASP_AVRDUDE_PROG
Для проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, возможно заливать прошивку в Attiny13A .
Нужные эти для повторения устройства находятся в этом архиве:
Firmware, программа, печатка, драйвер [992,87 Kb] (cкачиваний: 690)
Всем удачи!
В обязательном порядке к прочтению:
Недорогой USBASP Программатор для AVR v2.0
Статьи как раз той тематики,которой Вы интересуетесь:
Как довольно часто следует сделать балансировку
Балансировка колес нужна любой машине а также мотоциклу. Кроме того одно своевременно не сбалансированное колесо может привести к колебательным процессам всей подвески, а также всей рамы и кузова….
Что делать при неожиданной поломке автомобиля?
При неожиданном выходе из строя автомобиля все решают мгновенья, исходя из этого у водителей не остается времени на исследование обстановки и раздумья, соответственно в экстремальных обстановках залогом успеха будет…
Из-за чего не приходит транспортный налог и что в этом случае делать?
водитель и Закон Срок налоговых платежей за транспорт, как и налогов на недвижимость либо почву, за 2015 год завершился 1.12.2016 года. Законопослушные плательщики налогов заблаговременно уплатили все…
Усилитель для сабвуфера на авто делаем сами
Воображаю конструкцию самодельного автомобильного усилителя, что рекомендован для питания сабвуферных головок средней мощности. Этот усилитель собран на широко-популярной микросхеме TDA…
Автомобильный усилитель — делаем сами
Простой, достаточно замечательный и недорогой автомобильный усилитель возможно реализовать с минимальными затратами всего за один сутки. Данный проект призван доказать — на какое количество мелким и недорогим может…
Адаптеры для программирования микроконтроллеров АVR. USBasp программатор AVR микроконтроллеров делаем сами Универсальный адаптер для avr программатора своими руками
Понадобилось как-то мне прошить пару микросхем в корпусах SOIC разной ширины.
У меня было три варианта:
- Купить готовый ZIF-переходник.
- Подпаять проводки к каждой ноге, подключить к программатору, прошить, отпаять. И так два раза.
- Изготовить пару переходников под разную ширину корпусов.
Вариант с покупкой не подходит. В моём городе нет радиомагазинов… Итог: долго, дорого.
Вариант с подпайкой тоже не нравится. С учетом того, что количество микросхем может быть, скажем, 20 штук… Итог: пайка превращается в сущий кошмар.
Было однозначно решено — самостоятельно изготовить переходники. Нам понадобятся две материнские платы от старых компьютеров. На плате находим вот такую «кроватку» с микросхемой BIOS. Извлекаем микросхему и приступаем к демонтажу «кроватки».
Так как выводы панельки располагаются под ней, отпаять её феном становится крайне затруднительно — пластиковый корпус скорее всего расплавится. Будем демонтировать другим способом. Поддеваем «кроватку» снизу при помощи отвёртки.
Пластиковый корпус снимется
А контакты останутся на плате.
Теперь их можно без проблем отпаять при помощи термофена.
После отпайки вставляем контакты обратно в «кроватку», но только по верхней и нижней сторонам. Слева и справа контакты не вставляем.
Выгибаем контакты на внешнюю сторону.
Теперь при помощи дремеля вырезаем среднюю часть «кроватки», неровности на торцах обрабатываем напильником. В итоге получится «кроватка» меньшей ширины, состоящая из двух половинок.
Разводим плату, травим, лудим, сверлим, припаиваем «кроватку». Файл печатной платы можно скачать в конце статьи.
Ширина подбирается таким образом, чтобы туда свободно помещалась микросхема, выводами вверх. Для узкого SOIC корпуса это выглядит так.
А для широкого — вот так.
Для надёжности фиксируем выводы на термосопли.
В итоге получилось два переходника.
Вставляю переходник в панельку на программаторе.
Затем в «кроватку» кладу микросхему вверх ножками, слегка прижимаю кончиком карандаша или зубочистки, и приступаю к работе.
В инете сказано, что USBasp — один из наиболее простых для повторения AVR USB программаторов . + требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.
То что нужно! Делаем)))
Процесс изготовления
1. Нашел схемку программатора на контроллере Mega8. Требуется минимум навестных элементов
2. Модифицировал печатную плату под свой корпус. Пришлось немного попотеть, чтоб впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Результат превзошел мои ожидания)
3. Переносим рисунок с чудо-бумаги на плату. Дорожки немного расплылись — не беда. Исправим это с помощью иголки (булавки, или еще чего острого).
4. Процесс травления уже позади. Плата промыта и просушена.
5. Стираем растворителем тонер — получаем готовые дорожки для будущего устройства
7. Получилась компактная плата, пока еще без элементов.
8. Пичкаем плату нужными элементами. Пока без светодиодов и разъем IDC-10 слишком длинный (торчит из корпуса)
9. Выпаиваем Г-образный IDC-10 разъем. Вместо оплетки для лужения (и прочих премудростей) использовал обычный многожильный провод. Получилось аккуратно и быстро)))
10. Припаиваем SMD-компоненты. Вид со стороны дорожек. Все делалось паяльником на 60Вт с жалом 5мм в диаметре. Таким нужно еще наловчиться…
11. Не все резисторы получилось перевести на SMD. Вид со стороны компонентов.
Как видно, контроллер — USB — IDC-10 плотно расположены… Кварц взял обычный, благо высота корпуса позволяет.
12. А вот и корпус, куда будет помещен программатор. Очень полезная штука)
13. Устройство благополучно внедрено в «шкурку сплиттера». Компактно вышло.
14. Размер платы по сравнению с 5 рубленными «монетками»
Программирование микроконтроллера Mega8
1. Прошиваем микроконтроллер с помощью этого программатора:
Простой LPT программатор AVR микроконтроллеров (5-ть проводков)
Заливаем файл прошивки под названием «usbasp.atmega8.2007-10-23.hex» из архива в конце статьи…
Подключаем к программатору адаптер для программирования микроконтроллеров.
Данные для самостоятельного изготовления можно взять здесь…
При подключении USB будет постоянно светиться зеленый (красный) светодиод
Установка драйвера для USBasp
1. Можно было запрограммировать и в самом USBasp программаторе, подключив к нему простой программатор согласно распиновке. Если все собрано и запрограммировано верно, то устройство при подключении к ПК определится и «попросит» установить двайвер.
2. На что ему вежливо ответим выбрав папку со скаченными и разархивированными двайверами.
3. Драйвера успешно установятся, если схема собранна верно и МК тоже прошит верно.
4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device .
Радуемся, и тестируем)
Проверка работоспособности программатора
1. В качестве програмки использовал avrdude в оболочке Sinaprog1.5.5.10.
Можно использовать и приложенное к архиву оболочкуUSBASP_AVRDUDE_PROG
Для проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, можно заливать прошивку в Attiny13A .
Необходимые данные для повторения устройства находятся в этом архиве.
Всем привет! В этой статье я расскажу, как собрать простой адаптер для подключения микроконтроллеров avr к программатору. Если вы собирали что-то на микроконтроллере, то наверняка столкнулись с проблемой подключения микросхемы к программатору. С данной проблемой столкнулся и я, когда решил собрать моё первое устройство на МК — металлоискатель Tracker PI-2. Первое, что приходит в голову, так это просто подпаять провода к панельке контроллера и к разъёму программатора. Так и сделал. Но как оказалось — не всё так просто. Чтобы прошить микросхему, нужно было подпаять кварц с двумя конденсаторами и это было сделать не совсем удобно, но я поленился сделать печатную плату — а зря. Как показала практика, навесной монтаж здесь не очень подходит — это очень не надежно. Поэтому при сборке моего второго металлоискателя — , все-таки сделал плату для подключения микроконтроллеров к программатору.
Схема адаптера
Нажмите на схему для увеличения
Итак, нам понадобиться:
- Небольшой кусок текстолита — 50 х 80 мм
- Панельки под микросхемы
- Несколько конденсаторов и резистор (номиналы смотрите на схеме)
- Разъём для подключения программатора
Ну и в принципе всё. Если у вас это всё есть, можно приступать к сборке. Сначала нужно сделать печатную плату. У меня получилось не очень аккуратно, так как хотел сделать всё как можно быстрее, а когда спешишь — сами знаете что получается)
Когда плата готова, можно приступать к сборке. Не знаю как вам, а мне удобно когда все детали под рукой и сразу знаешь, куда какая деталь. Для этого делаю плату из картона и втыкаю все детали туда, а потом по одной детальке переношу на саму плату. Это особенно удобно когда много резисторов, ведь замерять их с паяльником в руках не совсем просто. Вот как это выглядит:
Лудим плату и впаиваем детали.
Перед пайкой панелек, нужно удалить лишние выводы, я их вытащил с помощью плоскогубцев. Если вы не будете использовать разъем для внешнего питания, то можно не припаивать стабилизатор и электролитические конденсаторы. Я их не припаивал. Вот сама плата уже с впаянными деталями:
Также сделал провод, который идет от программатора к плате.
Программатор, которым пользуюсь —
Главное, не перепутайте провода от программатора, иначе можно спалить микроконтроллер или даже сам программатор. Вот что получилось в итоге:
Многие радиолюбители (и я в том числе), наконец-то решившиеся поддаться соблазну использования в своих работах микроконтроллеры (МК), сталкиваются с необходимостью программирования этих самых МК. Кто-то опускает руку в карман, достает банкноты, и без всякого угрызения совести отдает их «дяде», получая взамен черную или цветную коробочку с неизвестным содержимым (или известным) за большие деньги, а кто-то пытается сделать программатор своими руками, при этом получая дополнительный опыт. Поприветствуем этих энтузиастов и попробуем хоть немного посодействовать им в их нелегком, но очень интересном и благородном труде.
Второй адаптер для AVR — это коммерческий вариант адаптера, поэтому ни печатки ни подробной схемы не привожу.
Скажу по секрету, по этому фото была восстановлена схема и печатка, и даже сделан мною адаптер для себя. Очень он мне нравится, с помощью его даже кварцы проверяю. Печатной платы для раздачи нет, но есть фото и sprintlayout. Выводы делайте сами:)
Еще на форумах был найден такой вот похожий адаптер, тоже грамотно выполнен, но уже для МК в корпусах SOI и TQFP
печатная плата от автора plumber и еще одна .
Про адаптеры для Pic контроллеров и микросхем последовательной памяти читайте в последующей статье «PIC & SEEPROM Adapters». Это будет уже чисто моя разработка, так что печатку и схему обязательно предоставлю. При написании статьи были использованы фото и другие материалы, найденные в интернете на форумах. На авторство никак не претендую, материал использован исключительно в просветительных целях. По конкретным вопросам пишите в личку. С уважением, Oleg63m.
Внимание, в статье есть неточности! Один из внимательных читателей reis заметил их и любезно поделился с нами, за что скажем ему спасибо. В ATmega64 и ATmega128 выводы MOSI и MISO не применяют для ISP. Внимательно смотрите ДатаШит! Например для ATmega128 сигналы MISO подключают к ножке PE1, MOSI подключают к ножке PE0. В первоисточнике, автор в комментариях сам указывает, что 128 разведена не правильно. Кстати и в стате, плата которая в архиве имеет неточность. Посадочное место AtMega какое-то кривое. А исправить все легко — MOSI —> 2-я нога, MISO —> 3-я нога для 128.
USBasp – USB программатор для микроконтроллеров Atmel AVR « схемопедия
USBasp – простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.
Особенности программатора:
– работа под любой платформой: Windows, Linux и Mac OS X
– какие-либо специальные компоненты или smd не нужны
– скорость программирования до 5 кБ/сек
– SCK-джампер позволяет программировать низкоскоростные контроллеры (< 1.5МГц)
– в планах: последовательный интерфейс (например для отладки)
Схема программатора
Схема предназначена для программирования только 5В кристаллов. В других случаях, уровни должны быть преобразованы!
Заливка прошивки
Т.к. в схеме программатора используется микроконтроллер, то его необходимо предварительно прошить. Для этого подключите другой рабочий программатор и установите джампер J2, для активации функции обновления прошивки.
Прошейте программатор при помощи прошивки: «bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex» или «bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex«
Необходимо будет установить фьюзы для подключения внешнего кварца
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff
Установки джамперов
J1 – источник питания (от USB, либо внешний источник). Будьте аккуратнее, т.к. схема не содержит какой-либо защиты от КЗ.
J2 – обновление прошивки (сам себя обновлять не может!). Установленный джампер позволяет программировать контроллер программатора другим рабочим программатором.
J3 – если программируемый МК низкоскоростной <1.5 МГц, то необходимо установить данный джампер. Тогда SCK уменьшится с 375 кГц до примерно 8 кГц.
Установка драйверов под Windows
Подключите программатор USBasp к USB. Windows найдет устройство и попросит указать драйвер, укажите ему папку «bin/win-driver«. Windows установит драйвер.
Теперь можно запустить avrdude, к примеру:
1. Войти в терминальный режим, МК: AT90S2313: avrdude -c usbasp -p at90s2313 -t
2. Записать main.hex в flash-память МК ATmega8: avrdude -c usbasp -p atmega8 -U flash:w:main.hex
Сборка их исходников (под Linux)
Компиляция прошивки:
1. Установите GNU toolchain для микроконтроллеров AVR (пакеты avr-gcc, avr-libc)
2. Войдите в директорию firmware/
3. Выполните команду «make main.hex«
4. Прошейте «main.hex» ATMega(4)8. Например при помощи uisp или avrdude (используйте
Makefile с опцией «make flash«). Для прошивки установите джампер J2 и подключите USBasp к рабочему программатору.
Также нужно установить фьюзы для работы от внешнего кварца (используйте Makefile
с опцией «make fuses«).
Компиляция avrdude:
ПО AVRDUDE поддерживается программатором USBasp начиная с версии 5.2.
1. Установите пакет libusb
2. Скачайте последнюю версию avrdude
3. cd avrdude-X.X.X
4. Сконфигурируйте:
./bootstrap
./configure
5. Компиляция:
make
make install
Программы для работы с программатором
- AVRDUDE – поддерживается USBasp начиная с версии 5.2
- BASCOM-AVR – поддерживается USBasp начиная с версии 1.11.9.6
- Khazama AVR Programmer – Windows XP/Vista GUI приложение для USBasp и avrdude
- eXtreme Burner – AVR – программа Windows GUI для USBasp
Скачать прошивку, исходники, драйверы: usbasp.2011-05-28.tar.gz
Последнюю версию всегда можно взять на официальном сайте USBasp
Печатные платы
Под данный программатор разработано более 10 различных вариантов разводки печатной платы, которые можно скачать, либо на страничке официального сайта.
Перевод: Колтыков А.В. для сайта cxem.net
ПрограмматорUSBasp для Atmel AVR v1.0
Введение
Этот проект направлен на разработку и изготовление нашего собственного USBasp, который можно использовать для внутрисхемного программирования микроконтроллеров Atmel AVR. Этот проект / программатор совместим со многими микроконтроллерами серии Atmega с логикой 5V. Открытый исходный код проекта — Thomas Fischl. Представленный ниже дизайн основан на его работе и вкладе. Идея этой версии USBasp состоит в том, чтобы спроектировать ее с использованием компонентов THT и при этом сохранить небольшой форм-фактор.В этом конкретном варианте разъем ISP представляет собой 6-контактный разъем, который находится непосредственно на платах Arduino, таких как Arduino UNO, MEGA, Nano и многих других платах разработки Atmega. Интерфейс USB представляет собой разъем USB Micro B, который поддерживает любой кабель Micro USB.
Основные преимущества использования USBasp:
- Сохраняет флеш-память, используемую загрузчиком
- Выполнение основной программы начинается сразу после включения MCU, нет задержки загрузчика
- Последовательное USB-соединение с Arduino постоянно свободно для последовательной связи
Необходимое условие
Для этого проекта хорошо иметь базовые знания в области проектирования печатных плат и пайки компонентов.Это не очень сложный проект. Базовое понимание электроники также полезно для идентификации компонентов и их правильной сборки.
Спецификация оборудования
Ниже приведен список материалов, которые я использовал для проекта. Настоятельно рекомендуется покупать их прямо по ссылке ниже или добавлять в корзину.
Спецификация программного обеспечения
Описание оборудования
AVR Atmega8
ATmega8 — это маломощный 8-разрядный КМОП-микроконтроллер, основанный на архитектуре AVR RISC.Выполняя мощные инструкции за один такт, ATmega8 достигает пропускной способности, приближающейся к 1 MIPS на МГц, что позволяет разработчику системы оптимизировать энергопотребление в зависимости от скорости обработки.
ATmega8 обеспечивает следующие функции: 8 Кбайт внутрисистемной программируемой флэш-памяти с возможностью чтения-во время записи, 512 байт EEPROM, 1 Кбайт SRAM, 23 линии ввода-вывода общего назначения, 32 рабочих регистра общего назначения, три гибких Таймер / счетчики с режимами сравнения, внутренними и внешними прерываниями, последовательным программируемым USART, побайтно-ориентированным двухпроводным последовательным интерфейсом, 6-канальным АЦП (восемь каналов в пакетах TQFP и QFN / MLF) с точностью до 10 бит, программируемым сторожевым таймером с внутренним генератором, последовательным портом SPI и пятью программными режимами энергосбережения.В режиме ожидания процессор останавливается, позволяя
SRAM, таймеру / счетчику, порту SPI и системе прерываний продолжать работу.
- Блок-схема AVR Atmega8
- Схема контактов AVR Atmega8
- 3D-рендеринг USBasp
- 3D-рендеринг USBasp
Описание программного обеспечения
KiCad
KiCad (произносится как «Key-CAD») — это бесплатный программный пакет для автоматизации электронного проектирования (EDA). Это облегчает разработку схем электронных схем и их преобразование в конструкции печатных плат.Он имеет интегрированную среду для создания схем и проектирования компоновки печатной платы, а также содержит инструменты в пакете для создания ведомости материалов, иллюстраций, файлов Gerber и трехмерных видов печатной платы и ее компонентов.
Задиг
Zadig — это приложение Windows, которое устанавливает общие драйверы USB, такие как WinUSB, libusb-win32 / libusb0.sys или libusbK, для облегчения доступа к USB-устройствам.
Это может быть особенно полезно в случаях, когда:
- необходимо получить доступ к устройству с помощью приложения на основе libusb
- необходимо обновить общий драйвер USB
- необходимо получить доступ к устройству с использованием WinUSB
Примечание: «на основе libusb» выше означает приложение, которое использует libusb, libusb-win32 или libusbK.
AVRDUDE
AVRDUDE — это утилита для загрузки / выгрузки / управления содержимым ROM и EEPROM микроконтроллеров AVR с использованием техники внутрисистемного программирования (ISP).
Он имеет интерфейс командной строки для загрузки и выгрузки функций / двоичных файлов (включая обработку байтов предохранителей). Поддерживает широкий спектр аппаратного обеспечения для программирования, от дешевых разъемов ISP, которые подключают интерфейс ISP AVR напрямую к параллельному порту компьютера (без дополнительных схем) или последовательному порту (требуются некоторые дополнительные схемы), до более продвинутых адаптеров ISP с использованием микросхемы буфера / драйвера ( как 74HC373), вплоть до (более сложных) последовательно подключенных программаторов, таких как устройства ISP в стиле AVR910, плата Atmel STK500 и Atmel JTAG ICE mkII.Большинство популярных адаптеров поставляются предварительно определенными, добавить новый адаптер параллельного порта так же просто, как отредактировать файл конфигурации (перекомпиляция не требуется).
AVRDUDE также поддерживает USBasp в качестве устройства программирования.
Руководство по программированию и его использование рассматриваются в другой статье. Прилагаемая прошивка содержит готовые двоичные файлы, которые можно записать на Atmega8, чтобы начать работу.
Схема
Приведенная ниже схема проста и не содержит каких-либо сложных схем.Сначала схема создается в KiCad. Файлы доступны для скачивания в конце страницы.
Основными компонентами конструкции USBasp являются микроконтроллер Atmega8, разъем USB и разъем ISP.
Так как Atmega8 не имеет выделенного периферийного USB-устройства. Pin PD2, PB0, PB1 биты для эмуляции USB-связи. Оригинальный дизайн включает 10-контактный разъем ISP с двумя контактами для UART Tx и Rx, но он практически не используется, поэтому на этой схеме эти два контакта удалены и используется 6-контактный ISP.
USBasp: внутрисхемный программатор для схемы печатной платы микроконтроллера Atmel AVRСхема расположения печатной платы
Компоновка печатной платы полностью разработана в KiCad. 3D-вид / рендеринг печатной платы также доступен в KiCad. Программатор USBasp разработан для повышения удобства использования, уменьшения занимаемой площади и эстетики.
Заключение
Этот конкретный проект дает возможность узнать о конструкции печатной платы, выборе компонентов, стоимости продукта, планировании и многом другом. Лучшее в этом проекте — то, что он поощряет культуру DIY и Maker, что само по себе удивительно.Я призываю всех заняться этим проектом и создать свои собственные модули и платы для своих проектов.
Объем улучшений
Я упомянул этот проект как v1.0, так как в нем есть много вещей, которые нужно улучшить. Одним из основных улучшений, которые можно сделать, является использование всех компонентов SMD для дальнейшего уменьшения форм-фактора, защиты от обратной полярности и т. Д.
Скачать
Спасибо, что прочитали этот проект, я высоко ценю ваше время и усилия.
Использование AVR-USBasp для программирования Arduino
Как правило, существует два метода загрузки программы в Arduino:
- Метод USB / последовательной связи
- Метод ISP
Первый метод является наиболее распространенным методом, который реализуется с использованием Чип / преобразователь переходника USB-последовательный порт. Например, CT-UNO использует микросхемы FTDI FT23x, которые являются популярными микросхемами переходников USB-последовательный порт, а BBFuino требует преобразователя USB-последовательного порта UC00A для загрузки программы.В то время как оригинальный Arduino UNO использует Atmega32u4 в качестве микросхемы USB для последовательного интерфейса (аналогично CT-UNO). Метод, примененный к CT-UNO, может быть применен к Arduino UNO.
Другой метод — это метод ISP, где требуется программист ISP. ISP (внутрисистемное программирование) — это метод, используемый для программирования этих свежих пустых микросхем Atmel AVR. Если в микросхемы Atmel AVR предварительно не загружена прошивка загрузчика, можно использовать метод ISP для загрузки программы в микросхемы; метод загрузчика работать не будет. Как и в руководствах «Использование ISP Programmer для записи загрузчика в Arduino» и «Запись загрузчика Arduino с AVR USBasp», мы использовали ISP для записи загрузчика в Arduino.Из этого туториала Вы узнаете, как загрузить программу в Arduino с помощью программатора ISP — AVR USBasp, и в этом руководстве есть 3 сеанса:
- Загрузка программы в CT-UNO
- Загрузка программы в BBFuino
- Загрузка программы в автономный Arduino
Введение
AVR USBasp — это внутрисхемный программатор USB, который может использоваться для программирования большинства микроконтроллеров Atmel AVR. Он просто состоит из ATmega8 и пары пассивных компонентов, т.е.е. резисторы, конденсаторы, светодиоды и т. д. Этот программатор использует драйвер USB только для прошивки, и специальный контроллер USB не требуется. AVR USBasp поставляется с 6-жильным кабелем. На рисунках ниже показаны все отверстия в головке кабеля:
На этом рисунке показан вид сверху и помечены каждое из отверстий. Обратите внимание на квадрат, указывающий на ориентацию вашего кабеля.
Заголовок ISP состоит из 2×3 контактов. Вы заметите, что рядом с заголовком ISP есть метка «1» или метка со стрелкой.Эта метка указывает, что контакт рядом с ним является контактом 1 заголовка ISP.
Перед тем, как перейти к следующему шагу, убедитесь, что вы установили драйвер AVR USBasp на свой компьютер. В противном случае загрузите драйвер AVR USBasp и следуйте инструкциям в руководстве пользователя AVR USBasp.
Сессия 1: Загрузка программы в CT-UNO
- Вставьте разъем кабеля программатора ISP в заголовок ISP. Пластиковый наконечник радужной кабельной головки и метка со стрелкой должны находиться на одной стороне.Вы заметите, что светодиод PWR горит. Если это не так, проверьте соединение между головкой кабеля и разъемом ISP.
- Откройте программу Arduino IDE. Если вы используете старую версию Arduino IDE, вы можете получить некоторую ошибку. Загрузите последнюю версию с веб-сайта Arduino. Я использую Arduino IDE версии 1.0.5, и она отлично работает.
- Затем вызовите любой пример исходного кода. В этом руководстве будет использоваться пример Blink, который можно вызвать из меню File> Example> Basics> Blink.
Эскиз примера Blink: - Выберите «USBasp» в меню «Инструменты»> «Программист».
- Выберите «Загрузить с помощью программатора» в меню «Файл». Процесс загрузки займет минуту.
Если вы выберете «Загрузить» или нажмете кнопку «Загрузить», вы получите сообщение об ошибке, как показано на рисунке ниже. Это связано с тем, что AVR USBasp не установлен в качестве последовательного порта на нашем ПК, а функция «Загрузить» означает загрузку программы через последовательный порт. Не волнуйтесь, IDE все равно будет загружать через USBasp. - Процесс загрузки завершается, когда Arduino IDE отображает «Готово»
Сессия 2: Загрузка программы в BBFuino
BBFuino использует ATmega328 IC вместо ATmega328P IC (в то время этот учебник написан).
Разница между ATmega328 и ATmega328P в том, что ATmega328P имеет технологию Atmel picoPower, а ATmega328 — нет. Идентификационная подпись ATmega328 и ATmega328P также различается.ATmega328 имеет подпись 0x1E 0x95 0x14 , а ATmega328P имеет подпись 0x1E 0x95 0x0FB . В остальном ATmega328 и ATmega328P архитектурно идентичны во всех смыслах. Чтобы загрузить скетчи в ATmega328, необходимо немного изменить конфигурацию:
- Найдите свой каталог Arduino. В моем случае мой каталог Arduino — C: \ Users \ user \ Desktop \ arduino-1.0.5
Затем найдите каталог hardware \ tools \ avr \ etc. Вы заметите, что есть файл с именем «avrdude.conf »внутри этого каталога. - Сделайте копию файла «avrdude.conf» для резервного копирования.
- Откройте файл «avrdude.conf» с помощью WordPad.
- Найдите «m328p».
- Ищите «подпись». Под «m328p» должно быть несколько строк.
Измените 0x1e 0x95 0x0f на 0x1e 0x95 0x14
- Нажмите «Сохранить», чтобы сохранить отредактированный файл конфигурации и закрыть его. Теперь вы изменили конфигурацию Arduino IDE.
Затем подключите головку кабеля программатора ISP к заголовку ISP BBFuino. Пластиковый выступ на головке кабеля «радуга» должен находиться на той же стороне, что и этикетка «ISP» на BBFuino.
Процедура загрузки эскизов в BBFuino аналогична сеансу 1:
- Откройте программное обеспечение Arduino IDE и вызовите любой пример. В этом руководстве будет использоваться пример Blink, который можно вызвать из меню File> Example> Basics> Blink.
- Выберите «USBasp» в меню «Инструменты»> «Программист».
- Выберите «Загрузить с помощью программатора» в меню «Файл». Процесс загрузки завершается, когда в Arduino IDE отображается сообщение «Выгрузка завершена».
Сессия 3: Загрузка программы в автономный Arduino
В этом сеансе требуется следующее оборудование:
Создайте схему автономной Arduino, как показано ниже:
Цифры ниже будут Хорошая ссылка при подключении AVR USBasp и автономной Arduino:
Источник: Arduino.ccНа автономной Arduino нет заголовка ISP. Поэтому мы используем перемычку «папа-папа», чтобы выполнить некоторую проводку между кабельной головкой и автономным Arduino. См. Информацию о подключении в таблице ниже:
Программатор ISP Кабельная головка | Автономный Arduino | ||
Контакт 1: MISO | PB4 (MISO / цифровой контакт 12) | Контакт 902 VCC | VCC |
Контакт 3: SCK | PB5 (SCK / цифровой контакт 13) | ||
Контакт 4: MOSI | PB3 (MOSI / цифровой контакт 11) | ||
Контакт 5: СБРОС 902 902 PC6 (СБРОС) | |||
Контакт 6: GND | GND |
Процедура загрузки эскизов в автономную Arduino аналогична сеансу 1.Выберите «USBasp» в меню «Инструменты»> «Программист» и выберите «Загрузить с помощью программатора».
Процесс загрузки завершен, когда в Arduino IDE отображается сообщение «Done uploading».
Отлично! Я закончил рассказывать о методе ISP для загрузки скетчей в Arduino, надеюсь, это будет полезно, и если у вас есть какие-либо вопросы, обсудите их на нашем техническом форуме, так как мы редко проверяем раздел комментариев на сайте руководства. Обратите внимание, что для этого метода существует ограничение, то есть прошивка загрузчика заменяется исходным кодом примера мигания.Чтобы вернуться к загрузке эскизов через USB, вам нужно записать загрузчик в чип на плате Arduino. Обратитесь к разделу Запись загрузчика Arduino с помощью AVR USBasp, чтобы записать загрузчик на Arduino с помощью AVR USBasp.
РУКОВОДСТВО ПО ОБНОВЛЕНИЮ ПРОШИВКИ USBASP — BuildCircuit.COM
Программатор USBASP является важным инструментом / аксессуаром для инженеров встраиваемых систем / разработчиков микропрограмм. Это USB ICSP (внутрисхемный последовательный программатор), который позволяет разработчикам легко загружать прошивки / загрузчики на микроконтроллеры AVR.В отличие от того, что вы найдете для последовательных программистов, таких как преобразователи USB-TTL, он не использует выделенный чип, поскольку он работает на atmega88 (или atmega8), и использует драйвер USB только для прошивки без специального контроллера USB.
USBASP ProgrammerХотя этот подход с драйвером USB только для микропрограмм увеличивает его совместимость, он также создает серьезную проблему для программиста, поскольку требует регулярных обновлений для совместимости с достижениями в программировании микроконтроллеров. Одним из таких достижений является интерфейс Tiny Programming Interface (TPI) , который позволяет внешним программистам получать доступ к энергонезависимой памяти (NVM) некоторых микроконтроллеров Atmel начального уровня, таких как серия ATtiny.
Несмотря на то, что такие функции, как TPI , существуют уже некоторое время, использование программатора USBASP все еще является проблемой, поскольку как старые, так и новые устройства USBASP требуют обновления прошивки, прежде чем их можно будет использовать. Чтобы помочь пользователям, которым нужна эта функция, в сегодняшнем руководстве будет освещен процесс обновления прошивки на вашем программаторе USBASP до последней версии.
НЕОБХОДИМЫЕ КОМПОНЕНТЫ
Для обновления прошивки требуются следующие компоненты:
- Программист USBASP
- Arduino Uno (нано должно работать одинаково)
- Перемычки
- Макет
Программисты USBASP, независимо от бренда, обычно имеют одинаковую конфигурацию, поэтому это руководство должно работать независимо от типа или бренда, который у вас есть.
ПОДГОТОВЬТЕ ARDUINO UNO
Для загрузки прошивки в USBASP требуется программист. В сегодняшнем руководстве мы будем использовать Arduino Uno в качестве этого программатора. Чтобы сделать Arduino программистом, нам нужно загрузить скетч, доступный среди примеров в Arduino IDE, на плату Arduino. Для этого выполните следующие действия:
- Перейти к файлу > Примеры > ArduinoISP
- Подключите плату Arduino к вашему ПК
- Выберите порт и тип платы и Щелкните на Загрузить
После этого плата Arduino готова к работе в качестве программиста.
СХЕМЫ
Затем нам нужно подключить USBASP к плате Arduino. С помощью перемычек и макета (при необходимости) соедините плату Arduino и устройство USBASP, как показано на изображении ниже:
СхемаПоскольку модель фритзинга не является точной копией популярных типов USBASP, ниже представлена карта контактов, показывающая, как Arduino подключается к USBASP, чтобы упростить подключение:
Ардуино — USBASP
5 В - VCC GND - GND D13 - SCK D12 - MISO D11 - MOSI D10 - СБРОС
Еще раз проверьте соединения, чтобы убедиться, что все сделано правильно.Если у вас есть сомнения по поводу идентификации контактов на USBASP, вы можете запустить поиск в Google по контактам этой конкретной платы и использовать его в качестве руководства для подключения.
При подключенных платах нам нужно сделать еще одну вещь — закрыть перемычкой JP2 (выделено ниже) на плате USBASP. Без этого мы не сможем загрузить прошивку на устройство. Замкните перемычку, замкнув ее припаянными светодиодами или перемычками.
Теперь мы готовы загрузить прошивку.
ЗАГРУЗКА ПРОШИВКИ
Начнем со скачивания прошивки. Репозиторий, содержащий последнюю версию прошивки, поддерживается на веб-сайте Томаса Фишля. На момент написания последней версии, которая, к счастью, имеет поддержку TPI , была выпущена , май 2011 г. . Загрузите это.
Ключевым элементом процесса обновления прошивки является AVRDUDE. Если вы знакомы с Arduino IDE , вы наверняка видели ссылку на нее в подробном виде во время загрузки кода.AVRDUDE — это утилита для загрузки, выгрузки и управления содержимым ПЗУ и ЭСППЗУ микроконтроллеров AVR с использованием техники внутрисистемного программирования (ISP). Самый простой способ получить AVRDUDE — загрузить его исполняемый файл, расположенный в папке Arduino -> « ARDUINO FOLDER» / Java / hardware / tools / avr / bin / , или вы можете загрузить его.
После того, как он у вас есть, следующим шагом будет поиск файла конфигурации; avrdude.conf файл, который (если следовать маршруту Arduino IDE) будет находиться в каталоге -> « ARDUINO FOLDER» / Java / hardware / tools / avr / etc /
Поместите эти два файла (исполняемый файл AVRdude и файл конфигурации ) в папку вместе с файлом .hex файла прошивки USBasp , которую мы только что загрузили. Это помогает сократить длину финальной команды. После этого подключите Arduino с подключенным к нему программатором USBasp к вашему компьютеру и запишите порт, который был назначен Arduino вашим компьютером.
Наконец, откройте окно терминала, перейдите в папку, которую мы создали ранее, и выполните команду ниже:
./avrdude -C ./avrdude.conf -p m8 -c avrisp -P /dev/cu.usbmodem14101 -b 19200 -U flash: w: usbasp.atmega8.2011–05–28.hex: i
Убедитесь, что вы ввели правильный порт после опции -P
. Если это будет успешным без каких-либо сообщений об ошибке, значит на USBASP теперь установлена последняя версия микропрограммы, и он готов к некоторым действиям.
Вот и все для этого урока!
Не стесняйтесь обращаться ко мне через раздел комментариев, если у вас есть какие-либо проблемы с тем, чтобы заставить это работать.
Артикул:
AVR Программирование TPI с usbasp Для чайников
Странный голод информации по этой конкретной теме доступен в текстовой форме.Если вы погуглите «usbasp tpi» и тому подобное, вы найдете сообщения на форумах avr, заполненные неверной информацией и схемами. Этот пост — попытка исправить это.
Я намерен показать ровно следующее, не больше и не меньше:
- Что такое TPI?
- Как перепрограммировать usbasp для поддержки TPI.
- Как подключить микроконтроллер только для TPI (например, ATTiny20) к интерфейсу интернет-провайдера usbasp.
- Почему вы можете выбрать одно из этих более новых устройств, а не использовать проверенные на практике AVR от ISP.
TPI — это крошечный интерфейс программирования, который можно найти на «несколько новых» микроконтроллерах AVR (то есть сделанных в последнее десятилетие или около того). Есть еще одна более новая, которая появилась в AVR после приобретения микросхем (UPDI), которая не очень широко документирована, но есть такие утилиты, как pyupdi, которые стремятся поддерживать этот интерфейс без программиста.
TPI немного меньше старого интерфейса ISP. Вместо того, чтобы выглядеть как порт SPI, он состоит всего из трех строк:
- #RESET: Как и раньше, вывод сброса используется для управления активностью интерфейса.
- TPIDATA: это двунаправленная линия данных. В отличие от интернет-провайдера, все данные отправляются в одной строке.
- TPICLK: Линия часов.
Синхронизация этих трех строк описана в технических описаниях деталей и не является сложной. Это довольно медленно, но поскольку на устройствах с TPI обычно не так много программной флэш-памяти, это не имеет особого значения. Логические детали того, как работает интерфейс, также задокументированы в технических описаниях деталей, но эта логика уже вошла в avrdude.
Если вы похожи на меня, вы купили свой USBASP десять лет назад на ebay. Вероятно, у него очень старая прошивка, которая пока не поддерживает программирование TPI. Даже «новые» usbasps, которые можно найти на ebay, имеют очень старую прошивку. Итак, вам необходимо обновить прошивку до последней версии (с 2011 года !!!!), которая поддерживает TPI. Есть несколько руководств по этому процессу, но одно текстовое можно найти здесь: https://blog.podkalicki.com/how-to-update-avr-usbasp-firmware-to-latest-version/
Я подведу итоги того, что вам нужно сделать:
- Купите второй usbasp.Один будет программистом, а другой — целью, которая станет совместимой с TPI.
- Загрузите последнюю версию прошивки с веб-сайта Томаса Фишла: https://www.fischl.de/usbasp/
- Установите перемычку программирования на цель, закоротив соответствующий заголовок (иногда обозначается JP1, иногда обозначается JP2). Это двухконтактная перемычка, которая НЕ является перемычкой целевого напряжения или перемычкой «медленных часов».
- Подключите программатор USB к ПК. Не подключайте цель к ПК.
- Соедините два USBASP вместе с помощью 10-контактного ленточного кабеля ISP.
- Используйте avrdude для программирования загруженной прошивки (убедитесь, что вы выбрали правильный шестнадцатеричный файл для atmega, используемого на целевом программаторе).
Я хочу сосредоточить это руководство в основном на фактическом подключении TPI на схематическом уровне, поэтому здесь у меня нет изображений или чего-либо еще.
Это должно быть легко найти информацию, но по какой-то причине это не так. Вот основы:
- Подключите #RESET к #RESET на разъеме ISP.
- Подключите TPIDATA к разъему MOSI ISP.
- Подключите TPICLK к разъему ISP CLK
- Убедитесь, что АРН работает от 5 В. Это важно. См. Ниже несколько советов и приемов, которые у меня есть, чтобы обойти это ограничение, если остальная часть вашей цепи составляет только 3,3 В.
Вот и все. Однако некоторые подробности, вероятно, были бы полезны. Распиновка стандартных заголовков usbasp ISP показана справа (примечание: VTG = VCC в Target, поэтому это напряжение, подаваемое программатором).
Я использовал ATTiny20 в своем дизайне, поэтому я подключил свой вот так (обратите внимание, что я обычно оставляю контакты 4 и 6 отключенными, так как у некоторых программистов они отключены):
Помимо соединений, следующее, о чем нужно беспокоиться, — это соединение 5V.Сейчас уже не 2011 год, и напряжения становятся все ниже и ниже. Тем не менее, для правильного программирования вспышки по-прежнему требуется более 12 В. Таким образом, для меня имеет смысл, что разработчики ATTiny20 пошли на этот компромисс и потребовали программирования напряжения 5 В (минимум 4,5 В, но вы действительно должны использовать 5 В), вместо того, чтобы пытаться установить гигантский зарядный насос на и без того высоко -оптимизированная матрица.
Итак, вам нужно программировать на 5 В, но ваша схема использует другие напряжения. Вот несколько советов, которые у меня есть для разрешения этой ситуации:
- Может ли ваша цепь работать при 5 В? Все микросхемы, которые я выбрал для своей конкретной конструкции, работали как при напряжении 3,3 В, так и при напряжении 5 В. Итак, у меня есть два источника питания платы: основной разъем, который идет к остальной части системы (3,3 В), и кабель программирования ISP (5 В). Я знаю, что у меня никогда не будет обоих подключенных одновременно, так что это работает для меня.
- Подумайте о том, чтобы микроконтроллер был подключен к отдельной шине питания, и используйте переключатель (физический или твердотельный) для переключения между питанием основной платы и питанием ISP.
- Рассмотрим твердотельный переключатель. Это довольно дешево и мало. Вот полный список digikey: https://www.digikey.com/en/products/filter/pmic-power-distribution-switches-load-drivers/726
- Обязательно учтите, что выводы идут к другим устройствам на вашей плате. Когда микроконтроллер не находится в состоянии сброса, он может подавать 5 В на другие компоненты.Либо встроите некоторую логику при запуске программы, чтобы, если вы знаете, что собираетесь запрограммировать микроконтроллер, вы не управляете контактами (например, проводкой управляющих контактов для переключателей также в микроконтроллер), либо подумайте об использовании уровня переводчик что ли.
- Я считаю переводчиков уровня крайней мерой. Они занимают место, электроэнергию и добавляют (часто ненужные) затраты. Обычно гораздо проще использовать умную последовательность источников питания или найти логические микросхемы, устойчивые к 5 В.
- Учтите, что многие буферные ИС (особенно от TI) имеют входы, устойчивые к 5 В, и будут выводить их на своем VCC, который может быть ниже, чем их вход. Они не являются специализированными переводчиками уровней, но могут работать достаточно хорошо.
- Также рассмотрите возможность использования логики с тремя состояниями. Многие трехсторонние драйверы могут обрабатывать напряжение на своем выходном контакте выше, чем их VCC. Это тоже мини-переводчик уровней.
- Не используйте только токоограничивающие резисторы на выходах микроконтроллера. Конечно, сегодня это может сработать, но вы сбрасываете ток через диоды защиты от электростатического разряда микросхемы, которую вы управляете, а это обычно не рекомендуется.Особенно, если это дешевый чип от дешевого поставщика (ST, Shenzen Market и т. Д.), Они, возможно, не проводили тщательного тестирования чипа на защелкивание в этих условиях.
Если у вас все подключено правильно и уровни напряжения правильные, вы можете запустить avrdude и получить следующее красивое приветственное сообщение:
А если еще повезет, то перепрошивка тоже подойдет!
Когда я исследовал использование TPI с моим usbasp, я наткнулся на сообщение, в котором кто-то сказал что-то вроде «зачем тратить деньги на 6-контактный микроконтроллер? Просто используйте <вставьте сюда более старый AVR> ».Несмотря на очевидный недостаток необходимости использовать новый интерфейс программирования, я думаю, что есть одна ниша, в которой это невозможно превзойти:
AVR только для TPI — НАИМЕНОВАТЕЛЬНО самые дешевые микроконтроллеры «известных марок», которые вы можете купить. Между ними и семейством PIC10 нет ничего дешевле, пока вы не начнете искать некоторых китайских поставщиков (есть микроконтроллер стоимостью 0,03 доллара в разовой упаковке, который стал довольно популярным). Я выбрал ATTiny20 для своего проекта, потому что был даже дешевле, чем пара дискретных ИС с одним затвором .Мне нужно было выполнить некоторую логику ИЛИ, которую я обычно выполнял бы с дискретными частями. Каждый из них в разовом количестве стоит примерно 0,25 доллара, и мне понадобилось бы как минимум 4 или 5. ATTiny20, который я выбрал, стоил 0,53 доллара . Было дешевле использовать микроконтроллер, чем дискретные логические элементы! В каком мире мы живем.
Старые ISP AVR (особенно ATMega8 и его друзья) теряют актуальность на рынке, когда сталкиваются с давлением микроконтроллеров на базе ARM Cortex-M. У них не только лучшие периферийные устройства в целом, но они также требуют меньше энергии и имеют лучшие инструменты (компилятор, стандартные инструменты программирования и т. Д.), Чем эквивалентные AVR.Я бы никогда не выбрал ATMega328 для нового продукта, если бы мне не пришлось использовать существующий двоичный файл или что-то в этом роде. Даже в своих личных проектах я решительно предпочитаю микроконтроллеры ARM Cortex-M, потому что их легче программировать и отлаживать, не требуя дорогостоящего оборудования от одного производителя.
Целью этого поста было рассказать, как без особых проблем программировать AVR на основе TPI, используя usbasp. Если мне не хватает какой-то детали, что-то не так или этот пост помог вам, не стесняйтесь оставлять комментарий!
Создайте свой собственный программатор микроконтроллера 8051 с USBasp
Опубликовано MKDas на
В этой статье мы собираемся узнать, как сделать программатор, программирующий серию микроконтроллеров 8051.Однажды у меня возникла проблема с этой проблемой, но я решил и ее. Вы тоже можете получить помощь из моего опыта. В Интернете есть много примеров, но очень немногие из них действительно работают. Многие люди публиковали видео по этому поводу, но если вы попробуете себя, в большинстве случаев у вас ничего не получится. Сегодня вы узнаете, что за этим стоит. Итак, давайте сделаем наш программатор микроконтроллера 8051.
Заявление об отказе от ответственности: Электричество всегда опасно. Для работы с электричеством требуется соответствующее умение. Работайте на свой страх и риск.Автор не будет нести ответственности за любое неправильное использование, вредные действия или любую ошибку, которую вы совершите. Содержимое этого веб-сайта уникально и защищено авторским правом. Пожалуйста, не совершайте бессмысленных действий, копируя и заявляя, что это ваше. Чтобы помочь вам, большинство статей, опубликованных здесь, имеют открытый исходный код. Возьмите знания бесплатно и используйте их, но если вам интересно, вы можете купить готовые ресурсы, предлагаемые здесь. Если вам нужна помощь или руководство, не стесняйтесь комментировать ниже, автор постарается вам помочь.Спасибо.
Около 8051 MCU серии:
Микроконтроллер 8051 — один из самых популярных и наиболее часто используемых микроконтроллеров в различных областях, таких как встроенные системы, бытовая электроника, автомобили и т. Д. Технически называемый Intel MCS-51 Архитектура , серия микроконтроллеров 8051 была были разработаны Intel в 1980 году и были очень популярны в 80-х (до сих пор популярны).
Микроконтроллер 8051 имеет множество функций, таких как последовательная связь, таймеры, прерывания и т. Д.и поэтому многие студенты и новички начинают свою работу над концепцией микроконтроллеров с микроконтроллера 8051 (хотя эта тенденция, похоже, изменилась с появлением Arduino).
Несмотря на то, что микроконтроллер 8051 может показаться немного устаревшим, мы считаем, что это одна из лучших платформ для начала работы с микроконтроллерами, встроенными системами и программированием (как на C, так и на ассемблере).
8051 MCU (AT89C51)В списке серии микроконтроллеров 8051 есть несколько микроконтроллеров.Среди этого списка наиболее популярны AT89C51 / 52, AT89S51 / 52. Серия C имеет опции последовательного программирования, но мы можем запрограммировать серию S с помощью программатора USBasp. В этой статье мы научимся создавать программатор для микроконтроллера 89S52.
Схема контактов AT89S52Вам тоже может понадобиться: PICKit2 PIC programmer.
Программирование 89S52:
Если вы поищете в Интернете, как запрограммировать микроконтроллер 89S52, то вы получите массу результатов программирования с помощью программатора USBasp.Такой программист выйдет на передний план:
. Обычный программатор USBaspВам понадобится программное обеспечение для этого программатора. Многие предлагают использовать Progisp1.72. Этот очень простой и популярный для серии 8051. Вы можете запрограммировать AT89S51 / 52 с помощью этого программатора.
Окно Progisp1.72Вы можете найти другое программное обеспечение для программистов USBasp здесь. Но поскольку мы обсуждаем серию 8051, я буду обсуждать программирование микроконтроллера 89S52. Обратите внимание, что 89S51 работает аналогичным образом.
Программатор USBasp:
Однажды у меня возникла проблема с этой проблемой. Мне пришлось создать собственный программатор USBasp для продукта, в котором программатор должен быть встроен в другие схемы на одной плате. Я мог бы использовать программатор USBasp-ключа, но он никогда не подошел бы для этого продукта.
Китайский USB aspЯ начал искать по программированию 89S52, получил массу результатов с USBasp. Собрал 3 типа программистов с местного рынка и протестировал каждого из них.Китайский поддерживает AT89S52, но немецкий, который я нашел локально, не поддерживает AT89S52. Я не понимал, какой из них использовать.
Я нашел принципиальную схему USBasp в сети и сделал для нее тестовую печатную плату, чтобы проверить, работает ли мой программатор. Я нашел прошивку на сайте www.fischl.de, которая на самом деле немецкая. Протестировал мой программатор, он может программировать ATmega8, но не может обнаружить AT89S52. Я обнаружил «Ошибка программы включения микросхемы».
Сообщение об ошибкеМой программатор USBasp:
Сделать программатор USBasp очень просто, так как он имеет открытый исходный код.Вы можете найти эту принципиальную схему в Интернете:
Схема программатора USBaspЯ сделал свою собственную печатную плату, используя эту принципиальную схему. Хотя я удалил некоторые его части, это было не так важно, чтобы сохранить.
Вот мой программатор:
Решение проблем:
После копирования прошивки с китайской (.HEX и EEPROM) я загрузил их в Atmega8A своего программатора USBasp с помощью AVRDUDE.
AVRDUDEПри программировании Atmega8 установите предохранитель L на 0xEF и предохранитель H на 0xC9. И выберите флеш-память (здесь вы получите bin-файл, который будет работать нормально) и файл EEPROM. Затем программа. И это работает !. Да, он может обнаружить, и я могу запрограммировать микроконтроллер At89S52.
Успешное программирование AT89S52Об этом я тоже снял видео:
Программирование 89S82 с программатором USBasp
PCB:
Я сделал печатную плату для своего программатора USBasp. И это проверено нормально.Для себя тоже можно использовать:
Печатная плата для моего программатора USBaspВывод:
USBasp — это программатор с открытым исходным кодом. И я думаю, что нет такой чести в том, что я сделал это. Но мой опыт может помочь вам решить вашу проблему и упростить вашу работу. Вот почему я с радостью сохранил его исходный код для всех вас.
Вот файлы, которые вы можете загрузить и создать свой собственный программатор USBasp для серии 8051 с другими стандартными микроконтроллерами.
Скачать файл печатной платы .
Скачать прошивку.
Загрузите зиадаг [установщик драйвера].
Я благодарю всех участников, которые сделали это простым и открытым исходным кодом [программист USBasp]. И спасибо вам за то, что дочитали до этого. Надеюсь, у вас возникла похожая проблема, и теперь вы тоже можете решить свою проблему. Если вам понадобится помощь, не стесняйтесь обращаться ко мне. Спасибо.
Не забудьте подписаться на следующее обновление.
JLCPCB — всего 2 доллара за прототип печатной платы (любого цвета)
Круглосуточная быстрая обработка, отличное качество и непревзойденные цены
Приветственный бонус $ 18 за новые регистрации Сейчас !!! https: // jlcpcb.com
Проверьте это: 5 самых крутых мультиметров, которые вы можете купитьТоп 5 цифровых мультиметров для начинающих
Программирование ATtiny45 / ATtiny85 с помощью USBasp AVR Programmer — Блог Ритеша Кханны
Итак, вы создали проект на Arduino и хотите развернуть его в мире. Проблема в том, что Arduino — это большое и относительно дорогое устройство, в котором есть гораздо больше вещей, чем необходимо для вашего проекта.
Что вам действительно нужно, так это микроконтроллер для запуска вашего кода и управления контактами.Все, что вам нужно сделать, это купить ATtiny45, ATtiny85 или аналогичный чип Atmel, а затем загрузить на него свою программу.
Arduino упрощает создание кода и питание вашего чипа Atmel. Перенести ваш код на автономный чип Atmel немного сложнее; есть способы запрограммировать чип с помощью Arduino, но они не так просты, как использование программатора USBasp AVR. Я использовал тот, который был найден на Али Экспресс.
Если у вас Windows, вам нужно будет установить драйверы для программатора.Многие сайты говорят, что вам нужно отключить подпись драйверов, и выполнить ряд действий, но найденные здесь драйверы будут установлены в Windows 10 (они подписаны) при установке с помощью установщика (но не при попытке установить драйверы. сам). После установки драйверов подключите программатор и убедитесь, что ваши драйверы работают в диспетчере устройств:
Затем вам необходимо установить плату ATtiny в Arduino IDE. Для этого выполните следующие действия:
- Выберите «Файл»> «Настройки».
- Нажмите кнопку, чтобы отредактировать «Дополнительные URL-адреса Board Manager».
- Добавьте «https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json» в новую строку.
- Нажмите «ОК», чтобы закрыть редактор URL, и еще раз «ОК», чтобы закрыть настройки.
- Затем перейдите в Инструменты> Менеджеры советов
- Найдите «ATtiny».
- Установите появившиеся чердачные доски (у вас должен быть только 1 результат).
Затем нам нужно настроить плату как ATtiny, а программатор — на «USBasp», используйте следующий снимок экрана для справки:
Теперь мы все настроены с точки зрения программного обеспечения, нам нужно затем подключить оборудование.Следующие контакты должны быть подключены:
- MOSI от программатора до MOSI ATtiny (контакт 5)
- MISO от программатора до MISO ATtiny (Pin 6)
- SCK (часы) от программатора к SCK ATtiny (вывод 7)
- СБРОС от программатора к СБРОС ATtiny (контакт 1)
- Vcc от программатора до Vcc ATtiny (контакт 8)
- Земля от программатора до земли ATtiny (контакт 4)
Установить эти контакты можно двумя способами. Я решил сделать для этого специальную плату с сокетом, чтобы в будущем можно было быстро программировать микросхемы.Если вы это сделаете, я рекомендую сначала провести несколько тестов на макете и убедиться, что все ваши контакты правильно подключены, прежде чем паять его вместе. Вот мой программист.
Я могу быстро запрограммировать микросхемы ATtiny, вставив микросхему в гнездо IC и подключив USBasp к ленточному гнезду.Теперь все, что нужно сделать, это подключить USBasp к USB-порту компьютера и нажать кнопку воспроизведения. Вот как консоль будет выглядеть, когда все будет работать:
Теперь вы можете использовать недавно запрограммированный чип ATtiny в проекте, без необходимости регистрировать с ним всю Arduino.
Запуск простой программы мигания на макетной плате с автономным ATtiny85. СвязанныеUSB Key AVR Программатор | fabiobaltieri
Итак, вы видели несколько микроконтроллеров AVR и решили, что они симпатичные (они действительно такие!). Если вы решите работать на простом C, вам понадобится просто набор инструментов (у вас, вероятно, есть готовый пакет для вашего дистрибутива), библиотека avr-libc, программное обеспечение для программирования, такое как avrdude, и аппаратный программатор!
Хотя вы можете бесплатно загрузить все необходимое программное обеспечение, включая исходный код, для аппаратного обеспечения для программирования вам придется выбирать между покупкой коммерческого программатора (от Atmel или третьей стороны) и созданием собственного.
В этом посте я публикую свою версию популярного USBasp, разработки программатора USB AVR с открытым исходным кодом от Thomas Fischl.
Моя версия представляет собой дизайн, похожий на USB-ключ, с использованием множества SMD-деталей и очень маленькой печатной платы. Вы можете брать его с собой куда угодно!
Я использовал микроконтроллер ATMega168-20AU, SMD-версию с пакетом TQFP. Все пассивные компоненты находятся в корпусе 0805, зажимные диоды в корпусе SMA, разъем USB представляет собой посадочное место PTH (но SMD подойдет), а разъем для программирования смонтирован сбоку.
Заголовок программирования
В настоящее время существует две посадочные места для разъема программирования контроллеров AVR: наиболее распространенная из них, которая используется в этой конструкции, — это та, которая предложена Atmel в примечании к применению AVR910.
Распиновка следующая:
Обратите внимание, что вывод VCC может использоваться либо для питания логического сигнала программатора при правильном целевом напряжении (как это происходит с AVRISP mkII), либо для питания целевого оборудования от самого программатора.
Джемперы
Эта конструкция USBasp, как и оригинальная, предусматривает перемычку 2 × 1 для подачи питания 5 В на цель, но есть дополнительный последовательный резистор для защиты от короткого замыкания.
Также дополнительная перемычка 2 × 1 используется для начального программирования и перепрограммирования прошивки устройства. Если у вас нет другого программиста и вам нужно запрограммировать своего первого «умного» программиста, попробуйте BSD-программатор параллельного порта (который я использовал впервые).
Третья перемычка 2 × 1 используется для ручного выбора режима низкоскоростного программирования, который вам понадобится при первом программировании устройства AVR, так как по умолчанию микроконтроллер работает на частоте 1 МГц, а скорость программирования по умолчанию USBasp слишком высок (максимальная скорость программирования составляет 1/4 от системных часов).
В этой перемычке больше нет необходимости, поскольку скорость программирования можно изменить программно, используя флаг -B программы avrdude.
Прочая информация
Единственным недостатком этой конструкции является то, что она работает только при 5 В, поэтому вам понадобится пара фиксирующих стабилитронов для ограничения напряжения сигнала USB. Если вы не можете найти SMD-диоды, попробуйте использовать несколько белых светодиодов, они должны иметь правильное падение напряжения, и приятно видеть световые индикаторы на USB-трафике!
Кроме того, вы должны использовать это только для программирования устройств с напряжением 5 В… Устройства с напряжением 3,3 В должны работать, но вы можете значительно превысить целевую логику.Это может сработать в течение некоторого времени, но не вините меня, если это воспламенит ваш последний самый крутой проект! Во всяком случае, я делаю это довольно часто. Только никому не говори … Хорошо?
И последнее замечание: эта конструкция несовместима с микропрограммой Томаса, так как назначение выводов GPIO было изменено для упрощения схемы.