Site Loader

MiGeRA’s Home Page | AVRISP mkII SLIM

К написанию данного материала сподвигло меня знакомство с купленной когда-то книгой издания 2016 года о программировании контроллеров AVR с использованием Atmel Studio и т.п. В ней автор вначале неплохо вкратце описывает общую теоретическую часть (без привязки к железу), в конце книги приводит русскоязычный перевод-конспект документации на контроллер tiny2313 (который он выбрал в качестве примера и главного героя книги) … Основная же часть — полный трэшак! Причем не столько даже технический, сколько концептуальный. Я не буду давать резких оценок целесообразности изучения программирования на ассемблере даже микроконтроллеров в наше время, хотя это направление по-любому больше академическое, чем практическое … Также опустим комментарии насчет выбора среды разработки для С-программ отличной от Atmel Studio (в которой автор предлагает программить на Asm) и выбора в качестве «героя книги» контроллера tiny2313 так такового (выбирали по цене?), без привязки к к. л. макетной плате (что было бы не только логично, но и удобно на практике). Почему для автора «так сложен» USB-интерфейс и работа с ним, а также его симпатия к ft245 и т.д. Но всех больше меня удивил перечень предложенных к использованию читателями программаторов!.. Вспоминаем — издание 2016 года, нам же предлагают две «колхозных» схемы (одна с парой буферов, другая с одним транзистором) на LPT и COM порты! Т.е. то что морально и технически устарело уже минимум как 10 лет назад! — как в плане стабильности, так и удобства в использовании … Конечно, разве что попав в «технический вакуум» имеет смысл собрать подобную схему для однократного использования с целью записи прошивки в контроллер, который будет служить в дальнейшем программатором! Но автор про это не пишет, хотя видимо третий программатор (хоть USB-шный, уф …) и должен по его мнению стать именно этой целью. И это программатор … («та-дам»!) USBasp! Браво! Но честное слово, это даже не смешно! Кто такие книги вообще в печать выпускает? Автор еще и глумится над читателем, типа что скорость программирования USBasp вполне достаточная . .. Для tiny2313 если только что? Ню-ню … Идея же самостоятельной сборки USBasp (а стало быть и примитивных программаторов на lpt/com для его инициализации) нецелесообразна как таковая (если это не самоцель) — купить готовый USBasp можно за несколько баксов, т.е. даже дешевле чем в розницу детали из которых он состоит! Вобщем из книги получается что радиолюбитель это нищеброд, не способный купить себе адекватный инструментарий и демо-плату (хоть туже ардуину!) — а почему оно так? Странно. Но в наибольшей степени поразил факт того что ни один! (даже USBasp) программатор из предложенных автором книги напрямую не поддерживается Atmel Studio — т.е. читателю предлагается заниматься чисто виртуальной отладкой (в симуляторе) и практическим «перетыканием» изучаемого контроллера из программатора в схему и обратно, или в лучшем случае довольствоваться возможностью внутрисхемного программирования USBasp и стороннего софта работы с ним прикрученного на кнопку как «внешний инструмент». А зачем так через ж . .. ? А почему бы сразу не приобрести себе AVR Dragon (или хотябы предложить такой вариант?), или за вдвое меньшую цену совместимый клон программатора AVRISP mkII — которому и посвящена данная статья 🙂

 

На самом деле, если честно, программатор USBtiny mkII SLIM остался обойденный вниманием на моем сайте по причине времени его приобретения (щас уж даже и не вспомню когда) и его функционалу в сравнении с уже имеющимися у меня программаторами AVR Dragon, USBasp, LittleWire … Зачем я тогда вообще его купил? Могу вспомнить лишь мысль, что AVR Dragon штука несомненно универсальная и т.п. однако при этом весьма громоздкая и «электрически нежная» (жалко его типа на каждый день), а USBasp банально очень медленный (LittleWire еще медленней) и шить им «насыщенный под завязку» код в mega328 и то заждешься, а уж в mega644 (используемый в некогда собранном UzеBox) — ваще просто печаль … Так что видимо именно благодаря сборке UzeBox’а и был приобретен клон AVRISP mkII. Вот только как до ЮзБокса творческо-разработческая мысль после сборки и тестирования так и не доходит, так и клон mkII лежал рядом с ним … Ардуина сподручнее. Но вернемся к теме.

