Atmel программатор: Использование программатора USBASP в Atmel Studio
|Содержание
Использование программатора USBASP в Atmel Studio
Главная > Проекты > Использование программатора USBASP в Atmel Studio
Программатор USBASP является на сегодняшний день самым дешевым программатором микроконтроллеров AVR компании ATMEL и позволяет программировать большое множество микроконтроллеров серий AVR ATTiny, AVR ATMega и других. В данной статье я расскажу вам об основных особенностях использования этого программатора из под ОС Windows 7 и как настроить его работу совместно со средой разработки программ Atmel Studio на примере версии 6.1. К сожалению, по умолчанию, Atmel Studio не поддерживает этот программатор.
Установка драйвера программатора
В первую очередь необходимо установить драйвер для программатора. Мы не будем подробно описывать процедуру установки драйвера, так как тут не должно возникнуть каких либо трудностей. После установки драйвера подключенный программатор отображается в диспетчере устройств Windows как устройство USBasp.
Драйвер можно скачать по ссылке с нашего Google диска.
Установка Avrdude
Для программирования микроконтроллеров AVR будем использовать программу Avrdude. Эта программа поддерживает большое количество программаторов, в том числе и USBASP. Этой программе посвящена отдельная страница в википедии.
Скачать Avrdude с сайта проекта
Программа avrdude является консольной и запускается из командной строки. Для выполнения программирования ей передается набор параметров, определяющий настройки. Ниже приведен пример командной строки для программирования контроллера при помощи программатора USBASP:
avrdude -c usbasp -p atmega32 -U flash:w:myhexfile.hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m
Поясним основные параметры:
- -c usbasp параметр определяет тип программатора, в нашем случае это usbasp;
- -p atmega32 параметр определяет тип микроконтроллера, для примера использован ATmega32;
- -U flash:w:myhexfile. hex параметр определяет hex файл для записи в контроллер. Файл должен располагаться либо в каталоге программы, либо необходимо указать полный путь к файлу;
- -U lfuse:w:0x6a:m параметр определяет младший байт регистра Fuse;
- -U hfuse:w:0xff:m параметр определяет старший байт регистра Fuse;
Регистры Fuse используются для настройки режима работы микроконтроллера и для их определения обратитесь к документации соответствующего контроллера. Хочу предупредить, что некорректная установка режима контроллера через регистры Fuse может привести к невозможности дальнейшего программирования контроллера, по этому, внимательно изучите документацию. Если вы не хотите изменять регистр Fuse, вы можете не передавать эти параметры при программировании, в этом случае регистр Fuse останется в том же состоянии, что и до программирования.
Avrdude имеет много разных функций, но в рамках данной статьи нам важен один режим ее работы, а именно заливка программы в микроконтроллер. Остальные функции вы сможете изучить в документации.
Настройка программирования из Atmel Studio
Как уже было упомянуто, Atmel Studio не поддерживает программатор USBASP. Однако в нее встроен механизм для запуска внешних программ для выполнения различных действий. Используя данный механизм внешних инструментов, программирование контроллера будет осуществляться одной кнопкой прямо из меню Atmel Studio.
В Atmel Studio открываем пункт меню Tools и выбираем пункт External tools…
В открывшемся окне настройки инструментов нажимаем кнопку Add для добавления нового инструмента. Заполняем следующие поля:
- Title: произвольное имя инструмента, мы указали USBASP atmega32.
- Command: файл запуска программы avrdude. Мы указали C:AVRDUDEavrdude.exe, так как у нас она размещена в каталогеAVRDUDE на диске С.
- Arguments: параметры запуска для avrdude, которые мы рассмотрели выше. Мы задали строку -c usbasp -p atmega32 -U flash:w:$(TargetName). hex, в которой указали имя программатора, имя контроллера, и путь к файлу прошивки. Путь к файлу указан через специальные макросы и Atmel Studio подставит их сама. Мы не указали регистр Fuse в этом примере, но при необходимости вы можете добавить их самостоятельно.
- Initial directory: указан макрос для подстановки каталога, в котором находится файл прошивки.
- Use Output window: установите эту галочку для того, что бы результат работы программы показывался в окне Atmel Studio.
Послу установки всех настроек нажмите кнопку OK для сохранения настроек и выхода.
Теперь, для программирования микроконтроллера достаточно зайти в меню Tools и нажать команду USBASP atmega32, которая там должна появиться после проделанных настроек. Программирование необходимо запускать после компиляции проекта, так как файл прошивки создается в процессе компиляции проекта.
Подключение программатора к микроконтроллеру
Программатор USBASP подключается к микроконтроллеру по стандартному интерфейсу ISP. Физически на программаторе интерфейс имеет 10 контактов. Большинство контактов объединены общим проводом. Назначение используемых контактов следующее:
- MISO, MOSI, SCK, RESET — подключается к соответствующему выводу микроконтроллера;
- GND – земля, подключается к мину или GND микроконтроллера;
- VCC – используется для подачи питания на микроконтроллер.
На печатных платах модулей, где используются контроллеры AVR, разработчики очень часто располагают интерфейс SPI 6 контактов, позволяющий произвести внутрисхемное программирование контроллера. Такой интерфейс можно видеть даже на платах Arduino. Для подключения программатора к такому 6-и контактному интерфейсу можно использовать соединительные провода мама-мама или специальный переходник ISP10 в ISP6 для программатора AVR USBASP.
Программатор AVR USBASP
Нет в наличии
Миниатюрный USB программатор для AVR микроконтроллеров / Хабр
Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.
Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):
Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:
На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.
Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно
Прошивка управляющего микроконтроллера
Итак, после сборки устройства осталось самое важное — прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом 🙂 Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:
После прошивки должен загореться светодиод подключенный к 23 ноге микроконтроллера. Это будет верный признак того, что программатор прошит удачно и готов к работе.
Установка драйвера
Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:
Выбираем папку где лежат дрова и жмем Далее
Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:
Забиваем на предупреждение и продолжаем установку, после небольшой паузы появится окно, сообщающее об успешном окончании операции установки драйвера
Все, теперь программатор готов к работе.
Khazama AVR Programmer
Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer. Замечательная программка, с минималистичным интерфейсом.
Она работает со всеми ходовыми микроконтроллерами AVR, позволяет прошивать flash и eeprom, смотреть содержимое памяти, стирать чип, а также менять конфигурацию фьюз-битов. В общем, вполне стандартный набор. Настройка фьюзов осуществляется выбором источника тактирования из выпадающего списка, таким образом, вероятность залочить кристалл по ошибке резко снижается. Фьюзы можно менять и расстановкой галок в нижнем поле, при этом нельзя расставить галки на несуществующую конфигурацию, и это тоже большой плюс в плане безопасности.
Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.
Скачать файл печатной платы в SprintLayout можно по этой ссылке
Ну вроде все, если возникнут вопросы, постараюсь ответить.
AVR Tutorial — Выбор программатора
Итак, теперь, когда вы узнали все о том, как работает программирование в теории, пришло время определить, какой программатор подойдет вам лучше всего
Комментарии? Предложения? Пишите на форум!
Существует около дюжины программистов, я расскажу о 4 основных типах:
- Простые/Базовые/Bitbang программисты
- Умные программисты ISP
- Макетные платы
- Нет программиста (загрузчик)
Простые программаторы очень недорогие и очень простые. Они подключаются к последовательному или параллельному порту напрямую, а затем компьютерное программное обеспечение переключает порт для отправки данных на микросхемы.
Программатор параллельного порта выглядит примерно так:
Он подключается к параллельному (принтерному) порту компьютера подключается к 10-контактному разъему ISP
Программатор последовательного порта выглядит примерно так:
Очень похож на программатор параллельного порта, но подключается к последовательному порту. он может использовать контакты программирования для других целей. Без буфера вам, возможно, придется удалить программатор после того, как чип был запрограммирован.
Я рекомендую их для людей, которые только начинают и делают очень простые вещи, но настоятельно рекомендую быстро перейти на умный программатор ISP или плату разработки.
Плюсы : Очень дешевый (10-20 долларов США), простой для понимания, потому что программное обеспечение делает все, нет риска «несовместимости программатора или обновлений»
Минусы : Требуется ПК с портами, Mac не может использовать это, если вы работаете с высокими напряжениями (более 5 В), вы можете отключить свой порт, несколько стандартов для интерфейса программатора.
Купить такие программаторы можно в интернет-магазине adafruit.
Эти программисты подключаются к последовательному порту или порту USB, и у них больше мозгов, чем у программистов Bitbang. Они также с большей вероятностью будут работать и имеют некоторые приятные особенности.
Самый распространенный программатор — это AVRISP и AVRISPv2. Оба выглядят примерно так:
Фото предоставлено EvilMadScientistLabs
На одном конце есть разъем для кабеля, а на другом выходит 6-контактный и/или 10-контактный кабель. У AVRISP v1 был разъем для последовательного порта, а у v2 — USB. У v1 есть оба кабеля, у v2 только 6-контактный.
AVRISPv2 можно приобрести на Digikey.com или Mouser.com примерно за 36 долларов. можно собрать из комплекта примерно за 20 долларов. Об этом подробнее здесь.
Существует гораздо больше дизайнов интернет-провайдеров, многие из них самодельные.
Существуют десятки макетных плат, все они немного отличаются друг от друга, поэтому я расскажу о двух наиболее популярных (и довольно недорогих) и официально одобренных Atmel.
Первый — это STK500, который за 80 долларов — настоящий зверь. Он поддерживает почти все микросхемы, которые производит Atmel, со всеми различными сокетами. Он имеет кнопки, светодиоды, генератор с регулируемой тактовой частотой и т. д. Этот программатор поддерживается AVRStudio, средой программирования Atmel. Поскольку это «де-факто» программатор, метод программирования, который он использует для связи с компьютером (называемый протоколом STK500), также является стандартным. Он получил немного кривой обучения, но многие люди используют его. Вы можете купить его у Digikey или Mouser.
Самое приятное в этом то, что вы получаете огромную плату разработчика, на ней есть разъемы для всех чипов, а также программатор. Печально то, что у него есть только последовательный порт, поэтому вам понадобится последовательный преобразователь USB.
Второй — AVR Dragon, который одновременно является и программатором, и эмулятором. Он используется больше как интернет-провайдер, чем макетная плата, имеет разъемы как для 6-, так и для 10-контактных разъемов.
Я не так много играл с ним, но люди говорят, что он хороший, и стоит всего 50 долларов. Обратите внимание, что нет сокетов для чипов.
В последние годы разработчики микроконтроллеров добавили в микросхему возможность программировать собственную флэш-память (часто называемую самопрограммированием). Это означает, что программа, записанная на микроконтроллере, может изменить свою собственную программу. В большинстве случаев это не очень хорошая идея, программа может перезаписать себя, повредить себя и/или вывести микроконтроллер из строя. Однако в некоторых случаях это может быть преимуществом.
Возьмем, к примеру, небольшую программу, встроенную в чип, которая может связываться с компьютером через USB или последовательный кабель и позволяет компьютеру загружать новую прошивку без использования программатора. Вот что происходит, когда вы «обновляете прошивку» своего MP3-плеера или мобильного телефона.
Например, Arduino использует загрузчик, который запрограммирован в микросхему на заводе Arduino. Загрузчик защищен, так что он не может перезаписать себя. Чтобы загрузить код в Arduino, вы используете программное обеспечение Arduino, которое достаточно умно, чтобы распознавать, когда Arduino подключен.
Загрузчики — это здорово, но вам нужен программист интернет-провайдера, чтобы установить загрузчик на чип в первый раз, если вы покупаете чип у Digikey или Mouser. Это немного похоже на проблему курицы и яйца.
Загрузчики также не позволяют модифицировать фьюзы (обсуждается позже), и они занимают часть флэш-памяти, поэтому загружаемые программаторы должны быть меньшего размера.
В общем, загрузчики отлично подходят для начала, но я считаю важным иметь какой-то способ запрограммировать чип, чтобы вы могли установить загрузчик и, возможно, изменить загрузчик или предохранители.
В этих примерах я не буду использовать загрузчики, но предполагаю, что у вас есть программатор ISP, поскольку они более универсальны. Позже вы всегда можете добавить свой собственный загрузчик.
Руководство программиста AVR | USB ISP и портативный программатор AVR
Какой тип программатора Atmel AVR вам нужен? Что-то недорогое для производства или разработки, программист
который работает из Microchip Studio, включает в себя отладчик, имеет DLL или интерфейс командной строки или портативный
программатор для полевых обновлений — у Kanda есть все типы USB-программаторов AVR.
Программаторы AVR для производственных и полевых обновлений
Автономные программаторы AVR Kanda идеально подходят для производственных и полевых обновлений, поскольку они действительно просты в использовании. Просто загрузите на ПК,
тогда они полностью портативны, с использованием батареи или источника питания. Блоки брелоков самые маленькие и простые,
Портативные программаторы AVR выпускаются в виде версий с одним или 8 образами и большей памятью, а портативные программаторы могут
хранить до 31 различных изображений.
Портативный ISP
- Портативный AVR ISP
- Автономный, 1 кнопка
- USB-загрузчик для ПК и программное обеспечение
- Питание от батареи или блок питания
- Поддержка ISP, JTAG, TDI и UPDI
- Поддерживает ATxmega с PDI и JTAG
- Может питать цель
- Доступна 8 версия программы
8-ПОРТАТИВНЫЙ ПЛАТФОРМА
- Ручной программатор AVR
- Вмещает до 8 программ
- Автономный, 1 кнопка
- USB-загрузчик для ПК и программное обеспечение
- Питание от батареи или блок питания
- Поддержка ISP, JTAG, TDI и UPDI
- Поддерживает ATxmega с PDI и JTAG
- Может питать цель
- Память 512 КБ
Блоки брелков
- Недорогой автономный AVR ISP
- Автономный в корпусе брелока
- Одно нажатие кнопки для программирования цели
- Включает загрузчик USB и программное обеспечение
- Простое программное обеспечение для загрузки программатора
- Легко перепрограммировать, код и настройки сохраняются навсегда
- V3 имеет интерфейсы ISP и UPDI
- 256 КБ памяти
- Аккумулятор не требуется
Портативный программатор
- Портативный интернет-провайдер
- Автономный с ЖК-дисплеем и клавиатурой
- Простая раскладка клавиатуры
- Включает USB-загрузчик, программное обеспечение и зарядное устройство
- Поддерживает ISP, JTAG, TPI, UPDI и PDI (ATxmega)
- Может содержать до 31 целевой настройки Atmel AVR
Программисты для разработки
Если вы ищете программиста для разработки или что-то для мелкосерийного производства, то АВРИСП-У, АВРИСП-МКII
или AVR ICE идеально подойдет для ваших нужд. Они либо работают из Atmel/Microchip Studio, либо имеют собственное программное обеспечение для ПК.
AVRISP-U
- Недорогой ПК AVR ISP
- Быстрый комплект USB-провайдера
- 6- и 10-канальные ISP-интерфейсы
- Автономная работа ПК или запуск из Atmel Studio
- Содержит такие функции, как Cal Bytes, серийные номера и т. д.
- Может питать цель при напряжении 5 В или поддерживать цели с питанием до 1,8 В
AVR USB
- Производство AVR ISP
- Быстрый USB AVR ISP
- Поддерживает ISP и JTAG, включает адаптер JTAG
- DLL с примерами программ плюс программное обеспечение командной строки
- Несколько программаторов AVR с одного ПК
- Поддерживает AT90S и все микроконтроллеры SPI и JTAG
AVR ISP MKII
- Программатор Atmel Studio
- Полностью интегрирован с Atmel Studio
- Поддерживает микроконтроллеры ATtiny, ATmega и ATXmega AVR
- Просто подключи и работай USB
- Обновления прошивки через Studio
- Диапазон тактовых частот и напряжения
Atmel ICE
- Программатор AVR и ICE
- Полностью интегрирован со Studio
- Комбинированный программатор и AVR ICE
- Поддерживает AVR и ATXmega
- Выводы для ISP, JTAG и DebugWire
- Может питать целевую цепь
- Подлинный продукт Microchip
Руководство программиста USB AVR
АВРИСП-У | АВРУСБ | АВРИСП MKII | АТ-АТМЕЛИС | Портативный | |
Автономный графический интерфейс | Да | Да | Нет | Нет | Да (загрузчик) |
Студия Atmel | Да | Нет | Да | Да | Нет |
JTAG | Нет | Да | Нет | Да | Да |
ATxmega | Нет | Нет | Да (PDI) | Да (JTAG) | Да (PDI) |
Целевая мощность | Да | Нет | Нет | Нет | Да |
ДВС | Нет | Нет | Нет | Да (JTAG/DebugWire/UPDI) | Нет |
В кожухе | Да | Да | Да | Нет | Да |
ДЛЛ | Нет | Да | Нет | Нет | Нет |
> 1 на ПК | Нет | Да | № | Нет | 1 загрузчик, много программаторов |
Старый AT90S | Некоторые | Да | Нет | Нет | Да |
Целевой интерфейс | 6- и 10-контактный | 10-ходовой (имеется 6-ходовой) | 6-ходовой | 6- и 10-контактный | 10-канальный и JTAG |
Командная строка | Нет | Да | Нет | Нет | н/д |
Различные типы
AVR Development
Студийные комплекты AVR ISP и ICE, такие как AVRISP-MKII и AVR ICE .
Плюс платы AVR, включая STK200, STK300 и другие платы микроконтроллеров.
Программисты производства
Программаторы AVR для малого и среднего масштаба
такие как недорогие USB AVR ISP и Advanced AVR JTAG
с автономным графическим интерфейсом, командной строкой и опциями DLL
Автономные программаторы
Брелоки и портативные портативные устройства
для легкого, безошибочного, производственного и полевого обновления.
Самый простой программатор AVR на рынке.
Руководство портативного и автономного программатора
Наши популярные программаторы для брелоков и портативных AVR идеально подходят для нетехнических пользователей.
После загрузки с ПК их можно взять с собой куда угодно для использования в сложных условиях, таких как
кухни или прачечные. Цель AVR программируется одним нажатием кнопки, включая данные,
предохранители и замки. Зеленый светодиод означает успешное завершение, а мигающий красный светодиод означает повторную попытку. Что может быть проще?
Версия с брелоком крошечная, как автомобильный ключ, недорогая и очень простая. Портативная версия есть
больше, надежнее, с большей защитой от неисправных цепей, что делает его идеальным для производства
использование, а также полевые обновления.
Доски и наборы для обучения
Помимо самостоятельной продажи этих комплектов AVR ISP, мы также поставляем ряд продуктов для разработки.
и учебные комплекты с различными платами AVR для микроконтроллеров Atmel AVR от 8 до 40 контактов (STK200), 64-контактных устройств ATmega (STK300)
и 100-контактные микроконтроллеры Xmega (Xmega Board).
Эти стартовые наборы поставляются со всем необходимым для изучения программирования, включая книги,
пример кода и программного обеспечения. Платы доступны с ISP, Dragon и JTAG ICE.
Входящий в комплект программатор AVR может быть программатором ATtiny, программатором ATmega328P или любым другим программатором AVR.