Avrisp mkii программа для прошивки

Avrisp mkii программа для прошивки

Пара часов работы паяльником – и у Вас мощный USB-программатор AVRISP-MkII, прошиваюший весь ассортимент 8-битных микроконтроллеров AVR (ATtiny, ATmega и даже XMEGA) компании Atmel. На частоте ISP 125 кГц память FLASH чипа ATmega32 (32 кбайта) читается за 10 секунд, пишется за 12 секунд, а на частоте ISP 4 МГц полная операция записи 32 килобайт (вместе с предварительным стиранием) длится примерно 3 секунды.

Firmware программатора основано на проекте AVRISP-MKII из библиотеки LUFA. По ссылке [2] можно скачать готовую прошивку AVRISP-MKII-AVR-USB162MU-16Mhz.hex (находится в папке LUFA101122ProjectsAVRISP-MKIIhex архива). В архиве есть также и исходники, по которым Вы можете при необходимости доработать или изменить firmware программатора (makefile и проект AVRStudio). Вся документация и комментарии к исходникам на русском языке.

Схема AVRISP-MkII

Схему долго описывать нужды нет, так как она состоит главным образом из проводочков и коннекторов. Сердце схемы – макетная плата AVR-USB162MU, так что всю основную обвязку микроконтроллера AT90USB162MU паять не нужно, и программатор получается очень компактным (меньше спичечного коробка) и дешевым. Резисторы R1..R6 номиналом 68 ом – защитные, и их можно не устанавливать. Перемычка SJ1 переключает питание портов ввода/вывода, перемычка JP1 управляет подачей питания на программируемое устройство, коннекторы ISP, PDI, TPI предназначены для подключения к программируемым микроконтроллерам (подробнее о перемычках и коннекторах программатора см. далее). Питается программатор от интерфейса USB (и может подавать питание на программируемое устройство).

Изготовление AVRISP-MkII

Вот все запчасти, необходимые для изготовления программатора:

Пара часов работы паяльником – и у Вас мощный USB-программатор AVRISP-MkII, прошиваюший весь ассортимент 8-битных микроконтроллеров AVR (ATtiny, ATmega и даже XMEGA) компании Atmel. На частоте ISP 125 кГц память FLASH чипа ATmega32 (32 кбайта) читается за 10 секунд, пишется за 12 секунд, а на частоте ISP 4 МГц полная операция записи 32 килобайт (вместе с предварительным стиранием) длится примерно 3 секунды.

Firmware программатора основано на проекте AVRISP-MKII из библиотеки LUFA. По ссылке [2] можно скачать готовую прошивку AVRISP-MKII-AVR-USB162MU-16Mhz.hex (находится в папке LUFA101122ProjectsAVRISP-MKIIhex архива). В архиве есть также и исходники, по которым Вы можете при необходимости доработать или изменить firmware программатора (makefile и проект AVRStudio). Вся документация и комментарии к исходникам на русском языке.

Схема AVRISP-MkII

Схему долго описывать нужды нет, так как она состоит главным образом из проводочков и коннекторов. Сердце схемы – макетная плата AVR-USB162MU, так что всю основную обвязку микроконтроллера AT90USB162MU паять не нужно, и программатор получается очень компактным (меньше спичечного коробка) и дешевым. Резисторы R1..R6 номиналом 68 ом – защитные, и их можно не устанавливать. Перемычка SJ1 переключает питание портов ввода/вывода, перемычка JP1 управляет подачей питания на программируемое устройство, коннекторы ISP, PDI, TPI предназначены для подключения к программируемым микроконтроллерам (подробнее о перемычках и коннекторах программатора см. далее). Питается программатор от интерфейса USB (и может подавать питание на программируемое устройство).

Читайте также:  Правила выполнения однолинейных схем

Изготовление AVRISP-MkII

Вот все запчасти, необходимые для изготовления программатора:

Компактный программатор USBTiny-MkII SLIM (клон модели AVRISP-MKII) поддерживает все микроконтроллеры Attiny, Atmega, и Xmega. Программатор имеет три программных интерфейса: ISP, PDI и TPI. Он работает со средой разработки AvrStudio или AvrDude. Небольшая удобная плата содержит двунаправленный преобразователь напряжения для всех интерфейсов, который работает от напряжения 1,2 В, имеет джампер для выбора напряжения 5 В или 3,3 В для питания целевой микросхемы (LDO стабилизатор) и светодиодные индикаторы состояния. Сердцем устройства является контроллер AT90USB162 с подключением по USB для обеспечения быстроты программирования.

Об устройстве:
Схема построена и основана на проекте LUFA (link), программатор по аналогии с моделью USBTiny-MKII (link) и USBTiny MKII PL (link). Я использовал прибор MAX3002 вместо оригинального преобразователя GTL2003, также как автор PL версии – данная микросхема более доступна. Для данной замены также потребовалось изменить код, который описан в последней сноске – код в прикрепленном файле уже в измененном виде – оригинальный работает некорректно.
ВНИМАНИЕ – как показано, MAX3002 версия (1.0) работает плохо, когда ISP линии нагружены сопротивлением или емкостью – не копировать! Печатная плата версии 1.1 с микросхемой GTL2003, которая отлично работает, доступна как обновление ниже – эта плата работает с оригинальной прошивкой.

Программатор имеет три IDC 6-выводных гнезда для поддержки трех программных протоколов: ISP, PDI и TPI. Они позволяют программировать все доступные микросхемы Atmega, Attiny и Xmega. Печатная плата только выглядит сложной, но она может быть изготовлена и в домашних условиях. Сквозные отверстия располагаются не под микросхемой или другими элементами, поэтому они могут соединяться проводами. Сквозные отверстия, расположенные под микросхемой at90usb162, выводят ее остальные свободные выводы на контактные площадки с нижней стороны платы – поэтому схему также можно использовать как тестовую плату для других кодов, используя для этой цели подключение по USB. Изменение кода выполняется очень просто – через встроенный USB загрузчик и бесплатный программный инструмент от компании Atmel – FLIP.