Основой данного программатора является контроллер 90usb162 с аппаратной реализацией USB-интерфейса и DFU-режимом обновления прошивки. Навскидку (судя по сохраненным мной материалам из сети) данный программатор в некотором подобии существовал еще чуть ли не 2010 году! (ссылки в конце статьи). На просторах сети можно найти великое множество разнообразных вариантов его конструкций и на базе макетных плат, и различные самопальные конструкции под ЛУТ — причем схемотехнические решения зачастую несколько отличаются. Также энтузиастами (видимо с сайта mdiy.pl — который сейчас недоступен) был создан проект топологии платы и ее трехмерная модель …

 

Не удивительно, что китайцы воспользовались чужой разработкой и запустили на производство не только топологию платы …

 

… но и полностью собрали устройство. И как всегда (в наше время) проще и дешевле купить уже собранное устройство, чем даже его, но в рассыпуху для самостоятельной сборки, особенно когда малые размеры деталек вовсе не благоприятствуют ручной сборке. Ниже фотки устройства сайта разработчик топологии …

 

На фотках выше (не моих) устройство на зеленой плате имеет версию топологии 1.0
В начале статьи — фотки того, что я приобрел в исполнении китайцев (синяя плата, цена около 25 баксов, вроде была) — версия топологии 1.1, соответственно ее принципиальная схема от первоисточника:

С программной же точки зрения прошивка клона программатора AVRISP mkII является составной частью фреймворка LUFA и эволюционирует вместе с ним (а также усилиями отдельных энтузиастов допиливающих исходники из LUFA). В разные годы разные версии прошивок программатора обладали неодинаковой совместимостью с управляющим софтом (IDE). Помню, что сначала для работы с avrdude нужна была одна прошивка, а для Atmel Studio — другая (сейчас нужно только сменить драйвер). Также было ограничение на версию Atmel Studio и хаки прошивки для его обхода (IDE не хотела работать со «старой» версией и предлагала ее обновить, что было невозможно сделать штатными средствами) … Не все так гладко? — так оно почти всегда так с клонами. Но в данном случае результат гарантирован и он более чем удобоюзабелен 😉

Ну и по традиции о мелочах:

  1. При выборе и/или компиляции прошивки из исходников LUFA обратить внимание на вариацию схемотехники решения и примененный контроллер! Мой вариант (самые первые фотки) называется «USBtiny mkII SLIM» версия 1.1 — но даже у него есть разные топологии печатной платы (например), а есть еще и ваще другие (не SLIM). Так же новые исходники LUFA предполагают применение иного контроллера чем 90usb162 … В настоящий момент использую эту прошивку — с Atmel Studio 6.1 полет нормальный, как и с avrdude любой версии. Для Дудки ставим драйвер libusb, для Студии — оригинальный AVRISP mkII (windrvr6), никакого другого переключения (ресетом, например) не требуется, светодиоды работают.
  2. Для прошивки программатора через DFU необходимо установить перемычку HWB и кратковременно замкнуть RESET (режим загрузчика). Далее классически используем Flip … (кстати, версия 3.4.7 замечательно работает под Win7 x64).
  3. Архив с материалами (включая фотки, приведенные выше, документацию, исходники и т.д.) можно забрать с моего сервера (за недоступностью указанного первоисточника).
  4. Тестировал пока только ISP режим.

Напоследок — ссылки:

Чуть позже …

MiGeRA (март 2019)

Микроконтроллеры AVR: Использование Atmel Studio 6.0

Использование Atmel Studio 6.0

Для более эффективного программирования микроконтроллеров AVR, рекомендую использовать фирменную среду разработки Atmel Studio 6.0 (ссылка для загрузки).

По сути, Atmel Studio 6.0 — это та же самая Microsoft Visual Studio 2010, дополненная специальными библиотеками для работы с микроконтроллерами AVR.
Для записи полученной программы из Atmel Studio в микроконтроллер, нам потребуется программатор USBAsp и программка Khazama AVR Programmer (ссылка для загрузки). Но хочу сразу предупредить, Вы не сможете изменить fuses и биты блокировки на микроконтроллере ATmega328P с помощью Khazama AVR Programmer! Как альтернативу для записи готового кода программы, или же как дополнение, для программирования fuses и битов блокировки, можно использовать программу AVRDUDE_PROG (ссылка для загрузки).

А теперь обо всем подробнее:

  1. Открываем установленную Atmel Studio 6.0, жмем File->New->Project. в открывшемся окне выбираем «GCC Executable projects C/C++», вводим имя проекта и нажимаем «OK». Далее в появившемся окне выбираем наш микроконтроллер из списка и нажимаем «OK».
  2. Пишем программу.
  3. Нажимаем F7 (Build Solution), и убеждаемся что нет ошибок. Проект готов.
  4. Запускаем Khazama AVR Programmer, выбираем необходимый микроконтроллер из списка, жмем «Ctrl+L» или File->Load FLASH file to buffer. В открывшемся окне идем в папку, где был сохранен наш проект из Atmel Studio. Открываем папку «debug», в ней находится файл с именем проекта .hex, выбираем его и жмем «Открыть».
  5. Для того, чтобы прошить микроконтроллер, жмем «Ctrl+F» или Command->Write FLASH buffer to Chip. Выскакивает окно с предупреждением, что невозможно установить необходимую скорость соединения, не обращаем внимание на него и жмем «OK». По завершению программирования программа также выведет окно с сообщением о том, что запись в микроконтроллер успешно завершена.

Программирование fuses и битов блокировки:

  1. Запускаем AVRDUDEPROG, во вкладке «Program» выбираем микроконтроллер, а также используемый программатор.
  2. На той же вкладке «Program» обязательно выбираем использование прямых fuse битов
    !
  3. Переходим во вкладку «Fuses», и первым делом нажимаем «Чтение»!, иначе можно «убить» (не в прямом конечно смысле, но для приведения его в работоспособное состояние потребуется много сил, и времени!). После того, как Вы убедились в том, что fuse биты считаны без ошибок, можно изменять те, которые необходимо.
  4. И лишь после того, как проделаны все предыдущие пункты можно нажимать кнопку «Программирование».

Примечание к программированию fuse и битов блокировки:

  • Если после чтения ни одной галочки в fuse и битах блокировки не установлено, то возможно произошла ошибка, повторите чтение.
  • На сообщения об ошибках установления скорости программирования можно не обращать внимание.
  • Если Вы всетаки допустили ошибку при программировании fuse битов и микроконтроллер перестал отвечать, то можете написать мне в google+, или дождаться выхода соответствующего поста по восстановлению.

Следующее Предыдущее Главная страница

Подписаться на: Комментарии к сообщению (Atom)

USBASP W AVRSTUDIO — Mikrokontrolery

Oprogramowanie Atmel Studio 7.0 Nie Wspiera Programatora USBASP JEDNAK ISTNIEJE MOżLIWOś ABY Zmusić Je wograniczonymaTor -leh -lehrah -leh -leh -lehomo -lehrha -lej Pniżej przedstawię способ как przeprowadzić configuracje Programatora USBasp так же, как współpacował на ze środowiskiem Atmel Studio 7.

0. Po otwarciu nowego lub naszego bieżącego projektu klikamy w górne menu konekstowe i wybieramy z niego «Tools» -> «External Tools …» jak na zdjęciu poniżej.

 

 Po kliknięciu powyższego przycisku pojawi się nam okno do configuracji zewnętrznych narzędzi. W sekcji tej sconfigurujemy наш программатор USBasp.

 Конфигурация устройства управления типами микроконтроллеров программных продуктов, предлагаемых в рубрике «Название», подаче назвателя программаторов, которые управляют или замещают тип микроконтроллеров как устройства управления używaćp «2USBas np1». Сделать программирование wykorzystywane będzie zewnętrzne środowisko wspierające Programator USBasp takie jak Avrdude wchhodzące w skkład pakietu WinAvr możliwego do brania w sekcji download orazsource najnowsza wersja dostępna jest pod/winproject/forjects pod adresem.https://https://https://avrproject/avnet.project. W okienku «Command» подаем, чтобы получить доступ к нашему pliku avrdude.exe кто запьюни нам komunikację z mikrocontrolerem za posrednictwem Programatora USBasp.

W okineku «Argumets» wpisujemy wszystkie parametry wymagane przez avrdude do zaprogramowania mikrocontrolera. Cаla komenda wymagana do poprawnego zaprogramowania mikrocontrolera będzie wyglądała następująco:

-c usbasp -p m8 -U flash:w:$(TargetDir)$(TargetName).hex:i

prawidłowo wypełnione okienko z parametrami bedzie wyglądało jak na zdjeciu poniżej.

  

zaznaczamy opcję «Использовать выходное окно» dzięki czemu w trakcie programowania w dolnym oknie diagnostycznym «u u dołu pokaże nam się okienko» upture «dzięki któremu będziemy -userehri -ushri -ushri -joweli -wyrehri -wyrehri -wyrehri -wyrehri -kom

Kolejnym krokiem będzie configuracja przycisku do programowania. W tym celu wybieramy przycisk «Customize…» из меню «Tools» как на образку ниже.

  

Po wciśnięciu pojawi nam się kolejne okno w którym tworzymy nasz nowy Toolbar. Klikamy przycisk «Новый…» i nadajemy mu nazwę. Proponuje użyć nazwy sugerującej rodzaj uzytego programatora oraz nazwę typu mikrocontrolera którego beędziemy obsługiwać.

  