Читайте также:  Улей лежак на 24 рамки своими руками

Под IDC гнездами расположен джампер – вы можете выбрать напряжение, которое можно использовать для питания вашей целевой микросхемы. Для напряжения 5 В необходимо закоротить выводы 1 и 2, а для напряжения 3,3 В выводы 2 и 3. Для снижения напряжения используется стабилизатор LDO MCP1825S-3302ED – однако вы может использовать любой другой совместимый по выводам прибор, такой как LF33. Снятие джампера приведет к отключению напряжения от “передаваемой” стороны и вы должны подать это напряжение от целевой микросхемы, чтобы обеспечить работу программатора.

Я не буду писать о программировании, поскольку каждый знает, как это сделать. Программатор можно использовать напрямую из среды разработки AvrStudio или AvrDude. Недостатком этого является тот факт, что мы должны выбрать с каким программным обеспечением мы хотим его использовать – тем не менее, замена одного на другое, вопрос нескольких минут 🙂

Запуск:
После правильной спайки платы подсоедините ваш программатор к USB порту. Вы увидите уведомление, что ваш ПК обнаружил новой устройство, которое называется “AT90USB162 DFU”. Загрузите и установите программное обеспечение FLIP от компании Atmel. Затем установите DFU драйверы из папки AtmelFlipusb. После правильной установки запустите FLIP, щелкнув на иконке “chip”, и выберите из списка at90usb162. Далее нажмите вторую иконку “usb cable”, выберите USB, и потом OPEN в следующем окне. Программа FLIP должна обнаружить вашу микросхему без проблем – если микросхема не определяется (вы получите сообщение об ошибке) то это означает, что вы что-то сделали неправильно. Попытайтесь переустановить драйвер, подсоединить программатор к другому usb порту или перезагрузить компьютер.

Если ваша микросхема новая (незапрограммированная), тогда после подсоединения она автоматически запустится в режиме загрузчика. Если вы хотите обновить прошивку, тогда вставьте HWB джампер и закоротите RST выводы. Микросхема запустится в режиме загрузчика. После это джампер можно снять.

Если вы хотите скомпилировать свой собственный код, тогда вам необходимо только WinAvr версии 2010-01-10. Выберите make clean и затем make all – это все, что надо сделать. Но здесь мы можем выбрать программное обеспечение, с помощью которого необходимо скомпилировать прошивку. Если мы хотим использовать AvrDude, тогда откройте файл makefile и добавьте следующую строку:
CDEFS += –DLIBUSB_DRIVER_COMPAT

На следующем шаге запишите прошивку в микросхему. Щелкните на первой иконке “open book” и выберите наш HEX файл. Затем нажмите кнопку RUN. Необходимо поставить галочки во флажки “erase”, “program”, и “verify”. Код будет записан очень быстро. Теперь повторно подключите программатор к usb порту – или закоротите RST выводы, при этом загорится два светодиодных индикатора.

Читайте также:  S4a как подключить ардуино

После этого ПК обнаружит новое устройство LUFA AVRISP MkII CLONE – теперь пришло время установить для него драйвер. Если мы хотим использовать программатор с AvrStudio, тогда установите драйвер из папки AtmelAVR Toolsusb – эта папка создается при установке AvrStudio. Но если мы хотим использовать программатор с AvrDude, тогда установите драйвер LIBUSB. Распакуйте файлы, запустите приложение inf-wizard, выберите наш программатор из списка, сохраните созданный файл и щелкните на install now (установить сейчас) или используйте windows инсталлятор. При этом должен загореться светодиодный индикатор LED1 – это означает, что программатор готов к работе – поздравляем, это все.

В AvrStudio, щелкните на кнопку Con, затем выберите из списка AVRISP mkII, и нажмите connect (подсоединить).

В AvrDude, измените тип вашего программатора в командной строке на:
c avrisp2 –P usb или c avrispmkII –P usb.

Обновление 2013-03-03:
В AVRISP-MKII lufa проекте уже внесено несколько изменений, наиболее важными из которых являются:
Устранение ошибок, которые блокировали USB соединение после не успешной попытки подключения к целевой микросхеме.
Добавлена функция для быстрого переключения между Jungo (Avr/Atmel Studio) и LibUSB (AvrDude) драйвером в одной прошивке FirmWare. Просто закоротите выводы сброса, и в системе появится отдельное устройство с другим серийным номером. Два мигающих светодиодных индикатора означают, что мы имеем Jungo драйвер и четыре, что мы имеем LibUSB драйвер. В обоих случаях нам необходимо установить правильные драйверы. При использовании другой среды разработки необходимо заранее загрузить другие прошивки в устройство и использовать фильтр драйвера.
В дополнение к этому программатор запоминает последний использованный режим, и в этом режиме программатор запускается после повторного подсоединения, он также запоминает последнюю используемую SCK скорость. Ниже находится пакет со скомпилированным кодом с поддержкой функции переключения (LUFA 130303). Для того чтобы скомпилировать программу самостоятельно с вышеуказанной функцией переключения, вам необходимо вставить строку (без примечаний) RESET_TOGGLES_LIBUSB_COMPAT в файле AppConfig.h.

Галерея:

В файлы проекта входят: печатная плата, схема, несколько файлов в формате PDF, скомпилированные HEX файлы для двух версий, полный исходный код на С для различных версий – версия 110528 , версия 111009 , версия 130303, файлы помощи.

Ссылка на основную публикацию
Adblock detector