Po wpisaniu nazwy oraz akceptacji przyciskiem «OK» przechodzimy do zakładki «Commands» w której wybieramy nasz utworzony Toolbar.

  

Gdy mamy już wybrany nasz Toolbar czas aby zdefiniować sposób jego działania podpinajac do niego naszą wcześniej utowrzoną komendę umożliwiającą zaprogramowanie mokrocontrolera. Нажмите кнопку «Добавить команду…» и выберите команду «Категории», выберите «Инструменты» и нажмите кнопку «Команды», выберите команду «Добавить команду» № 1 «Внешняя команда 1» zatwierdzająciem «OK»0003

  

Po pwidłowej configuracji powinniśmy uzyskać okno wypełnione jak pokazano na obrazku poniżej.

  

Po zakonćzonej configuracji w oknie głównym programu pojawi nam się nasz zdefiniowany Toolbar. Może się zdarzyć że bedzie on zminimalizowany w przypadku natłoku innych toolbarów. Wystarczy wtedy wyciągnąć go niżej na wolną przestrzeń tak aby mógł się pomiescić rozwinięty w wolnej przestrzeni.

  

Od tej chwili zaprogramowanie mikrocontrolera inicjowane może być prostym kliknięciem utworzonego przez nas przycisku.

Należy jednak pamiętać że przed zaprogramowaniem układu przez nasz utworzony guzik należy najpierw skompilować pisany przez nas program tak aby środowisko Atmel Studio 7.0 dokonało kompilacji oraz nadpisało i zaktualizowało plik wynikowy *.hex który zaczytywany jest do programowania mikrokontrolera przez naszą utworzoną komendę zewnętrzną.

@16.02.2020


16 февраля 2020 17:06:12 CET

от Питера



Купить Программатор AVR совместимый с USBasp ISP + Botland

Индекс: МОД-10793 EAN:

5904422339333

  • Описание
  • Доставка
  • Отзывы
Спецификация
  • Программатор имеет полимерный предохранитель (500 мА, многоразовый), защищающий порт USB компьютера
  • Устройство позволяет запитать цепи напряжением 5В
  • Требуется дополнительный кабель USB
  • Скорость программирования достигает 5 кБ/с
  • Работает со следующими операционными системами: Windows XP, Windows Vista, Windows 7, Windows 8, Linux
  • Программатор прост в использовании, а два светодиода (красный и зеленый) позволяют следить за состоянием устройства
  • Имеет конфигурацию с тремя перемычками

Для начала работы с программатором достаточно установить драйвера. Подробное описание установки и эксплуатации есть в руководстве пользователя.

Устройство можно использовать для программирования модулей Arduino Uno и Leonardo, при необходимости установить новый загрузчик. Для удобного подключения плат также есть очень удобный переходник ISP типа KANDA.

В комплекте
  • Программатор совместим с USBasp (показан на фото выше)
  • Лента IDC длиной 50 см с соответствующими наконечниками для коннекторов типа KANDA
  • 2 перемычки для настройки программатора
 

 

Описание

Программатор AVR USBasp полностью совместим с программатором «USBasp», созданным Томасом Фишлем. Его можно использовать для программирования микроконтроллеров семейства ATMEL AVR через порт USB на ПК. USBasp поддерживает множество популярных сред для разработки программного обеспечения и приложений, предназначенных для загрузки программ, в том числе: Bascom, AVRDude, WinAVR и многие другие.

Jumper

J1 — Сервис- Ссылка для обновления программного обеспечения (следует удалить во время нормальной работы)
J2 — Медленный JUMP  — Supply target — Assembled jumper J3 powers up the system timer from the USB port (5V approx.)

Supported microcontrollers

  • ATmega8, ATmega88, ATmega8515, ATmega8535, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163 , ATmega164, ATmega103, ATmega32, ATmega324, ATmega328, ATmega329, ATmega3290, ATmega48, ATmega64, ATmega640, ATmega644, ATmega649, ATmega6490
  • ATtiny12, ATtiny13, ATtiny15, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny45, ATtiny84, ATtiny85
  • AT90S2313, AT90S2333, AT90S1200, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90CAN32, AT90CAN64, AT90CAN128

 

Поддерживаемые среды

  • Баском AVR
  • AVRDude
  • WinAVR
  • прочее

 

Полезные ссылки
  • Руководство пользователя для AVR USBasp
  • Драйверы

Доставка в тот же день

  • Зачисление оплаты заказа на наш счет в рабочий день до 10:00 означает отправку товара в тот же день.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *