Параллельный программатор для avr своими руками: Еще раз о параллельном программаторе на базе STK500

Параллельный программатор для микроконтроллеров AVR

Поводом для создания данного устройства послужило появление новых чипов AVR поддерживающих отладку по протоколу debugWIRE. Так как он не является протоколом программирования, то после смены исходного кода во время отладки и, естесственно, забыв отключить фуз DWEN - AVRStudio не может заново "подключиться" к отлаживаему кристаллу. Это значит, что фуз DWEN не может быть "сброшен" и, следовательно, отлаживаемый чип больше не может быть запрограммирован через SPI.

После "убийства" двух tiny2313 была написана программа для mega16, которая позволяла, подключившись к меге через житаг, в AVRStudio перепрограммировать фузы тини в параллельном режиме.

Правда это было несколько неудобно и была написана программа для PC, в которой была возможность программирования всех бит фузов для tiny2313.
Дальнейшим развитием стало введение возможности программирования, проверки и чтения Flash памяти, а также введена поддержка других МК.
Поддержка программирования EEPROM не вводилась в виду ненадобности. Вообще программа для МК должна быть написана таким образом, чтоб она сама устанавливала начальные значения EEPROM.

Самым очевидным недостатком данного устройства является то, что для сборки программатора AVR необходимо запрограммировать mega16. Однако такой подход имеет право на существование, т.к. даже Atmel предлагает для своего программатора AVRISP схему на своем же микроконтроллере.
Mega16, используемая в данном устройстве, может быть запрограммирована при помощи программатора AVReal и схемы FBPRG ("6 проводков на LPT"). Или через интерфейс JTAG с помощью AVR miniICE

К сожалению COM порт компьютера не позволил реализовать "супербыстрое" программирование. Однако на глаз все равно оно проходит быстрее чем последовательное. DIP корпуса использованы исключительно потому, что автором при отладке используются именно они. Желающие могут сами переделать всю эту конструкцию под SMD.

Особенности:

  • Программирование AVR в параллельном режиме.
  • Возможность "безболезненно" программировать фузы DWEN и RSTDISBL
  • Возможность программирования фуза SPIEN

Поддерживаемые микроконтроллеры:
ATtiny 2313, ATmega32, ATmega16, ATmega8515, ATmega8535, ATmega8, ATmega48, ATmega88, ATmega168

Схема:

Схема проста и не имеет каких то особенностей.

  • На микросхеме DA1 собран стабилизатор напряжения +5V
  • На транзисторах VT1 и VT2 реализован конвертер TTL - RS232
  • Микросхема DD2 может быть применена с любым буквенным индексом
  • Разъем XS2 служит для подключения к COM порту компьютера
  • К разъему XS3 подключается программируемый микроконтроллер.
  • Разъем XS4 предназначался для внутрисхемной отладки и может быть исключен или же использован для программирования mega16 по интерфейсу JTAG
  • Питание устройства осуществляется от внешнего стабилизированного источника +12V

Mega16 должна быть запрограммирована файлом code. hex из прилагаемого архива.
Фузы mega16 должны быть запрограммированы следующим образом:
CKSEL = 1110
SUT = 00
В архиве также имеется схема в форматах PDF и PCAD2002, разведенная печатная плата для головного модуля устройства и адаптеров для различных видов МК.

Пример реализации:

Центральный модуль.

Плата адаптеров.

Работа с устройством

Перед началом работы необходимо вставить программируемый микроконтроллер в соответствующую панельку. Соединить центральный модуль устройства с платой адаптеров 20-ти проводным кабелем. Подать питание и запустить управляющую программу ParaPROG.exe

После старта управляющая программа имеет следующий вид:

Доступна только одна кнопка "Read Chip". При нажатии на эту кнопку программа ParaPROG осуществляет поиск программируемого микроконтроллера и пытается прочесть фузы и лок биты.

Если поиск устройства был неудачным программа выводит сообщение о неудачной попытке и остается в прежнем состоянии.

При удачном поиске осуществляется автоопределение подключенного микроконтроллера, считываются фузы, лок биты и вся эта информация выводится в основном окне программы. Становятся доступны все остальные кнопки.

Значения фузов и лок битов выводятся в формате принятом Atmel. Т.е. 1 = бит не запрограммирован (соответсвует установленному флажку) и 0 = бит запрограммирован (соответсвует снятому флажку)

Кнопки выполняют следующие функции:
Read Chip
Нажатие на эту кнопку осуществляет синхронизацию управляющей программы и центрального модуля программатора, поиск программируемого микроконтроллера, читает сигнатуру, фузы и лок биты
Write Fuses
Запись фузов в соответсвии со значениями заданными флажками для фузов
Write Lock Bits
Запись лок битов соответсвии со значениями заданными флажками для фузов
Chip Erase
Стирает Flash память программируемого микроконтроллера и сброс лок битов
Write Flash
Программирование Flash памяти в соответсвии с файлом, имя которого задано в поле рядом с этой кнопкой
Verify Flash
Сравнение Flash памяти с содержимым файла, имя которого задано в поле рядом с кнопкой Write Flash
Read Flash
Считывание Flash памяти в файл, имя которого задано в поле рядом с этой кнопкой

Программа принимает для записи/сравнения, а также выходным для чтения Flash является файлы binary формата.

Получить их можно при помощи утилиты hex2bin из прилагаемого архива.
Во время работы программой выводятся сообщения в строке состояния, диалоговых окнах помогающие пользователю сориентироваться в работе программы.

Замеченные и пока не устранненные ошибки:
Так как при постоянно поданном напряжении +12V на Reset программируемые МК довольно сильно грелись, алгоритм работы устройства был сменен на временное включение режима программирования и немедленное выключение его после выполнения действия. Вледсвие этого при работе с некоторыми МК (например мега48) происходит рассинхронизация управляющей программы и основного модуля программатора. Поэтому рекомендуется иногда нажимать кнопку "Read Chip" проводя этим повторную синхронизацию (желательно перед каждым новым действием)
Иногда имя выходного файла при операции "Read Flash" самопроизвольно меняется на имя "Reading Flash"

Новая версия управляющей программы 0.2.0.7

Добавлено:

  • Поддержка ATmega162.
  • Возможность добавления пользователем новых кристаллов. Поддержка различных процессоров вынесена в INI-файлы. Теперь для добавления нового процессора достаточно создать для него файл. В этом файле помимо всего прочего есть дефолтные значения для фузов (из даташита).
  • После считывания битов конфигурации с чипа для каждого байта отображается его HEX-представление (для более удобного переноса значений, например, в скрипт пакетной прошивки PonyProg).
  • Значения фузов, не соответствующие дефолтным, отображаются красным цветом.
  • Окошко ввода ком-порта и сохранение этой информации, а также путей к файлам BIN и HEX, в файл конфигурации.
  • Ручной выбор программируемого кристалла. Это полезно, когда у программируемого чипа испортились байты сигнатуры и обычным способом он не видится программатором (иногда бывает 🙂 ).
  • Автоматический запуск конвертера hex2bin при выборе для заливки во флэш файла типа HEX.
  • Исправлена ошибка самопроизвольного изменения имени выходного файла при операции "Read Flash".

Прошивка, управляющая программа, схема и печатные платы (436 Кб). Загрузок: 726
ParaPROG v 0.2.0.7 (217 Кб). Загрузок: 572

Автор статьи: Павел Сироткин и Олег Шепель E-mail: [email protected] [email protected]
Просмотров: 11968

Параллельной программатор для AVR

В данной работе описывается конструкция параллельного программатора, единственной задачей которого является восстановление значений фьюзов микроконтроллера "по умолчанию", т.е. записанных на заводе. К достоинствам прибора следует отнести его простоту, автономность (независимость от ПК), а также возможность постоянно модернизировать и усовершенствовать, в зависимости от поставленных задач. Недостатком является, пожалуй, необходимость задействования достаточно большого количества линий связи с микроконтроллером, но иначе нельзя, ведь это - параллельное программирование.

Идея разработки этого устройства родилась после ошибочной записи значений фьюзов в ATmega8, после которой вывод сброса стал обычным вводом/выводом порта, синхронизация предусматривала внешний источник, да ещё и запрещалось программирование по SPI - короче говоря "полный набор".

Поиск схем параллельного программатора по интернету и в печати не дал практически ничего, что удовлетворяло бы заданным условиям простоты и повторяемости. После изучения соответствующих даташитов решено было разработать устройство на одном микроконтроллере, которое восстанавливало бы значения фьюзов, необходимые для работы на обычном последовательном программаторе. Вообще-то, честно говоря, параллельный программатор больше ни для чего и не нужен в любительском конструировании - все функции программирования успешно выполняют широко распространённые последовательные "5 проводков", "STK-200", "AVR910", "usbasp" иже с ними.
Итак, задача поставлена - ищем решение. Начинаем, конечно, с выбора контроллера. Для параллельного программирования необходимо иметь как минимум 19 выводов ( см. таблицу).

Восьмивыводные кристаллы сразу отпадают. Можно, открывая ключи +5В и +12В от одного вывода, использовать 18 линий- в этом случае появляется возможность использовать 20-ти выводные корпуса, ATtiny2313, например.

В своей же конструкции я использовал ATmega8515, исходя исключительно из удобства расположения портов (на одной стороне) и линий питания - всё для упрощения разводки печатной платы. Можно применить и 28-ми выводные контроллеры, но я изначально планировал последующее подключение LCD-индикатора и 4-х кнопочной клавиатуры. А, в принципе, собрать устройство можно на любом имеющемся кристалле с необходимым количеством выводов - длина кода - 330 байт.
Кроме того, для коммутирования напряжений питания 5 В и программирования 12 В необходимы соответствующие ключи. Изобретать велосипед я не стал, и использовал широко известное схемное решение в виде транзисторного ключа.
Как и в любой диалоговой системе необходимы устройства ввода и вывода - добавляем, соответственно, кнопку и светодиод.
В результате родилась схема, представленная на рисунке:

Схема, как вы видите, проста до безобразия и особых разъяснений не требует. Единственное, что вызовет определенные конструктивные затруднения - это подключение программируемых контроллеров к программатору.

Можно это сделать, например, коммутацией проводниками на макетной плате, а можно (и гораздо удобнее) собрать универсальную плату расширения для основных типов контроллеров (или для тех, с которыми постоянно работаешь), подключаемую к программатору шлейфом.
Питать устройство необходимо от стабилизированного источника 12 В. На микросхеме IC1 собран стабилизатор напряжения питания 5 В. Кнопка SA1 "PROG"- даёт команду на перезапись фьюзов, светодиод зелёного свечения VD1 "DONE" - сигнализирует об успешном перепрограммировании. На транзисторах VT1 - VT4 собраны ключи для коммутации напряжений питания и программирования. Сразу оговорюсь, что схему можно совершенствовать сколько душе угодно. Допустим, установить стабилизатор на 12 В - в этом случае можно питать устройство от нестабилизированного источника 16-22 В. Возможно заменить транзисторные ключи на микросхему коммутатора тока и пр.
Конструкция программатора может быть любой - в зависимости от Ваших возможностей и умения. Я сам программатор сделал на печатной плате, а программируемые микроконтроллеры подключал через макетку.
В дальнейшем планирую сделать универсальную плату расширения и подключать к программатору 20-ти жильным шлейфом. Детали любые малогабаритные, номиналы указаны на схеме.
Пару слов о программной части. Программа написана на языке С в оболочке WinAVR. Порядок действий в ней полностью соответствует даташиту ATmega8 (раздел о параллельном программировании).
Работать с программатором очень просто. Контроллер, в котором необходимо переписать фьюзы, вставляется в соответствующую панельку. Включается питание и нажимается кнопка "PROG". Загоревшийся светодиод "DONE" сигнализирует об успешной перезаписи. Питание выключается и, после изъятия из панельки, контроллер используется обычным способом.
В своей конструкции я подключал к программатору, кроме панели для ATmega8 ещё панель для ATmega16, поскольку алгоритм программирования для него почти такой же и прошиваемые значения фьюзов позволяют работать с последовательным программатором. В результате устройство даже в такой представленной "игрушечной" версии успешно "реанимирует" кроме ATmega8 ещё и ATmega8535, ATmega16, ATmega32 - это то, что я лично пробовал перепрограммировать
В дальнейшем я планирую дополнить программатор некоторыми функциями, расширить номенклатуру "реанимируемых" контроллеров. В планах добавить функцию считывания байта сигнатуры и, в зависимости от типа контроллера, прошивать его своими "даташитовскими" значениями. А, вообще, приведённых сведений более чем достаточно, чтобы пользователь мог сам модернизировать программатор - хоть в схемной, хоть в программной части.

Источник

Программатор из флешки своими руками. Миниатюрный USB программатор для AVR микроконтроллеров. Интерфейс внутрисистемного программирования ISP

Данный программатор не нуждается в первичном программировании - протравил печатную плату, спаял и пользуйся. Автор данного устройства указан в конце статьи, а здесь приведу небольшую выдержку из руководства, чтоб было понятнее, о чём речь: правильный USB-программатор – вещь, фактически, универсальная. Его можно воткнуть в любой современный компьютер и без проблем перешить нужный микроконтроллер с любым объемом FLASH-памяти на довольно высокой скорости. Но ключевое слово здесь – "правильный", который нормально работает без настройки и танцев с бубном над ним сразу же после установки и монтажа деталей. Который не глючит при переходе от одного ПК к другому или смене ОС. Правильный – это такой, драйвера на который есть для любой современной широко используемой версии ОС, и эти дрова неглючные. Каждый определит еще с десяток критериев правильности для себя лично, но вышеперечисленные – основные, без соблюдения которых нормально работать с микроконтроллером невозможно будет в принципе.

В настоящее время в Интернете полно различных схем USB-программаторов для AVR . Условно их можно разделить на две большие группы.

Первая группа включает в себя программаторы, построенные на основе микроконтроллеров (в частности, AVR). Собирал несколько штук программаторов от Prottoss’а (AVR910), себе и своим знакомым, а также несколько штук USBasp. Двое из знакомых, одаренных сиими дывайсами, в восторге. Удачно шьют камни в течение уже нескольких лет. У остальных (в частности – у меня лично) собранные программаторы особой радости не вызвали. Не говорю, что они плохие, просто вот так складывались обстоятельства: на одном компьютере работает, на другом нет. Или, проработав пару часов, оказывались невидимыми для софта, через который шьется камень. И много еще чего. Сразу оговорю – я не разбирался с прошивкой контроллеров, на которых данные программаторы собраны. Правда, перепробовал кучу программ-прошивальщиков, через которые данные программаторы, вроде как без проблем должны шить камни. Однако, результат в виде частых глюков меня не особо удовлетворил. Исключение составила только программа AVRDUDE в комплексе с графической оболочкой SinaProg, но о ней я узнал слишком поздно. Кстати, заметил такую тенденцию: чем древнее железо ПК, тем лучше работают данные программаторы. Ну и самый неприятный момент для тех, кто выбрал второй вариант знакомства с микроконтроллерами AVR – чтобы программатор заработал, нужно чем-то прошить входящий в его состав камень. То есть получается так: чтобы пользоваться программатором нужно сделать/найти программатор, чтобы прошить мозги этого программатора. Вот такой вот замкнутый круг.

И вторая группа USB-программаторов включает в себя решение на базе специализированной микросхемы FT232Rx. В свое время данная микросхема стала своего рода революцией. Мало того, что она без особых заморочек для разработчика преобразует USB в UART (и, наверное, 95% разработчиков используют ее именно в этих целях). Она еще умеет эмулировать полноценный COM-порт, причем состояние «второстепенных» линий (таких, как RTS, CTS, DTR и т.д.) можно задать/считать не из виртуального COM-порта, а напрямую через драйвер FTDI (разработчика FT232Rx). Таким образом, появилось новое, без необходимости первичной прошивки мозгов программатора, решение, для прошивки микроконтроллеров, причем, довольно быстрое.

Принципиальная схема программатора USB

Данная схема просто направляет сигналы MOSI, MISO, SCK и RESET, которые формируются на выводах DCD, DTR, RTS и DSR микросхемы DD1 (FT232RL) соответственно, на нужные выводы прошиваемого микроконтроллера (т.е., фактически является аналогом «древних» программаторов). Причем, делает это только в момент программирования камня, в остальные моменты времени программатор отключен от прошиваемой платы за счет 4-х буферных элементов микросхемы DD2 (74HC125D). Состояние линий MOSI, MISO, SCK и RESET устанавливается/считывается прошивающим софтом на компьютере. Передача данных между ПК и микросхемой FT232RL идет по шине USB (от которой еще и получает питание программатор).

Светодиод HL2 («PWR») сигнализирует о подаче на программатор напряжения питания с шины USB. Светодиод HL1 («PROG») индицирует процесс прошивки микроконтроллера (горит только во время прошивки). Вот, в принципе, и все описание собственно схемы электрической принципиальной. Единственное что хотелось бы отметить: во-первых, для подключения программатора к прошиваемой плате используется разъем IDC-10MR (XP2 «ISP»), распиновка которого совпадает с широко распространенной распиновкой разъема программатора
STK200/STK300:

XP2 "ISP" разъем для подключения устройства к программируемому микроконтроллеру

XP3 "MISC" разъем для использования дополнительных функций программатора

В общем микросхема FT232RL имеет довольно серьёзный потенциал для разработчика (например, линии шины CBUS можно использовать как обычные линии ввода-вывода микроконтроллера), поэтому неплохо бы иметь доступ ко всем ее выводам. Ну и доступ к напряжениям +5,0 В и +3,3 В тоже лишним никогда не будет. В приклеплении печатная плата и полное подробное описание. Разработка и мануал - [email protected] , испытание - SssaHeKkk .

Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа - "прошивка", а также программатор.

И если с первым пунктом нет проблем - готовую "прошивку" обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.

Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).

Основная часть.

Панель установки МК.

Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является "облегчённой" копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite , что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.

Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор - это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).

Необходимые изменения.

В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.

Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом "Data". При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.

Также добавлен "подтягивающий" резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.

Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.

Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.

В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал . Кому интересно, загляните.

В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось "допиливать" программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.

Ядром устройства является микроконтроллер PIC18F2550-I/SP .

Это единственная микросхема в устройстве. МК PIC18F2550 необходимо "прошить". Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема "курицы и яйца". Как её решил я, расскажу чуть позднее.

Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.

Название Обозначение Номинал/Параметры Марка или тип элемента
Для основной части программатора
Микроконтроллер DD1 8-ми битный микроконтроллер PIC18F2550-I/SP
Биполярные транзисторы VT1, VT2, VT3 КТ3102
VT4 КТ361
Диод VD1 КД522, 1N4148
Диод Шоттки VD2 1N5817
Светодиоды HL1, HL2 любой на 3 вольта, красного и зелёного цвета свечения
Резисторы R1, R2 300 Ом
R3 22 кОм
R4 1 кОм
R5, R6, R12 10 кОм
R7, R8, R14 100 Ом
R9, R10, R15, R16 4,7 кОм
R11 2,7 кОм
R13 100 кОм
Конденсаторы C2 0,1 мк К10-17 (керамические), импортные аналоги
C3 0,47 мк
Электролитические конденсаторы C1 100 мкф * 6,3 в К50-6, импортные аналоги
C4 47 мкф * 16 в
Катушка индуктивности (дроссель) L1 680 мкГн унифицированный типа EC24, CECL или самодельный
Кварцевый резонатор ZQ1 20 МГц
USB-розетка XS1 типа USB-BF
Перемычка XT1 любая типа "джампер"
Для панели установки микроконтроллеров (МК)
ZIF-панель XS1 любая 40-ка контактная ZIF-панель
Резисторы R1 2 кОм МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R6 10 кОм

Теперь немного о деталях и их назначении.

Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.

Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа "B" (квадратная). В компьютере же используется USB-розетка типа "А". Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.

В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 - 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.

Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.

Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 - это диод Шоттки . Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.

При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.

Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force - с нулевым усилием установки).

Благодаря ей можно "зашить" МК практически в любом корпусе DIP.

На схеме "Панель установки микроконтроллера (МК)" указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.

Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).

А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).

Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).

Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима "Печать" не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении .

Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат , с помощью цапонлака (так делал я) или "карандашным" методом .

Вот рисунок позиционирования элементов на печатной плате (кликабельно).

При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).

"Прошивка" микроконтроллера PIC18F2550.

Файл "прошивки" - PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800 .

Залить "прошивку" в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).

Также стоит знать, что "прошивка" микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex ) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex - «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex» . У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex» .

Ну, а если разрешить проблему "курицы и яйца" не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал .

Обновление "прошивки" программатора.

Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться - чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить "прошивку".

Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню "Tools" - "Download PICkit 2 Operation System" открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.

После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута . Узнать версию ПО программатора можно через меню "Help" - "About" в программе PICkit2 Programmer.

Это всё по техническим моментам. А теперь о софте.

Работа с программатором. Программа PICkit2 Programmer.

Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы - PICkit2 Programmer. Рекомендую.

После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод ("питание"), а операционная система опознает устройство как "PICkit2 Microcontroller Programmer" и установит драйвера.

Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.

Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции "Что делать?" на английском.

Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.

Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг .

Необходимые файлы:

Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы 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 можно по

06-01-2011

Описание

Этот простой AVR программатор позволит вам безболезненно загружать программы в формате hex в большинство AVR микроконтроллеров от ATMEL, не жертвуя своим бюджетом и временем. Он более надежен, чем большинство других простых доступных AVR программаторов, и на его сборку уйдет гораздо меньше времени.

AVR программатор состоит из внутрисхемного последовательного программатора (с разъемом) и маленькой печатной платы с DIP панелькой, в которую вы можете поместить свой микроконтроллер и быстро его запрограммировать.

Вы также можете использовать этот программатор только как внутрисхемный, с помощью которого можно легко программировать AVR микроконтроллер, не извлекая его из устройства.

Весь AVR программатор собирается из широко распространенных компонентов и умещается в корпусе разъема COM порта. Печатная плата с DIP панелькой позволяет вставлять в нее 28-выводной AVR микроконтроллер ATmega8 в корпусе DIP, но вы можете изготовить печатные платы для микроконтроллеров в любых других корпусах. Этот программатор совместим с популярным ПО PonyProg, которое показывает вам ход процесса прошивки в виде шкального индикатора статуса.

Внутрисхемный последовательный программатор AVR

Плата с панелькой для AVR

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


Плата включает в себя 28 выводную DIP панельку, кварцевый резонатор на 4 МГц или резонатор с двумя конденсаторами по 22 пФ, и два разъема. Двухконтактный разъем служит для подключения к AVR микроконтроллеру питания +5 В, а 6-контактный - для подключения программатора.

Питание микроконтроллера от внешнего источника напряжения, а не непосредственно от последовательного порта, гарантирует, что контроллер получит именно 5 В и обеспечит надежную и безошибочную прошивку.

ПО PonyProg

Чтобы иметь возможность загружать hex файлы из компьютера в микроконтроллер, вам потребуется скачать и установить ПО . После установки, первое, что предстоит сделать, это сконфигурировать PonyProg для работы с AVR программатором. Для того, чтобы сделать это, войдите в меню «Setup» и выберите пункт «Interface Setup». Ниже на рисунке подсвечены именно те опции, которые вам следует выбрать.

Следующим шагом выберите «AVR micro» и тип микроконтроллера, который хотите запрограммировать (например ATmega8).

Теперь конфигурирование PonyProg завершено, и мы можем открыть hex файл с программой, которая будет зашита в микроконтроллер. Перейдите в меню «File», выберите «Open Program (FLASH) File ...» и укажите на hex файл, который надо зашить. Вы должны увидеть шестнадцатеричные значения, примерно такие, как показаны на рисунке ниже. Если вы все еще не подключили программатор к последовательному порту компьютера, то сейчас самое время это сделать. Убедитесь, что ваш программатор физически подключен к AVR микроконтроллеру через плату с панелькой или 6 контактный разъем ICSP. Наконец, кликните на подсвеченной иконке «Write Program Memory (FLASH)» или идите в меню «Command» и выберите «Write Program (FLASH)».

Кликните на кнопке «Yes», чтобы подтвердить запись.

Теперь сядьте поудобнее, расслабьтесь и наблюдайте за процессом программирования по индикатору состояния. PonyProg прошьет AVR микроконтроллер и проверит, загрузился ли hex файл без ошибок. Этот процесс обычно занимает от 10 до 30 секунд, в зависимости от размера программы, которую вы будете зашивать в микроконтроллер.

После программирования появится окно «Write successful», показывающее, что AVR микроконтроллер был запрограммирован и теперь готов к использованию.

  • Проверяйте монтаж и подключение к целевому микроконтроллеру.
  • ну в этой схеме нет ничего военного и изготовлять ее не надо а включил ком порт лоника в комп и вперед,правда в моем еще по ком порту стоит буфер чтобы случайно не сжечь.А что касаеться по пользованию прогой пони -забыли про одно из главного сказать-про фьюзы.ведь неправильно установишь и микросхема залочиться
  • ком порт устарел. если есть только usb то работу с контроллерами можно считать оконченой даже не начав???? usb-com ни кто в сети не предлогает.а если и предлогают то в схеме как раз стоит контроллер. если уж собирать самому то с нуля. а не так как сейчас многие делают, заказал конструктор, напихал в дырки элементов,запаял,и всё.таких гениев на службе хватает. а подойдёш к такиму с вопросом он и толком знать не знает. а ведь хочется знать подробно.
  • Ну конечно никто (пишется слитно!) не предлАгает. Поскольку куча готовых микросхем есть в типовом включении - мостов USB-COM на 5В и 3.3В питания. Но шибко грамотные граждане естественно об этом не знают. Про AVR910-аналог от Проттоса тоже не знают, в котором МК по USB виртуальный COM-порт изображает и программирует по ISP. Например. У буржуев тоже куча аналогичных конструкций. И описаний подробных конечно нет - это же искать надо. А хочется сразу готовенького - нажал на одну кнопку и все-все на блюдечке с голубой каемочкой. А может лучше уроки учить?
  • много уважаемый SergeBS этот форум не для орфографических ошибок и тем более не для поучений о том что оно есть. тут помощи и совета просят у людей которые знают и сталкивались с той или иной проблеммой. а то что есть готовое и можно купить и не напрягаться это конечно круто. P.S тем не менее спасибо ВАМ за участие в проблемме. И ОТДЕЛЬНОЕ ЗА ОЧЕНЬ ПРИГОДИВШИЕСЯ ПОУЧЕНИЯ. буржуям привет, а то что у них до?рена чего есть этого то я и знать не мог. куда нам крестьянам.
  • Угу. Типа "крютые", которые как хотят так и пишут. Причем "проблемму" и сформулировать не могут. Сопли типа:"хачу чавой-то знать, а чаво - ня знаю самм" - не в счет.:)
  • Вы ещё не знаете из чего всё это делается... На китайской барахолке детали для ваших схем продают на вес килограммами и никакие стандарты качества к таким деталям не имеют отношения. Покупайте только фирменные товары в соответствующих фирмах.
  • Заказываю в Интернет-магазинах (российских). Пока (тьфу * 3) на брак/халтуру и т.п. не налетал.
  • Здравствуйте! Всех с наступающим Новым Годом! 🙂 Собрал программатор для AVR по указанной схеме (проверял 3 раза все). Но понипрог 2000 отказывается видеть и программировать контроллер ATMega168-20PU - выдает ошибку device missing or unknown device (-24). Использовал стабилитроны КС407Г, Транзистор КТ3102АМ и диод КД522Б. Кварц у меня был на 4.032 МГц. Питание от L7805. Перед возникновением ошибки успевают придти сервисные сообщения, которые я мониторю с помощью Advanced Serial Port Monitor, но там только включение и выключение Break в процессе записи. Никакие данные не уходят. Настраивал ПониПрог2000 все по инструкции. Шаг за шагом. С чем эта ошибка может быть связана? Нужно ли подсоединять 22 ножку к земле и 20 к питанию (аналоговые земля и питание)? Почему не используется чип-селект (SS ножка 16 контроллера)? Спасибо за помощь!
  • Я собрал этот программатор и использовал: Резисторы - указанных номиналов Транзистор - KT3102ГМ Диод h58 это аналог 1N4148 Стабилитроны - BZX55C 5.1 вольта Также кварц на 4Мгц и 2 керамических конденсатора на 22 пФ, но я не думаю что они обязательны т.к. использование кварца внутренний/внешний мы устанавливаем программируемыми битами, с завода микрухи запрограммированы использовать внутрений кварц(если я не ошибся) Внешнее питание от +5В обязательно.Я подключил от БП того же ПК с которого заливал прошивку. Диод h58 (такая маркировка на присутствует на корпусе этого диода) на просторах интернета говорят что это аналог 1N4148. У меня всё работает, ПониПрог 2000 успешно залила прошивку в ATmega8. Фото
    View post on imgur.com
    http://i.imgur.com/gCzAuzA.jpg
  • Посоветую один из проектов avr mk ii clone, на базе либы и примера от lufa. Контроллер at90usb168 обычно идет с бутлоадером, позволяющим после сборки залить прошивку через usb без внешнего программатора. Поддерживает все нынешние avr, включая xmega и новые тиньки, pdi/tpi протокол. Работает с avrstudio и dude, разные прошивки для них. Исходники открыты, шишки отработаны. Например, для новых студий достаточно инкрементить версию fw в настройках прошивки. Собирается прошивка под winavr. Мой вариант в этой теме, от 12 года. С фоточкой. http://m.radiokot.ru/forum/viewtopic...rt=700&t=26417
  • Здраствуйте.собрал этот прогроматор для прошивки ATtiny 2313 все работае прог.читаем МК без проблем но вот такая проблема атор схемы для которой я прошиваю МК написал что первый раз можно прошивать без внешнего кварца,но при этом сперва заливать прошивку МК,а потом менять Fuse короче я залил прошивку,встала нормально,потом поменял Fuse и нажал Write но после таго как я нажал Write вылезла вот это Device missing or unknown device (-24) и после этого больше МК не читаеться в чом может быть проблема
  • это обратно я подскажите пожалуста попробывал прошить ATtiny 2313 с внешним кварцем ипоставил 2 конденсатора,кварц на 8 МГц,подк. прогром.он прочитал МК открыл прошивку в пони выставил Fuse какие надо вот это заводские
    View post on imgur.com
    а вот такие надо прошить
    View post on imgur.com
    но еще что я заметил в заводских стоит одна галочка которую нельзя убрать называеться SPIEN ,а какие надо прошить там нет этой галочки ну ладно дальше продолжу свою проблему после таго как я откры прошивку и выставил Fuse как на второй картинке я нажал READ DEVICE пошол процес прошивки и в завершении вышло вот это
    View post on imgur.com
    потом я закрыл пони и открыл снова и нажал прочитать МК и получил вот это Device missing or unknown device (-24) такое же что я прошивал без внешнего кварца,выше описанное,и после этого этот МК больше не читался кто может сказать в чом дело,что я зделал не так Просто уже 3 МК убил большое спасибо прото я в этом новичок
  • У меня эта ошибка вылазила только когда я внешнее питанее не подключал, ну естественно у тебя в схеме могут быть ошбки, может ты не на ту микруху пони прог настроил(но маловероятно ведь прошивка залилась я сам новичёк.) SPIEN – фьюз, который разрешает работу МК по интерфейсу SPI. Все микроконтроллеры выпускаются с уже установленным битом SPIEN. Считается опасным фьюзом...
  • Fuse-бит SPIEN установлен по умолчанию в микроконтроллерах AVR (режим внутрисхемного программирования) и с помощью PonyProg его убрать не получится. Да и вообще его лучше не трогать... Установив и запрограммировав Fuse-биты как на последней картинке, вы настроили мк на работу от внешнего кварца 8 Мгц, отключили внутренний делитетель тактовой частоты на 8 и включили Brown-Out Detector (модуль контроля питания) с уровнем 2.7 В. И после этого программатор микроконтроллер не увидел, поэтому логично было бы подать на микроконтроллер внешнее питание (не от PonyProg) и попробовать прочитать его снова. PS: Конечно, если изначально все было сделано корректно (тип микроконтроллера в программаторе ри программировании был выбран правильно и Fuse-биты были правильно установлены)
  • спасибо за ответ просто я прошил на 3 МК нету прошивку и теперь прогром.не видет их и мне надо их перешить и я всегда подовал внешние питание при прошивки но пони всеравно его не видит,но МК работает,я вставлял ее на прибор для кокого я ее прошивал все три рабочие,но мне надо туда другие залить Я спросил у автора схемы для которой я их прошивал как их перешить он мне сказал что если с внешним кварцем неопределяеться то надо еще внешний генератор тактовой частоты делать и подовать сигнал на МК XTAL 1 и тогда прогром. увидет МК если кто может кинте не сложную схемку внешний генератор тактовой частоты сколько гуглил не чего чот не нашол или может кто другой способ а Fuse мне обезателно надо было помннять как на второй картинке потомучто с заводскими работать не будет спасибки за помощь
  • Спасибо за статью! Отличный адаптер. Работает шустро, без ошибок. Я первым делом под LPT порт спаял, не было под рукой COM штекера. Дак LPT порт сгорел на первой же заливке. Пришлось бежать за COM штекером в магаз. Так же рекомендую спаять фьюз доктора - очень полезная штука. Я первый-же кристал так отфьюзил, казалось что он выпустил свою душу (синий дымок), а нннет! - Дохдур фьюз его моментально вернул к жизни. Вот и выходит: этот адаптер + док фьюз = полноценный параллельный программатор.
  • После "синего дымка" ни один доктор его бы к жизни не вернул. А "Доктор фьюз" - да, наверное, иногда может быть полезным. Но почти всегда удается обойтись и без него, нужно только затактировать МК не от кварца, а от внешнего генератора...
  • А вот мне посчастливилось, при первом же конфигурировании фьюзов, захлопнуть так, что ни один генератор не спасёт. Я не знал, что бывают 2 варианта отображения фьюзов: Прямой (исторический, канонический) и инвертированный (интуитивно удобный). Вот я и выставил в каноническом галки с фото инвертированного. Кстати, PonyProg, оперирует фьюзами в инвертированном представлении.
  • Читать всем:

Ну вот и пришло время нам соорудить USB программатор. Я долго не мог определиться какой бы программатор нам собрать. Выбирал по критериям простоты конструкции и удобства работы с ними, но ничего не нравилось. Выбрать программатор помог случай. Вернее я его не выбирал вообще – я его случайно собрал сам того не подозревая!

А дело было так. Некоторое количество постов назад мы собрали преобразователь USB to UART на ATtiny2313 (а в мы даже улучшили печатную плату). Еще при выборе схемы преобразователя я планировал на его базе (при помощи заливки различных прошивок) получать устройства различного назначения. Тогда я не подозревал, что данный преобразователь можно использовать шире, чем я планировал. Увидев схему USB программатора — USBtiny на ATtiny2313 я понял, что я уже имею готовый программатор!

Посмотрев на схему, сделанного ранее, преобразователя USB to UART (домашняя страничка)

и схему USB программатора USBTiny (домашняя страница)

можно увидеть, что это одна и та-же схема . Различия незначительны – отсутствуют сигнальные светодиоды и несколько резисторов. Для того, чтобы преобразователь стал USB программатором нужно просто прошить микроконтроллер новой прошивкой и сделать кабель для подключения.

Теперь все по порядку.
1 Для начала нужно собрать преобразователь (это если Вы его еще не собрали).
Вот рисунок печатной платы преобразователя:
Если интересно — вот .
В собранном виде преобразователь выглядит так:

2 Немного модифицируем плату
Для того, чтобы обеспечить все необходимые сигналы для программирования впаиваем защитные резисторы номиналом по 100 Ом в линии ножек 12, 16, 17, 18, 19 (номинал не критичен — можно варьировать).


3 Теперь нужно прошить микроконтроллер.
Линии для программатора выведены на общий разъем платы (кроме сброса — стоит отдельно).

Наверно не нужно говорить о том, что для прошивки микроконтроллера Вам понадобится программатор. На скорую руку можно собрать и прошить при помощи .


Схема шлейфа проста.

Из особенностей — я вынес индикаторный светодиод и балластный резистор для него за плату на разъем — это для того, чтобы плату без перепайки можно было использовать для других устройств (ну и так прикольней — светодиод мигает прямо в разъеме:)). Кроме того, линия Vcc отделена от общего разъема — это на случай если программируемое устройство запитывается не от USB, а от своего источника (что, в принципе, желательно). Сигнальные линии (SCK, MISO, MOSI) желательно экранировать (например чередованием сигнальных и земляных линий в шлейфе). Длину шлейфа не стоит делать большой — до 50 см, не больше. Если нужно программировать удаленное устройство всегда можно применить USB удлинитель — так надежней. Вот мой готовый шнурок:


5 Сам программатор готов, теперь нужно установить драйвер для того, чтобы Винда смогла с ним работать (для Mac OS X & Linux, вродь-как, драйвера вообще не нужно). Тут все просто:

5.1 Скачиваем драйвер, разархивируем его.
Страничка с драйверами


5.2 Вставляем наш программатор в USB порт.



5.3 В трее появится сообщение о том, что найдено новое устройство.


5.4 Запустится мастер нового оборудования.


5.5 Указываем в окошке «место поиска» папку с драйвером.


5.6 Пройдет процесс установки драйвера. Появится окошко сообщающее о том, что драйвер установлен. Чтобы проверить, что мы там наустанавливали— заходим в «Мой компьютер/Свойства/Оборудование/Диспетчер устройств» и находим там наш программатор

Винда увидела новое устройство и готова с ним работать.

USBtiny программатор поддерживается AVRDude , а это значит, что многие среды программирования будут с ним работать без проблем. Еще одним достоинством работы с AVRDude является то, что для работы с AVRDude существует множество оболочек GUI из которых можно выбрать подходящую именно для Вас (но об этом в следующей статье).

Я с USBTiny до этого не работал, но отзывы о нем в сети положительные (отличается надежностью и быстротой программирования) — мои тестовый прошивки это подтвердили. ATtiny2313 прошивается за 10 секунд (это вместе с проверкой). Микроконтроллер определяется и программируется надежно — не было ни одной ошибки во время моих тестов. Приятный в использовании программатор!

Файлы к статье:
- Рисунок печатной платы UART-USB на ATtiny2313
- Прошивка USBtiny программатора для ATtiny2313
- Фьюз-биты ATtiny2313 для USBtiny
- Схема кабеля для USBtiny программатора

Программаторы / Arduino / RoboCraft. Роботы? Это просто!

Загрузить прошивку в МК AVR семейства Mega (а именно такой стоит в ардуине) можно разными способами(тремя видами программаторов):

Последовательным программатором по интерфейсу SPI
Через интерфейс JTAG
Параллельным (“высоковольтным”) программатором

Теперь по порядку.

SPI или ISP — внутрисхемное последовательное программирование(In-cirсuit Serial Programming).
Самый простой и распространённый, по-крайней мере у любителей, метод.
Как следует из названия — не нужно вынимать МК из платы — прошивка происходит прямо в схеме, через специальный разъём, что довольно удобно =) да и программатор довольно прост (естественно его можно просто купить):

STK200/300 — Наверное самый распространённый SPI-программатор для AVR. Это его буферизованная версия т.е LPT-порт компа защищён буферными элементами микросхемы 74LS244 от каких-либо непредвиденностей. Можно ещё добавить резисторы по 100-200 Ом между портом и микросхемой

вот попроще
, а вот знаменитые “пять проводков” проще некуда=), но и LPT ничто не спасёт в случае чего=)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Также есть COM-версия (прогромматор Громова)

Есть еще куча разных вариаций последовательных программаторов, через USB в том числе.

JTAG это собственно интерфейc (последовательный) для внутрисхемной отладки
(разработанный группой ведущих специалистов по проблемам тестирования электронных компонентов Joint Test Action Group), то есть прям почти на ходу можно в самые недра МК заглянуть — посмотреть что там во всех регистрах творится, ну и прошить можно заодно=) Но программатор относительно сложен (и весьма дорог) так что в любительских условиях это скорее экзотика.
Например AVR miniICE
.
.
.
.
.
.
.
.
.
.
.
.
Параллельный “высоковольтный” программатор стоит гораздо дороже, шьёт быстрее, и может помочь
“оживить” программно убитые МК.
Как, опять же, следует из названия данные в МК передаются параллельно т.е. требуется большое количество выводов МК, также требуется источник “высокого” напряжения 12в. Основное применение этого режима — массовая прошивка МК перед установкой в устройства в промышленных масштабах/условиях.
То есть схема посложнее будет=)
Вот например “Простой параллельный программатор для AVR” ну и конечно тут придётся МК из панельки выковыривать=)

DAPA
Ну а бутлоадер прошивается в ардуину через SPI.
Причём разработчики соригинальничали и придумали для этого свой программатор =)

Да ещё и периодически обзывают его ParallelProgrammer,(это у них сокращение такое — так он Parallel Port Programmer), а вообще зовётся он DAPA.

Про загрузку бутлодера и мои приключения с DAPA можно почитать здесь.

Робот своими руками - Простой программатор AVR. AVRDUDE.


Для того чтобы запрограммировать ("прошить") микроконтроллер, необходим программатор. Программатор представляет собой программно-аппаратный комплекс, состоящий непосредственно из устройства, связывающего микроконтроллер с компьютером, и программы, которая этим устройством управляет. Программатор заносит подготовленную для микроконтроллера программу в его память.

Наиболее распространенным способом программирования для AVR является внутрисхемное программирование (функция ISP - in-cirсuit serial programming) через коммуникационный интерфейс SPI. Этой возможностью обладают все микроконтроллеры AVR, кроме Tiny11 и Tiny28. Данный режим удобен тем, что позволяет программировать AVR, расположенный в готовом устройстве, то есть вам не нужно вытаскивать микроконтроллер из платы каждый раз, когда вы хотите его перепрограммировать.

Интерфейс SPI (Serial Peripheral Interface) представляет собой 3 линии: SCK, MISO и MOSI.

SCK (SPI ClocK)
Тактовый сигнал, который программатор формирует на линии SCK.

MOSI (Master Out, Slave In - вход ведомого, выход ведущего)
Линия передачи данных от программатора (ведущий), к программируемому микроконтроллеру (ведомый). Во время каждого импульса на линии SCK передается один бит от программатора к программируемому микроконтроллеру по линии MOSI.

MISO (Master In, Slave Out - выход ведомого, вход ведущего)
Линия передачи данных от программируемого микроконтроллера (ведомый) к программатору (ведущий). По каждому импульсу на линии SCK передается один бит от микроконтроллера к программатору по линии MISO.

Для обеспечения нормальной связи по трем SPI линиям необходимо соединить общую землю (GND) на программаторе и программируемом устройстве.

Для входа и нахождения в режиме последовательного программирования используется линия сброса (RESET). Она должна удерживаться в активном состоянии (низкий уровень) во время программирования AVR. Также при стирании чипа на линии RESET должен быть сформирован импульс в конце цикла стирания.

Кроме того, может использоваться вывод контроллера XTAL1 для тактировки контроллера программатором при отсутствии кварцевого резонатора.

При программировании AVR программатор всегда функционирует как ведущее устройство, а микроконтроллер как ведомое.

Программная часть

В интернет можно найти множество программ, работающих с теми или иными типами устройств для программирования микроконтроллеров AVR. Большинство из этих программ совершенно бесплатны.

AVRDUDE
В состав пакета WinAVR входит мощная утилита AVRDUDE. Она позволяет загружать программы и данные в память микроконтроллера, а также считывать их оттуда. AVRDUDE использует SPI-интерфейс. Существуют версии для Windows и Linux. Первоначальный код был написан Брайеном Дином (Brian S. Dean) и имел название avrprog.

AVRDUDE может использоваться через командную строку, чтобы читать или записать все типы памяти кристалла, или при помощи графического интерфейса. Использование AVRDUDE из командной строки удобно для полного программирования всей памяти кристалла, в то время как графический интерфейс полезен для исследования содержания памяти, изменения отдельных байтов EEPROM, fuse и lock битов и т.д.

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

AVReAl
Предназначен для программирования AVR с использованием SPI-интерфейса. Отличается простотой использования и поддерживает несколько основных типов популярных простых программаторов, подключаемых к параллельному порту (LPT). Существуют версии для DOS и Windows (существует версия и для Linux). Во всех вариантах запускается только из командной строки с необходимыми ключами, графический интерфейс отсутствует. Написан Александром Редчуком. Сайт программы: http://ln.com.ua/~real/avreal/

IcProg
Поддерживает полтора десятка популярных LPT-программаторов, в том числе самых простых. Осуществляет программирование кристалов через SPI. Имеет удобный графический интерфейс, переведенный на русский язык. Автор Bonny Gijzen. Свободно распространяется в Интернете на сайте http://www.ic-prog.com/. PonyProg
Свободная GNU-утилита с открытым исходным кодом для программирования Flash-микросхем с последовательным доступом. PonyProg написан Клаудио Ланконелли (Claudio Lanconelli) и существует в Windows и Linux версиях. Имеет поддержку русского языка. Может использовать стандартный последовательный порт (COM) или параллельный (LPT) порт. Поддерживает ряд популярных программаторов.
Аппаратная часть
Простой программатор AVR

Схема простого программатора AVR
Разъем, подключаемый к параллельному порту ПК, показан со стороны пинов
Один из самых простых программаторов состоит из 25-контактного разъема для параллельного (LPT) порта, 4-х резисторов (150 Ом) и соединительного кабеля, длина которого не должна превышать 1,5 метра. Резисторы необходимы для предохранения параллельного порта в случае неправильного монтажа и некоторых других неприятностей.

Схема получила свое название от отладочных плат Atmel для быстрого начала работы с микроконтроллерами AVR. Если вы хотите, чтобы ваш программатор почти в точности соответствовал классическому программатору STK200, то следует поставить перемычку для определения программатора программным обеспечением (для AVRDUDE не обязательно). Перемычка должна соединять выводы 2-12.

Следует обратить внимание, что схема не имеет промежуточного буфера и не имеет гальванической развязки по отношению к параллельному порту, поэтому во избежание вывода из строя параллельного порта подключать и отключать кабель следует при выключенном питании на плате, где установлен контроллер. Кроме того, когда программатор подключен к параллельному порту, следует избегать короткого замыкания его выводов.

Настройка AVRDUDE

В Windows 2000 и Windows XP запрещена прямая работа с параллельным (LPT) портом, поэтому для нормальной работы AVRDUDE необходимо установить драйвер giveio.sys. Для установки этого драйвера зайдите в папку WinAVR\bin и запустите файл install_giveio.bat (удалить драйвер из системы можно, запустив файл remove_giveio.bat).
В Windows 98 никаких специальных настроек не требуется.

Универсальный мини программатор из Ардуино Uno своими руками, прошивка ArduinoISP

Какое-то время у меня валялась Arduino Uno. И вот нашлось ей применение. Сделал удобный шилд для прошивки ходовых контроллеров в разных корпусах. Теперь данная отладочная плата активно используется. Шилд позволяет прошивать довольно много контроллеров от ATMEL, которые все еще популярны среди самодельщиков по многим параметрам. Итак, под катом изготовление шилда для прошивки микроконтроллеров Atmega8 (168/328), Attiny13(45/85), причем, как в DIP корпусах, так и в QFP и SOIC, используя адаптеры.

Ссылку я дал на похожую отладочную плату Arduini Uno, поскольку уже и не помню где брал свою. Моя платка с закосом под оргинал (конечно же это копия — поскольку брал в Китае):


Собственно, тут уже было немало обзоров на эту плату, поэтому перейдем сразу к шилду.
Схема шилда, довольно простая:

Конденсатор C4 позволяет не перезагружаться самой Arduino Uno во время прошивки, без него такое бывает и прошить не удается. На схеме видно два разъема для подключения контроллеров в корпусах dip28 и dip8. Для dip28 предусмотрен кварц с конденсаторами С2 и С3. Также на плате предусмотрен стандартный разъем ICSP для подключения, например, своих плат и их прошивки. Как и при типовом использовании, вывод 10 Arduino соединен с RESET программируемых контроллеров. Выводы 11, 12,13, представляющие ICSP соединены с аналогичными на подключаемых микроконтроллерах. На подключаемые контроллеры подается питание и земля от Arduino Uno. К выводам Arduino 7,8,9 через токоограничительные резисторы в 1КОм подключены индикационные светодиоды. Наш шилд позволит прошивать популярные контроллеры: Atmega8 (168/328), Attiny13(45/85), причем, как в DIP корпусах, так и в QFP и SOIC, используя адаптеры.

Платка получилась такая:


Желающие могут скачать файл платы, в формате для Sprint Layout. Также можно скачать готовые для заказа в Китае (или на местном производстве) gerber-файлы.

На плате видны две версии отверстий для dip28 в узком и широком корпусе, это сделано для подключения адаптера QFP32 в DIP28, обзор которого я делал здесь. Кроме того, если припаять разъем для узкой версии контроллера, то в отверстия для широкой версии можно припаять линейки штырьков и сразу тестировать прошитый контроллер. Для dip8 я также предусмотрел, помимо адаптера, отверстия для штырьков. Также имеются две версии ICSP разъемов широкий (10 контактов) и узкий (6 контактов), ну и все остальные детали, присутствующие на схеме. Светодиоды, резисторы и конденсаторы (22пФ) я использовал SMD 1206. Светодиоды распределил так: Зеленый — READY, Красный — ERROR, Желтый — PROG. Также предусмотрел штырьки для дополнительного питания и земли, которые могут потребоваться при тестировании прошиваемого контроллера.

Платы я заказывал в dirtypcbs.com, скорее всего я бы изготовил их ЛУТ-ом, но данный сервис разрешает панелизацию, а у меня как раз нашлось подходящее место на плате в заказе, да и спешки особой не было. Заводская плата выглядит все-таки гораздо лучше. Вот так они выглядят:


Припаиваем детали, я изготовил 2 версии, для широкого dip28:


Здесь я не стал припаивать штырьки и разъемы, так как планирую эту плату использовать для прошивки контроллеров с помощью адаптеров в корпусах SOIC и QFP.
Для узкого dip28:


Как видно из фото, для подключения микросхем в dip корпусах я использовал цанговые разъемы, мне они нравятся больше.
Адаптер QFP32 в DIP28 для подключения в широкую версию шилда:

Встает отлично:

Весь бутерброд, включая Arduino Uno:


Для узкой версии со вставленным контроллером ATtiny85:

Для прошивки контроллеров в SOIC8 корпусе я использую также адаптер:

Для того чтобы наша конструкция стала программатором, следует без шилда загрузить в Arduino Uno прошивку ArduinoISP, идущую в комплекте с любой версией Arduino IDE:

С таким шилдом стало очень удобно и быстро прошивать и тестировать контроллеры в различных корпусах, не боясь нарушить соединения как здесь:

Пример загрузки программы мигания диодом с помощью шилда и проверка его работы на месте:


На этом заканчиваю. Спасибо всем, кто дочитал до конца! Надеюсь, что кому-то приведенная информация окажется полезной. Всех со странным праздником: Старым Новым Годом!

Схема lpt программатора для аркадии. Делаем LPT программатор для AVR микроконтроллеров. Для изготовления LPT программатора нам понадобится

Самый простой вариант программатора для AVR это пять проводков, припаиваемых к порту контроллера и втыкаемых в LPT порт. Не спорю, можно и так. Но я все же не рекомендую этот способ. Даже схему подключения давать не буду — если надо будет сам найдешь. Так как данный метод не очень стабилен, возможны сбои при прошивке , длина проводков ограничена двадцатью сантиметрами (если больше, то будет глючить), поэтому придется шариться в комповой заднице. Да и LPT порт спалить проще простого . В общем не рулез.

Шарясь по инету, я нашел отличный программатор, работающий через RS232 он же COM порт. А также удобную программу для прошивки контроллера UniProf от Николаева. Схему программатора придумал Громов, создатель Algorithm Builder.

Для сборки программатора потребуется:

  • Три диода, любых из маломощных. Например 1N4148.
  • Семь резисторов на 1кОм. У меня резисторы типоразмера 1206
  • Если будешь делать по моей печатной плате, то можешь еще купить 3 резистора на 0 ом — перемычки, они же пофигисторы.

Печатная плата либо рисуется маркером, либо, как у меня, делается методом лазерного утюга.

Разьем DB9, что на фотке, я поставил для удобства. У меня туда подключаются разные прошивающие шнуры либо вот такой вот адаптер:


Программатор запаян, контроллер к нему подключен. Пора убедиться в том, что все сделано верно.

Запускай UniProf.exe и выбирай номер СОМ порта к которому у тебя подключен программатор. Сразу же должен определиться тип контроллера и высветиться над левым окном кода.

Не получилось? Тут три варианта:

  • Программатор спаян криво.
  • Дохлый контроллер.
  • Неправильно припаял проводки к микроконтроллеру.

Еще раз все досконально проверяешь и пробуешь снова. Должно получиться.

Дальше, если до этого ты никогда не работал с контроллерами, тебе возможно потребуется тестовая программа. Она не будет делать ничего полезного, зато позволит тебе точно быть уверенным, что все что ты сделал до этого ты сделал правильно.

Скачиваешь Atmel AVR Studio — это официальная среда для разработки программ под микроконтроллеры AVR . Студия поддерживает все микроконтроллеры семейства Atmel AVR . Найти ее последнюю версию можно на сайте Atmel.com

Далее создавай новый проект, в качестве языка программирования выбирай Assembler и укажи папку и имя где будет располагаться твой проект. В качестве отладчика бери AVR SIMULATOR и укажи с каким именно контроллером ты будешь работать. После чего забивай в текстстовое окно простейшую программу.

Вот ее примерный текст:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 .INCLUDE "m16def.inc" ; это подключается список макроопределений; без него компилятор не будет знать под какой; именно процессор мы собираем программу; если у тебя другой контроллер, то подставь; соответствующий инклюдник. Они находятся в; папке AVR Studio по адресу; "AVR Tools\AvrAssembler\Appnotes\" .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; задаем весьма удобный макрос, позволяющий; записать произвольное заданное число в любой; регистров за одну строку кода. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Директива начала кода с адреса 0х0030 ; адрес взят с большим запасом, потому как; у разных AVR разных размеров таблица; прерываний. Так что уж чтобы наверняка! RESET: ; стартовая метка OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Конфигурируем направления портов на выход; Если данный контроллер не имет, например, порта; С, то эту строчку надо закомментировать. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Выдаем на выходы 10101010, чтобы получить; четкую картину того, что на портах произошли; изменения. После выполнения программы; на выходах микроконтроллера в шахматном порядке; будут либо напряжение питания, либо земля. Что; легко проверяется либо вольтметром, либо простейшим; пробником на светодиоде. RJMP RESET ; Зацикливаем программу.

INCLUDE "m16def.inc" ; это подключается список макроопределений; без него компилятор не будет знать под какой; именно процессор мы собираем программу; если у тебя другой контроллер, то подставь; соответствующий инклюдник. Они находятся в; папке AVR Studio по адресу; "AVR Tools\AvrAssembler\Appnotes\" .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; задаем весьма удобный макрос, позволяющий; записать произвольное заданное число в любой; регистров за одну строку кода. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Директива начала кода с адреса 0х0030 ; адрес взят с большим запасом, потому как; у разных AVR разных размеров таблица; прерываний. Так что уж чтобы наверняка! RESET: ; стартовая метка OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Конфигурируем направления портов на выход; Если данный контроллер не имет, например, порта; С, то эту строчку надо закомментировать. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Выдаем на выходы 10101010, чтобы получить; четкую картину того, что на портах произошли; изменения. После выполнения программы; на выходах микроконтроллера в шахматном порядке; будут либо напряжение питания, либо земля. Что; легко проверяется либо вольтметром, либо простейшим; пробником на светодиоде. RJMP RESET ; Зацикливаем программу.

Далее жми на кнопку компиляции (или F7 ) и лезь в папку своего проекта. Там тебя уже должен поджидать ****.hex файл с прошивкой.
Запускай UniProf.exe , жми на кнопочку с открытой папкой и надписью HEX . Выбирай свой свежескомпиленный проект и жми ок.
Вторым окном UniProf попросит тебя ввести данные EEPROM , у нас EEPROM не используется, поэтому нажимай отмену .
Все, теперь можно прошивать. Жми на красную стрелку с надписью Prog и жди. По окончании можешь нажать чтение и поглядеть что записалось в твой контроллер — должно показать то же самое, что и было уже загружено в окно.

Теперь тебе остается подать питание на свой микроконтроллер и посмотреть что появилось на портах. Увидел «гребенку» из высоких и низких уровней напряжения? Отлично! Ты прошил свой первый в жизни контроллер! Теперь ты можешь с головой занырнуть в изучение микроконтроллеров AVR.

Если не заработало, то вот возможные грабли и пути решения.

  • Современные компьютеры, с гигагерцовыми процессорами, новомодными Вистами и Семерками очень плохо дружат с этим программатором. Мало того, что у вас может банально не обнаружиться COM порта, а если и будет так еще не факт что все заработает как надо. Рекомендую собрать себе для радиотехнических опытов из подручного хлама что то вроде PIII 800/Windows’98. Бесплатно нарыть такое чудо проблем не составит и сжечь не жалко, если что не так
  • Данная схема не работает через переходники USB-COM или работает, но ОЧЕНЬ медленно. Скажем прошивка одного микроконтроллера может длиться часа полтора.
  • Питание, на первый раз, лучше всего брать с блока компа . Меньше вероятность что либо сжечь или ошибиться
  • Проверяте схему по 3-4 раза! Т.к., судя по комментам, большая часть проблем из-за кривого монтажа.
  • Перед запуском программы в МК НУЖНО ОТКЛЮЧИТЬ ПРОГРАММАТОР и подать на вход RESET +5 вольт через резистор в 1..10кОм. С подключенным программатором ничего работать не будет, т.к. он прижимает RESET и не дает кристаллу стартовать.
  • Если UniProf не определяет МК, возможно у вас слишком быстрый компьютер. Для компенсации этого «недостатка» нужно включить галочку «Тормоз» Она показывается если отключить снятием галки EEPROM панель отображения данных EEPROM.
  • Если галка Тормоз не помогла, то пробуйте на другом компе. Т.к. тут СОМ порт обрабатывается в нештатном режиме, а значит не факт, что ваш СОМ порт поймет все правильно.
  • На худой конец, если ничего не помогает, попробуйте программатор из 5 проводков или другую прошивающую программу, например avrdude. Провода делайте как можно короче! 10-15 сантиметров это МАКСИМУМ!
  • Читайте комменты к записи . Там многие косяки уже были разобраны. Возможно и ваш окажется среди них.

Дополнение от Outsider :
1. Если сзади у компа нет разъема COM-порта, то это не на 100% означает, что такого порта нет на материнской плате в принципе. Пока еще на матерях встречаются разъемчики с 9 штырьками в два ряда — подробнее нужно смотреть документацию к материнской плате. Я на своей ASUS P5K SE нашел и успешно заюзал.

2. Да, +5 и GND это не земля и контакт из COM-порта, а именно внешнее питание. Проще всего его добыть в компе — +5 есть в красном проводе на любом из разъемов, питающих жесткие диски. А GND — на корпусе самого компа. Или на черном проводе того же разъема.

3. Если с UniProf что-то не срастается, то можно попробовать avrdude. Чтобы это сделать, нужно прописать в avrdude.conf следующее:

programmer
id = «nikolaew»;
desc = «serial port banging, reset=dtr sck=rts mosi=txd miso=cts»;
type = serbb;
reset = 4;
sck = 7;
mosi = 3;
miso = 8;
;

А затем запустить avrdude со следующими параметрами:

avrdude -n -c nikolaew -P com1 -p m16

Если все в порядке, то программа скажет:
avrdude: AVR device initialized and ready to accept instructions

Дополнение от Riko
Эксприменатально было выяснено, что для правильной работы этого программатора напряжение питания МК должно быть не ниже 5 вольт (но не выше 5.5!!!). То есть если МК подключен к трем пальчиковым батарейкам, то вы обламываетесь, так как там 4.5 вольта! Запитывайте от компа!!!

Дополнение от SLY_DEr
Не работало. Сменил резисторы с 3к (не было на 1к) на 460ом’ные — заработало, но с ошибками.
Решил чисто ради спортивного интереса снизить скорость ком-порта в диспечере устроиств и о, чудо, все заработало как надо. Скорость порта снизил с 9600к до 4800к и плюс убавил буфер приема и передачи (там же) до значений 4 и 6 соответственно.

Если что непонятно, то не стесняйся спрашивать у меня в комментах.

З.Ы.
Если не получается ну никак, то может быть ваша материнска плата не поддерживает столь нестандартное обращение с COM портом и стоит попробовать другие программаторы? Например, или . Они хоть и сложней, но зато работают более корректно, без извратов.

Вот схема самого простого, и в тоже время 100% рабочего программатора для AVR микроконтроллеров. Эта схема определяется софтом как ATMEL “STK200/STK300” Что позволяет использовать его совместно с софтом, поддерживающим данный вид программатора, например CodeVisionAVR, Pony-Prog или AVReal.

Схема программатора.

Этот программатор проверен лично мною с CodeVisionAVR.

Вот более сложный программатор для программирования AVR микроконтроллеров, фирмы ATMEL. В нём применена микросхема - буфер, для защиты прота микроконтроллера от повреждений. Данный адаптер аналогично подключается к LPT порту компьютера.

Технические характеристики программатора:
Подключение к порту: LPT
Напряжение питания: 5 В
Потребляемый ток: 10 мА
Схема программатора:

Вниамние! Если программируемый МК будет питаться внешним источником питания то объязательно надо соеденить минус компьютера (25 ножка LPT порта) с минусом микроконтроллера.

Программатор и МК питаются от ПК, тем самым обеспечивается стабильное питание программатора и программируемого МК. Длина соединительных кабелей не должна превышать 20 см. Устройство собрано на микросхеме буфера U1 SN74HC244 которая сейчас достаточно легкодоступна. Программатор подключается к выводам MOSI, MISO, XTAL1, RESET, SCK, VCC, GND программируемого МК. Правильно собранному адаптеру не требуется настройка.

Прошивка микроконтроллера.

Для прошивки микроконтроллера данным адаптером, нужно использовать софт совместимый с программатором ATMEL “STK200/STK300” , например Pony-Prog или AVReal. Но мы используем программатор, который встроен в CodeVisionAVR. Ну что ж, от слов к делу...

Для начала вам нужен сам CodeVisionAVR. Думаю с установкой и запуском проблем возникнуть не должно...

И так. Запускаем CodeVision потом переходим в меню Settings > Programmer в появившемся окошке выбираем программатор Kanda Systems STK200+/300 и номер LPT порта. Обычно это LPT1: 378h .

Потом идём в Tools > Chip Programmer В появившемся окошке перейдите в меню File > Load FLASH . Выберите тип файла Intel HEX files (*.hex) потом укажите путь к файлу прошивки.

Если в устройстве вы хотите использовать внешний кварцевый резонатор то вам придется запрограммировать фьюз. Например если вам нужен кварц от 3 до 8 мГц, то фьюзы должны быть запрограммированы вот так:

Для того чтобы прошить МК и фьюзы, надо нажать на кнопку Program ALL.


26.04.2014
sPlan - удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены...

Очень удобная программа для чтения pdf Foxit Reader
26.04.2014
Foxit Reader - Компактная и шустрая программа для чтения PDF файлов. Может служить альтернативой для популярного просмотрщика PDF - Adobe Reader....


22.04.2014
Proteus VSM - программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры....


01.04.2014
Проект сайт который долгое время находился в застывшем состоянии снова принимается за работу с новымы силами, с новыми статьями и с...

Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM - программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры....

Splan 7.0.0.9 Rus + Portable + Viewer Fiinal
26.04.2014
sPlan - удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены...

Цифровая паяльная станция своими руками (ATmega8, C)
27.05.2012
Состав: ATmega8, LM358, IRFZ44, 7805, мост, 13 резисторов, один потенциометр, 2 электролита, 4 конденсатора, трехразрядный светодиодный семисегментный...

Тахометр на AVR микроконтроллере (ATtiny2313, C)
13.01.2010
Данное устройство представляет собой неплохой тахометр, предел его измерений составляет 100 - 9990 об/мин. Точность измерения - ± 3 об/мин....

Перед начинающими вопрос “а чем мы будем прошивать свой контроллер?” встает практически сразу. Эта проблема решается двумя путями - покупаем серийный программатор или собираем свой собственный. Естественно нецелесообразноприобретать какой либо из серийных программаторов на начальном этапе знакомства с микроконтроллерами. Самым простым решением будет так называемый программатор «пять проводков». Это вариант вполне подойдет для разового применения, но существует большая опасность, что рано или поздно ваш LPT - порт в компьютере сгорит. В качестве бюджетного и безопасного варианта программатора для параллельного порта мы используем более совершенную схему.

Представляем простой и безопасный программатор для параллельного порта. Схема программатора достаточно распространена в различных вариациях и основана на использовании микросхемы-буфера 74HC 244N . Буфер сохраняет ваш порт принтера в целости и сохранности. Дополнительно в схему включен резистор, задачей которого является защита от статического электричества.

Программатор совместим с Атмеловскими STK 200/300 и поддерживается многими популярными компиляторами. Весь небольшой набор деталей для его сборки достаточно распространен и не вызовет трудностей с приобретением. Печатная плата выполнена в одностороннем варианте с несколькими перемычками.

Для подключения программатора к компьютеру удобно использовать кабель - удлинитель LPT -порта.

Схема в формате sPlan 6.0 и разводка платы в формате Sprint Layout 4.0 под ЛУТ вы можете скачать ниже.

Программатор из 5 проводков для микроконтроллеров AVR является самым простейшим программатором, который можно собрать на "коленке". Устройство подключается к ПК через LPT порт, что является недостатком программатора т.к. в современных материнских платах не часто можно встретить наличие порта.

Для изготовления программатора понадобятся:

1. Штекер из 25-и контактов для параллельного порта (LPT) DB-25M.

2. Резисторы любые 4 шт. номиналом 100-150 Ом для защиты порта от короткого замыкания и неправильного монтажа.

3. Шлейф или МГТФ провод. Для предотвращения ошибок от помех и наводок при чтении и записи микроконтроллера рекомендуется использовать провод длинной до 20см.

4. Термоусадочная трубка для изоляции оголенных участков проводников, которая предотвратит короткое замыкание.

Сборка программатора

На рисунке изображена схема распайки проводников и резисторов R1-R4, а так же перемычек.

Контакт №6: SCK - последовательный тактовый сигнал (англ. Serial Clock). Служит для передачи тактового сигнала для ведомого устройства.

Контакт №7: MOSI - выход ведущего, вход ведомого (англ. Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому.

Контакт №9: RESET - сброс, используется для входа и нахождения в режиме последовательного программирования.

Контакт №10: MISO - вход ведущего, выход ведомого (англ. Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.

Контакт №18-25: GND - контакти земли, объединяться с контактом питания GND программируемого микроконтроллера. Можно подключить 1-н контакт на выбор не обязательно все.

Контакт №2,12; 3,11: Перемычки, для определения программатора как STK 200,300.

Видео к статье:

Для предотвращения вывода из строя параллельного порта подключать и отключать программатор следует при выключенном питании на микроконтроллере, а также не допускать замыкания контактов программатора.

Если программируемый микроконтроллер будет питаться внешним источником питания (батарейки, блок питания), то обязательно нужно соединить минус компьютера (GND 18-25 контакти LPT порта) с минусом микроконтроллера.

Прошивка микроконтроллера - это запись в его постоянную память заданной программы, которая представляет собой код в шеснадцатеричной системе счисления (файл с расширением hex). Прошивка происходит с помощью специального устройства - программатора. Они отличаются по способу подключения к персональному компьютеру, например через USB, LTP,COM интерфейсы.

Микроконтроллеров AVR для программирования имеют пять контактов: MOSI - предназначен для приема данных; MOSO - для вывода данных; SCK - вывод синхроимпульсов; RESET просто сброс и общий провод.


Подсоединим эти пять контактов через токоограничивающие резисторы к параллельному LPT порту компьютера и получим самый простой LPT программатор микроконтроллеров семейства AVR.

При сборке схемы нужно чтобы кабель был экранированный, особенно хорош для этих целей старый интерфейсный кабель от принтера. Если использовать обычный кабель, то его длина должна быть как можно короче, и то иногда возникают ошибки при программировании. Но главный недостаток этой схемы тот, что при не качественном монтаже или ошибки подключения можно вывести из строя LPT порт компьютера

Схема USB программатора для микроконтроллеров AVR, выполнена на микроконтроллере Atmega8. Схема очень надежная и имеет одну очень важную особенность, позволяющую восстанавливать микроконтроллеры с ошибочно установленными фьюзами.


Для прошивки микроконтроллера Atmega8 программатора необходимо использовать любую из рассмотренных схем выше для LPT.

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

В идеале у нас должен получится такой USB программатор


Остается лишь записать программу в память микроконтроллера, для этого лучше всего использовать утилиты Uniprof и Code Vision AVR.

Программа предназначенная для интегрированной среды разработки программного обеспечения под AVR микроконтроллеры. Основными особенностями CodeVisionAVR является то, что он легкий и очень понятный для самостоятельного изучения, а также поддерживает все существующие микроконтроллеры AVR.

Если вы решили использовать программу Uniprof необходимо задать следующие фьюзы.


По окончанию прошивки микроконтроллера Atmega8, переключаем тумблер SA2 в НОРМ, и подключаем программатор к USB . Компьютер должен найти устройство. После этого обязательно устанавливаем драйвер из архива. По завершению установки драйвера для программатора, он полностью готов к работе.

Программатор способен работать со следующими оболочками AVR Prog, AVR Studio, ChipBlasterAVR и, одна из самых удобных, Code Vision AVR.

Плата для параллельного программирования AVR: 5 шагов

Несколько недель назад я решил сделать простой веб-сервер на базе некоторого AVR-чипа ( Вскоре появится инструкция с описанием проекта 🙂 ). Идея заключалась в том, чтобы сделать схему как можно более простой и повторно использовать существующие доступные библиотеки. По этой причине я решил основать веб-сервер на Atmega328 , что могло бы позволить мне использовать IDE Arduino и библиотеки для создания программы, потому что упомянутый чип является сердцем Arduino Uno, Arduino Duemilanove и Arduino Nano. .Я не хотел, чтобы загрузчик сгорал, чтобы максимально сохранить свободную память. Для этого я не использовал интерфейс USB. Оставил только порт программирования ISP. Поскольку на микросхему PHY (MAC) может подаваться максимальное напряжение 3,6 В, я решил запустить все устройство при низком напряжении питания (3,3 В). Предварительное намерение состояло в том, чтобы использовать USBasp с опцией 3,3 В в качестве программатора, но я обнаружил, что, если я попытаюсь запрограммировать чип AVR с его помощью, регулятор напряжения веб-сервера перегреется. Попытка снабдить программатор регулятором веб-сервера также не увенчалась успехом - программатор не распознавался ПК.Тогда я нашел решение - запрограммировать микросхему AVR на макетной плате, куда мне нужно вставить все кабели, два конденсатора по 22 пФ и кристалл кварца. И каждый день, когда я хотел «поиграть» с веб-сервером, чтобы повторить эту сборку, меня это раздражало.
Я решил сделать простую плату программирования, в которую мне нужно только вставить микросхему AVR, запрограммировать ее и снова вставить на плату веб-сервера. Я хотел повторно использовать множество старых компонентов и сделать программиста простым, легким и эффективным.
Где-то в моих вещах был старый разъем " Centronics ", извлеченный из неисправного старого струйного принтера. Я решил использовать его повторно и сделать параллельный программатор. Внимание: Этот программатор будет работать на ПК с LPT портом. Я предполагаю, что он будет работать и с адаптером USB 2 LPT, но я это не тестировал. Также возможно, что какая-то ОС может заблокировать доступ к порту LPT - в этом случае может быть , эта плата программатора не будет работать.Он был успешно протестирован на ПК, работающем под Windows XP со встроенным LPT-портом.

Создайте свой собственный, очень простой и универсальный программатор AVR !! - Блог о встроенной электронике

В этом посте мы увидим, как сделать свой собственный, сверхпростой и универсальный программатор AVR. Могут быть построены два типа программаторов AVR:

1) Параллельный порт
2) Последовательный порт


Программатор последовательного порта (ссылка: At-Prog) показан здесь. Основным преимуществом использования последовательного порта является длина кабеля до 2 м.Вы можете использовать программное обеспечение PonyProg2000 для программирования вашего AVR с помощью этого программатора. Последовательный порт генерирует + - 12 В на своих выводах, поэтому диоды и стабилитрон используются для ограничения +12 В до + 5,0 В (4,7 В из-за стабилитрона + 0,3 В из-за bat85) и от -12 В до -0,3 В (из-за более низкого напряжения Bat85. ). Вы можете заменить Bat85 на 1n4148, однако это не рекомендуется, потому что этот диод будет зажимать +12 В и -12 В до + 5,4 В и -0,7 В, что нежелательно, согласно спецификации микроконтроллера. Дело не в том, что микро сгорит, если использовать диоды 1N4148, но зачем рисковать !!

СХЕМА:

ПЕРЕЧЕНЬ КОМПОНЕНТОВ:

1) Резисторы 1K, 1/4 Вт 4
2) Конденсаторы 27пФ, диск 2
1 мкФ, электролитический 2
3) Кристалл 4 МГц ИЛИ 8 МГц 1
4) Регулятор напряжения 7805 1
5) Разъем D9 Женский 1
6) Диод Бат85 8
7) Стабилитрон 4.7 В 1
8) Сетка PCB 3 ″ x 3 ″
9) Соединительные провода

примерная стоимость: 90 рупий

НАСТРОЙКА И ИСПОЛЬЗОВАНИЕ PONYPROG2000:

  1. Все шаги такие же, как описано в разделе программатора параллельного порта, однако на третьем шаге выполните следующие настройки: выберите «последовательный», из списка выберите «SI prog I / O», выберите «COM1» (обычно последовательный порт находится на COM1 , если на вашем компьютере несколько последовательных портов, будут активны несколько параметров.Выберите подходящий, если знаете, иначе выполните метод проб и ошибок), отметьте «Инвертировать сброс». Щелкните ОК.

Примечание: это уже устарело! Эта информация была сохранена здесь только для устаревших целей. Вместо этого используйте программатор на базе последовательного порта .

На следующей принципиальной схеме показан сверхпростой микроконтроллер AVR (ИСТОЧНИК: неизвестен). Он требует очень мало компонентов и его очень просто построить на матричной печатной плате общего назначения. Вы можете использовать программное обеспечение PonyProg2000 для программирования вашего AVR с помощью этого программатора.

СХЕМА:

ПЕРЕЧЕНЬ КОМПОНЕНТОВ:

1) Резисторы 220 Ом, 1/4 Вт 4
2) Конденсаторы 27пФ, диск 2
1 мкФ, электролитический 2
3) Кристалл 4 МГц ИЛИ 8 МГц 1
4) Регулятор напряжения 7805 1
5) Разъем D25 Наружный 1
6) Сетка PCB 3 ″ x 3 ″
7) Соединительные провода

примерная стоимость: 55 рупий

• Поскольку схема программатора очень проста, вы можете использовать заменители, если конкретный компонент недоступен в вашем доме.
• Вы не получите готовую плату GPCB размером 3 x 3 дюйма, вам придется вырезать печатную плату стандартного размера. 3 x 3 дюйма - это грубая оценка

SNAPS:

На следующей фотографии показан программатор, который я сделал для микроконтроллеров AVR на 40 и 20 контактов. Контакты MISO, MOSI, SCK, RESET, X1, X2, VCC и GND 40-контактного и 20-контактного разъемов соединены вместе.

НАСТРОЙКА И ИСПОЛЬЗОВАНИЕ PONYPROG2000:

  1. Открыть PonyProg2000
  2. Выберите меню: Настройка> Настройка интерфейса
  3. Выберите «параллельно», в раскрывающемся списке выберите «Avr isp i / o», выберите «LPT1».Щелкните ОК.
  4. Теперь выберите меню «Настройка»> «Калибровка». В появившемся диалоговом окне нажмите ДА.
  5. Теперь PonyProg2000 настроен и готов к использованию.
  6. Чтобы записать файл .Hex в micro, выберите «Файл»> «Открыть файл программы (FLASH)».
  7. Выберите соответствующий микроконтроллер из списка устройств вверху справа. например>
  8. Подключите ваш программатор ckt к ПК, затем вставьте микроконтроллер в программатор ckt и включите его питание.
  9. Теперь щелкните обведенный значок:
  10. Когда устройство будет запрограммировано, вы получите сообщение «Программа успешно завершена».

• Принципиальные схемы, показанные выше, являются общими и подходят для любого микроконтроллера AVR, который поддерживает ISP (почти все AVR, вы можете обратиться на www.atmel.com).
• Подключите контакты (например, MISO, MOSI и т. Д.) AVR к соответствующим точкам показано на принципиальной схеме.
• Вы можете создать программатор для более чем одного устройства AVR, используя разные разъемы IC для каждого устройства и выполняя соответствующие соединения всех вышеперечисленных сигнальных линий (MISO, MOSI, SCK, RESET, X1, X2) и Vcc, Gnd каждого AVR.
• Предпочитайте использовать гнездо ZIF с основанием IC (см .: Как использовать гнездо ZIF в цепи без повторного сверления отверстий на печатных платах).Хотя это немного дорого, но оказывается чрезвычайно полезным.

[Всего: 7 Среднее: 3,1 / 5]

Нравится:

Нравится Загрузка ...

Связанные

Программатор AVR

Программатор AVR

Это простые программисты AVR. Я спроектировал и построил четыре разных программатора для различных сред: параллельный программатор, управляемый LPT, адаптер ISP, управляемый LPT, адаптер ISP, управляемый COM, и общий мост SPI, управляемый COM. Кроме того, адаптеры, управляемые через COM, можно использовать в качестве кабеля связи между главным компьютером и целевой платой, это полезно для отладки.

Эти программаторы AVR не имеют контроллера на программаторе и напрямую управляются сигналами порта. Таким образом, время программирования сокращается по сравнению с любыми другими программистами, потому что отсутствует какая-либо задержка связи, такая как последовательность команд / результатов между ПК и программистом. Эти программаторы также можно использовать со студией AVR :-).

Если у вас есть кабель загрузки JTAG, управляемый через порт LPT для устройств Xilinx, Lattice или Altera, его также можно использовать для программирования AVR.

Метод программирования на AVR

AVR имеет два разных режима программирования: , режим параллельного программирования, (параллельный режим) и , режим последовательной загрузки, (режим ISP).

В параллельном режиме программируемое устройство подключается к гнезду программатора, и на его вывод RESET подается напряжение программирования +12 Вольт. Связь между программистом и устройством осуществляется с помощью команд параллельного программирования, поэтому скорость программирования в два раза выше, чем в режиме ISP. Этот режим программирования используется для предварительного программирования многих устройств или / и режим ISP не может использоваться из-за конструкции платы. Однако большинство программистов, за исключением STK500, похоже, не поддерживают этот режим программирования.

В режиме ISP устройство обменивается данными через интерфейс SPI для программирования и проверки. Этот режим требует только трех сигнальных линий без напряжения программирования +12 В, так что он также может программироваться в конечной системе, это называется ISP (внутрисистемное программирование). Однако режим ISP не может изменять биты предохранителей на некоторых устройствах, а некоторые устройства не имеют функции ISP. Такие устройства необходимо программировать в параллельном режиме. Но большинство программистов AVR используют этот режим программирования, даже если он имеет сокет, у них такая же проблема.

Кроме того, имеется режим последовательного программирования с использованием напряжения программирования +12 В, который называется Режим последовательного программирования высокого напряжения . Этот режим программирования эквивалентен режиму параллелизма и доступен только для устройств с 8/14 контактами. Подробные сведения о каждом режиме программирования см. В технических паспортах устройства.

Программист параллельного программирования

Правое изображение показывает встроенный параллельный программатор, он компактен за счет использования множества устройств для поверхностного монтажа. Принципиальная схема этого программатора очень проста, но он поддерживает как режимы программирования высокого напряжения, параллельный режим, так и режим HVS.Этот способ программирования требуется в следующих случаях.

  • Программирование tiny10 / 11/28, у которого нет возможности ISP.
  • Замена любого предохранителя ранних устройств, 90S1200 / 2313/4414/8515.
  • Замена предохранителя SPIEN или RSTDISBL.

Следовательно, параллельный программатор не является тем, что требуется в большинстве случаев, подойдет только адаптер ISP. Однако для 8-контактных устройств часто требуется режим программирования HVS для настройки вывода сброса в качестве порта ввода-вывода.

Этот программатор использует 20-контактное гнездо ZIF для установки устройства, поэтому для его программирования требуется любой преобразователь гнезда, а не 20-контактные устройства (8,28,40).SOIC, TQFP, PLCC также требуют преобразователя гнезда для каждого пакета.

Выходное напряжение высокого уровня на LPT-порте на некоторых ПК может не достигать 3,5 В. В этом случае преобразователь уровня TTL-CMOS, такой как 74HC T 541, должен быть помещен в место, указанное пунктирной линией. Параллельный программатор управляется AVRPP.EXE (Win32).

Адаптер ISP (управляется через порт LPT)

Этот адаптер ISP разработан для снижения затрат и прост в сборке.В упрощенных адаптерах не используются полупроводниковые компоненты, сигналы портов напрямую связаны с целевым устройством, как показано на принципиальных схемах. Таким образом, этот адаптер очень прост, поэтому его можно собрать в течение нескольких минут, и его можно использовать для ознакомления. Но этот программатор ограничивает диапазон целевого напряжения питания до 4,5-5,5 В, потому что они не преобразуют уровни сигнала между ПК и целью, это может не соответствовать целевому уровню сигнала.

Это программное обеспечение поддерживает пять типов программаторов, оригинальную схему, ключ STK200 и кабели JTAG для устройств Xilinx, Lattice, Altera, управляемых через порт LPT.Связь между сигналами JTAG и AVR-ISP: TDO-MISO, TDI-MOSI, TCK-SCK и TMS-RESET. В этом случае целевое напряжение питания может составлять 3–5 В. Тип программатора, подключенного к порту LPT, определяется автоматически. Программатор ISP, управляемый портом LPT, управляется с помощью AVRSP.EXE (Win32) .

Адаптер ISP (управляется через COM-порт)

Это адаптер ISP, управляемый через COM-порт. Уровни сигнала линии RS-232C преобразуются в целевой уровень, так что целевое устройство может работать во всем диапазоне VCC.А также его можно использовать в качестве коммуникационного кабеля для связи между главным компьютером и конечной программой (это объясняется в следующем разделе). Этого адаптера ISP будет достаточно для разработки большинства приложений AVR.

На правом изображении показан встроенный ISP-адаптер для COM-порта. Он имеет переключатель для подключения / отключения адаптера ISP от целевой платы. Эта функция хороша для отладки процесса, сказал, что "Load-Runner" (программа / запускает снова и снова).

При сборке преобразователь уровня лучше размещать рядом с целевой платой с точки зрения стабильности и управляемости.Я построил и использовал некоторые адаптеры ISP и настроил эту форму. Этот адаптер ISP управляется с помощью AVRSP.EXE (Win32) или avrdude 5.1+ .

USBspi - мост SPI для USB

Последние настольные ПК на рынке, как правило, не имеют устаревших портов (COM / LPT), в частности, устаревшие порты на ноутбуках полностью исключены, и они были заменены портами USB. USBspi - это мост SPI общего назначения, подключенный к USB-порту. На мосту SPI R4 добавляется специальная команда AVR и время программирования (Erase + Write + Verify) равно 6.Достигается 6 секунд при 32 Кбайтах. Это в два раза быстрее адаптера COM-порта.

Правое изображение показывает построенный мост SPI. Это довольно мало 46 мм / 15 мм / 6 мм (Д / Ш / Т) из-за использования устройств в упаковке MLF. Источник питания может быть выбран из «Питание от цели (от 3 до 5 вольт)» или «Подача 5 / 3,3 вольт на цель (может, зависит от цели)». Это позволяет программировать / отлаживать целевую плату без источника питания, если есть только ноутбук.

Поскольку он называется мостом General Purpose SPI, его можно использовать не только для AVR, но и для универсальных устройств SPI (ограничено режимом 0).Это пример дампа карты памяти SD. Конечно, он будет работать с адаптером ISP, управляемым портом, с небольшими изменениями в модуле управления SPI. 8 сен.2007 г.

Использование управляющих программ

Есть несколько управляющих программ для каждого программиста AVR, и они запускаются в окне консоли. Их также можно использовать в операции быстрого перетаскивания с правильными настройками PIF (DOS) или .ini (Win32).

Основная особенность управляющих программ заключается в том, что они могут автоматически определять тип устройства и воздействовать на свойства обнаруженного устройства.Следовательно, достаточно указать только шестнадцатеричные файлы для программирования. Никаких опций устройства не требуется. Параметры командной строки также можно установить с файлом PIF или .ini по умолчанию.

Для параллельного программиста доступна тестовая программа на основе DOS, которая может вручную манипулировать любым выводом сокета. Программисту ISP avrsp -z выводит тестовый сигнал на линии SCK для проверки совместимости системы.

Проектирование схем с учетом ISP

При использовании AVR с режимом ISP целевая плата должна быть спроектирована с учетом функции ISP, контакты ISP, RESET, SCK, MISO и MOSI должны быть зарезервированы для функции ISP.Однако в реальном приложении количество портов может быть недостаточным.

контактов ISP смогут совместно использовать функции ввода-вывода и ISP, если соблюдены некоторые условия. При использовании любого вывода ввода / вывода, который также назначен для функции ISP, необходимо соблюдать следующее.

  1. Вставьте резистор между контактом сброса и цепью сброса, чтобы избежать помех от цепи сброса.
  2. Убедитесь, что действие интернет-провайдера не влияет на другие функции.
  3. Не подключайтесь к внешней цепи во время работы ISP, иначе необходимо вставить резистор.
  4. Не подключайте большую нагрузку, например, влияющую на работу интернет-провайдера.
Стандартный разъем ISP

Atmel рекомендует эту схему расположения выводов, расстояние между выводами разъема 3x2 2,54 мм. При сборке кабеля или печатной платы ISP рекомендуется такая схема расположения контактов разъема ISP.

Нет места для разъема ISP

Когда целевая плата не имеет разъема ISP, она сможет выполнять действия ISP с помощью контактной площадки, как показано на правом изображении.

Последовательная связь через кабель ISP

Это специальная функция адаптера ISP, управляемого через COM.Этот адаптер ISP может использоваться для связи между главным компьютером и целевой платой с любыми терминальными программами, поскольку он позволяет назначать управляющие сигналы как COM-порт. Таким образом, он может напрямую связываться или отлаживать с помощью кабеля ISP. Чтобы включить эту функцию, должны быть выполнены следующие условия.

  • MISO и MOSI должны быть назначены для последовательной связи.
  • Инициализировать MISO как выход и MOSI как вход.
  • Обмен данными через MISO и MOSI в программно реализованном UART.

Запись устройств PIC24 через кабель ISP

Microchip выпустила 16-битное семейство PICmicro. Это мощные микроконтроллеры, такие как AVR, и кому-то из пользователей AVR будут интересны эти чипы. Я создал инструмент программирования PIC, используя кабели AVR-ISP. Это подойдет пользователям AVR, которые собираются ненадолго опробовать 16-битные PICmicro.

Инструмент программирования pic24sp основан на avrsp и имеет те же функции и использование. Поддерживаемые устройства: PIC24F , PIC24H и dsPIC33F .При использовании моста SPI он должен поддерживать набор команд расширения PIC (R3 или новее). 8-битные микросхемы PICmicro в настоящее время не поддерживаются, но когда устройства поддерживают функцию LV-ICSP, их можно будет программировать с помощью некоторых модификаций инструмента программирования. Устройства, которым требуется высокое напряжение на выводе MCLR во время ICSP, такие как dsPIC30F и старые PIC, не поддерживаются. Последовательная связь через кабель ISP по-прежнему поддерживается с учетом того, что целевое устройство должно управлять линией данных с открытым стоком Pch (Mark = H-Z, Space = High), потому что связь осуществляется через общую линию данных.10 декабря 2007 г.

Технические характеристики

  • Принципиальная схема программатора параллельного / HVS 30 января 2006 г.
  • Сокет-преобразователи для параллельного программиста 11 ноября 2004 г.
  • Принципиальная схема программатора HVS 8 / 14pin 30 января 2006 г.
  • Принципиальная схема адаптера AVR ISP (COM). Оригинальная схема. 30 апр '04
  • Схема адаптера AVR ISP (LPT). Оригинальная схема. 30 апр '04
  • Мост
  • SPI Rev.2. Документы, схема, прошивка и др.16 декабря 2007 г.
  • Принципиальная схема электронного ключа STK200 ISP (LPT). Самый популярный адаптер ISP. 30 апр '04
  • Схема подключения кабеля Xilinx JTAG (LPT). 30 апр '04
  • Принципиальная схема кабеля Lattice ISP (LPT). 30 апр '04
  • Схема
  • для Altera ByteBlasterMV (LPT). 30 апр '04
  • Управляющие программы на основе Win32 для Windows 9X / Me / NT / 2k / XP. Включая исходные файлы c. 16 июня '15
  • PIC24SP для Windows9X / Me / NT / 2k / XP с исходными файлами c 9 января 2009 г.
  • Управляющие программы на базе DOS для DOS, Windoows3.X / 9X / Me и HP200LX. Включая исходные файлы asm. 11 ноя, '04 (устарело)
  • avrspx для USBasp (AVR-wiki [ja])
  • Бранч AVRSP от BKK (Win32 (bcc), Linux (x86 / ARM))
  • Программное обеспечение UART и образцы кодов монитора AVR (ASM) 29 мая '02
  • Образцы кодов программных мониторов UART и AVR (GCC) 30 января 2005 г.
  • Запустить консольное окно в открытой папке: Registory to install | Добавлен пункт меню 24 сентября 2006 г.

Простая плата программирования для микропроцессора AVR

Краткое описание: В ряде проектов создания устройств, подробно описанных на этом веб-сайте, микропроцессор Atmel AVR используется в качестве центрального процессора или «мозга», стоящего за устройством.Однако, прежде чем можно будет построить какое-либо из этих устройств, необходимо получить код прошивки на самом AVR. Есть несколько способов добиться этого, и описанный здесь метод, вероятно, не самый эффективный, но он, как правило, является одним из менее дорогих способов загрузки прошивки, а также может заставить работать некоторое старое оборудование, которое у вас может быть. валяется предназначено для помойки.

Objective

Сделайте простую плату программирования для загрузки микропрограммы в микропроцессор Atmel AVR.

Предпосылки

Давным-давно установив свою настройку для загрузки кода в микропроцессор AVR, я склонен принимать как должное возможность делать это с относительной легкостью и часто забываю, что многие новички в AVR могут этого не делать. еще есть настройки для этого. Поскольку ряд проектов электроники на этом веб-сайте требует использования микропроцессора AVR, казалось логичным задокументировать создание простой платы для программирования своими руками, которую может сделать любой и которую можно использовать как часть системы для переноса кода на компьютер. AVR.Описанный метод ни в коем случае не является единственным или лучшим способом прошить AVR, но это относительно недорогой способ сделать это, и он особенно полезен, если у вас есть старый компьютер, который вы хотели бы использовать помимо его бумажные пошлины!

Методы

Компьютер и программное обеспечение:

Atmel ATmega168

AVR работают на коде C (с некоторыми дополнительными библиотеками), и компьютер (очевидно) необходим для загрузки этого кода C на AVR через программатор.Есть несколько способов сделать это, но если у вас есть старый компьютер, срок годности которого давно истек, вы можете дать ему новую жизнь, перенаправив его, чтобы он сосредоточился исключительно на задачах программирования AVR. Для этого он должен работать под управлением Windows XP (другие версии Windows могут работать, но не тестировались с этой настройкой), а также необходимо добавить несколько других программ. WinAVR - это программный набор инструментов командной строки для создания прототипов на микропроцессоре AVR, который включает avrdude, который фактически является частью программного обеспечения для программирования AVR.Вдобавок, Programmer’s Notepad часто рекомендуется использовать поверх WinAVR, поскольку он предоставляет графический пользовательский интерфейс для программирования AVR, а не просто использование только командной строки. Последнее требование к компьютеру - наличие параллельного порта для подключения к программатору AVR-PG2B - вместо этого можно использовать другие порты, но тогда необходимо выбрать соответствующий программатор, отличный от программатора AVR-PG2B, описанного здесь.

Программатор AVR-PG2B и параллельный кабель:

Параллельный кабель Программатор AVR-PG2B

Как упоминалось выше, плата программирования, описанная здесь, была разработана для работы с программатором AVR-PG2B, который подключается к компьютеру через параллельный порт старого образца.На практике программатор AVR-PG2B идет с очень коротким ленточным кабелем между разъемом параллельного порта и контактным разъемом. Следовательно, вам почти наверняка понадобится какой-то способ расширить соединение от компьютера к плате программирования, чтобы оно оставалось в пределах досягаемости. Это важно, поскольку микропроцессор AVR почти всегда переключается между программатором и схемой прототипа, с которой работает один, поскольку микропрограммное обеспечение настраивается для оптимальной работы. В моем случае я использую 2-метровый параллельный кабель, чтобы обеспечить удлинение от параллельного порта компьютера, и в наши дни такие кабели дешевы для подключения к сети (если у вас еще нет одного забытого в старом ящике где-то из компьютерных времен. от).

Источник питания:

Настольный источник питания

Для АРН требуется отдельный источник питания при программировании (к сожалению, это не связано с параллельным подключением, поскольку он никогда не был предназначен для питания периферийных устройств). Есть несколько способов добиться этого, но самый простой - использовать стандартный настольный лабораторный источник питания. Теперь вы можете задаться вопросом, стоит ли приобретать источник питания (если у вас его нет) только для программирования AVR, но если вы серьезно относитесь к электронным манипуляциям в любой форме (что вы, вероятно, имеете, если читаете это !), то он вам почти наверняка понадобится для создания прототипа.Существуют и другие менее дорогие способы питания платы программирования AVR (например, использование соответствующего настенного адаптера переменного тока / постоянного тока с соответствующим напряжением), но для сглаживания напряжения, поступающего от этих элементарных источников питания, требуется дополнительная схема питания. и это как для электронного прототипирования, так и для программирования AVR, поэтому стоит заранее инвестировать в настольный источник питания.

PCB:

Печатная плата для платы программирования была изготовлена ​​с использованием медной платы, чувствительной к ультрафиолетовому излучению, в соответствии с техникой фототравления печатной платы (рисунок справа).Поскольку мой AVR в проектах чаще всего представляет собой 28-контактный ATmega168, плата программирования AVR, описанная здесь, оснащена 28-контактным разъемом для установки микропроцессора такого размера. Разъем Zero-Insertion-Force или ZIF используется для подключения AVR к плате, чтобы микропроцессоры можно было легко вставлять и извлекать из программатора - что важно при прототипировании, особенно когда часто используются разные версии кода AVR. должны загружаться в быстрой последовательности.Штифты коллекторов используются в местах, где выполняются соединения с компонентами, размещенными внутри стенок корпуса (см. Ниже). Кристалл 15 МГц и два керамических конденсатора 15 пФ обеспечивают тактовый сигнал для AVR, если его предохранители настроены на использование внешнего сигнала, а не внутреннего генератора по умолчанию. Наконец, светодиод был включен как часть конструкции, чтобы обеспечить визуальную индикацию того, когда плата программирования AVR была включена.

Корпус:

Чтобы придать плате программирования немного более отполированный вид, вокруг нее был спроектирован корпус и компоненты, которые должны быть доступны или видимы снаружи (например, светодиод, переключатель и источник питания соединения) были перемещены на поверхность

основание корпуса, напечатанное на 3D-принтере

корпус.Корпус был разработан в Blender (www.blender.org) и состоит из 3 частей. Нижняя половина корпуса довольно проста: сама печатная плата прикреплена с помощью винтов с полукруглой головкой размером 4 x 3/8 дюйма, в то время как верхняя половина корпуса была спроектирована как две отдельные части, чтобы ее можно было легко распечатать на базовый 3D-принтер (в данном случае Velleman K8200) без необходимости в большом количестве вспомогательных материалов. Две верхние части корпуса прикреплены к основанию с помощью крепежных винтов M3 - длина 20 мм для большей из двух частей корпуса и 12 мм для меньшей - и стандартных гаек M3.Обратите внимание, что крепежные винты имеют диаметр головки…, который может различаться у разных производителей винтов. Держатель светодиода использовался для удержания светодиода на месте в стене корпуса, в то время как крепежные винты M2,5 и гайки M2,5 требовались для удержания разъема источника питания в корпусе. Выключатель питания представляет собой стандартный маленький кулисный переключатель, который защелкивается на корпусе. Все компоненты, прикрепленные к корпусу, имели провода, припаянные к их соединительным ножкам, а на других концах проводов использовались стандартные обжимные штифты / обжимные кожухи для подключения компонентов к соответствующим контактам на печатной плате.Последнее замечание о корпусе - это два полукруглых выступа с каждой стороны корпуса, которые были интегрированы в конструкцию, так что весь блок можно было прикрепить к столу или тому подобному с помощью шурупов с потайной головкой 3,5 мм (потайной) по желанию пользователя.

Загрузки файлов

Ссылки на ресурсы

Материалы

Approach Labs - возимся со всем

Резюме: При создании электронного устройства на основе микропроцессора полезно иметь сам микропроцессор отправлять обновления по мере выполнения своего кода, чтобы можно было отладить любые проблемы с устройством.Тип микропроцессора, который я неизменно использую, - это 8-битный AVR Atmel (чаще всего ATmega168), поэтому в этой статье основное внимание будет уделено тому, чтобы эта система заработала. Так как же получить эти отладочные сообщения от микропроцессора AVR? Один из способов - использовать возможности USART AVR для связи с компьютером через последовательное соединение RS-232. Хотя последовательное соединение RS-232 представляет собой более старый способ работы, он работает так же хорошо, в любом случае для наших целей, как и более современные методы, и особенно подходит, если у вас есть старый неиспользуемый компьютер, который может быть новый повод жить! Подробнее

Резюме: Если вы являетесь владельцем автомобильного держателя для телефона Taotronics и, как и я, вам нравятся дизайн и функциональность, которые он обеспечивает, но вам не нравятся насадки на присосках в целом и тот факт, что они иногда падают с ветрового стекла в теплую погоду ознакомьтесь с этим проектом, в котором я преобразовал крепление на присоске в постоянное крепление для приборной панели моего автомобиля.Сверхустойчивый и больше не нужно возиться с непредсказуемостью присосок. Смотрится тоже неплохо, хотя предпочел бы его в черном цвете! Подробнее

Краткое описание: Целью этого проекта было создание визуального сигнала на моей беговой дорожке, который предупреждал бы меня, когда кто-то звонит в дверной звонок. Почему визуальное оповещение? Что ж, поскольку во время бега в наушниках-вкладышах у меня неизменно звучит музыка, а также между этим и шумом самой беговой дорожки, я в прошлом скучал по курьеру, который стучал в дверь.Это так раздражает, что мне приходится идти на поиски сокровищ только для того, чтобы забрать посылки, что я мог бы легко получить сам, если бы знал, что позвонили в дверь. Окончательный дизайн включал в себя большой красный мигающий светодиод, чтобы привлечь мое внимание, управляемый микросхемой таймера 556 (которая представляет собой две схемы таймера 555 в одном корпусе) и подключенный через внутреннюю проводку дома к дверному звонку. Корпус, в котором размещается устройство, был спроектирован так, чтобы поместиться в один из держателей для бутылок на консоли дисплея беговой дорожки. Подробнее

Описание: Идея заключалась в том, чтобы создать датчик температуры, который можно было бы легко подключить к компьютеру Apple Mac и отображать его показания в приложении OSX.Скорее демонстратор, чем что-либо, что кто-то может фактически использовать в реальном мире, но кто знает, может быть, у кого-то есть практическая потребность в таком приспособлении… Подробнее

Резюме: Ряд проектов по созданию устройств, подробно описанных на этом веб-сайте используйте микропроцессор Atmel AVR в качестве центрального процессора или «мозга» за устройством. Однако, прежде чем можно будет построить какое-либо из этих устройств, необходимо получить код прошивки на самом AVR. Есть несколько способов добиться этого, и описанный здесь метод, вероятно, не самый эффективный, но он, как правило, является одним из менее дорогих способов загрузки прошивки, а также может заставить работать некоторое старое оборудование, которое у вас может быть. валяется предназначено для помойки.Подробнее

Простейший программатор USB AVR - схемы DIY

У меня нет настольного компьютера с устаревшими портами, и я не люблю идти к другу каждый раз, когда мне нужно что-то загрузить на AVR. Я спросил себя: «Как я могу собрать простой diy avr USB-программатор ?» .

Ну, вообще-то я спросил у Google, и ответ был Usbtiny. Ниже я описываю своего упрощенного программатора Usbtiny.


По сути, это чрезвычайно урезанная версия UsbTinyISP от Ladyada.Когда я приступил к сборке программатора версии 2.0, я сначала сделал его на макетной плате, и все работало отлично, и он мог хорошо выполнять свою работу. Далее я начал удалять корешей .

Во-первых, я удалил буфер 74HC125 и дал прямое программирование цели, и это действительно сработало. Затем я удалил несколько резисторов и конденсаторов и оставил только самые необходимые.

Я преобразовал разъем ISP и USB-разъем в контактные разъемы, и после выполнения работы остался с основной микросхемой Attiny2313, одним кристаллом 12 МГц и четырьмя резисторами.Похоже на Usbtiny v1.0, но в нем еще меньше деталей. Usbtiny v2.0 состоит всего из 17 отдельных частей, за исключением разъемов, а Usbtiny v1.0 состоит из 15 отдельных частей. В моей модифицированной версии 6 дискретных деталей (менее 40%),

  1. Attiny2313 основная микросхема
  2. , кристалл, 12 МГц
  3. Подтяжной резистор 3,3 кОм сброса
  4. 1.5K D- подтягивающий резистор
  5. Резистор шины USB 2x 68R.

При таком минимальном окружении все работало правильно.Я мог бы изготовить для этого одну небольшую печатную плату, но она настолько мала и крошечна, что я сделал ее на небольшом куске веровальной платы.

Я настроил расположение выводов заголовка ISP в соответствии с нужной мне последовательностью. Это VCC-GND-MISO-MOSI-SCK-RST.
Я использовал его для программирования Attiny2313, Atmega8, Atmega32, все работало хорошо. В схеме нет ни фильтрующего конденсатора, ни заземляющих конденсаторов на 18-22 пФ для кристалла, но все исправно.

Я сильно разобрал оборудование и удалил два светодиода, которые были для
1. Программирование: конечно, я знаю, когда я программирую, поэтому светодиод
не нужен, и
2. USB OK: если устройство не инициализировано правильно и подключенный к USB, я получу ошибку от avrdude как «Ошибка : не удалось найти устройство USBtiny (0 × 1781 / 0xc9f) », зачем тогда нужен светодиод.

Затем я подумал о минимизации программы, но потом подумал, что в этом нет необходимости.Прошивка размером 2046 байт плотно умещается в 2048 байт пространства Attiny2313. Сокращение кода позволит разместить его на меньшем пространстве, но это пространство никогда не пригодится ни в одном пользовательском проекте. Поэтому я выбрал прошивку v2.0 по умолчанию.

Примечание. Чтобы записать прошивку на Attiny2313, вам понадобится другой программатор. Рекомендуется использовать любой из этих простых программаторов, который можно использовать с последовательным или параллельным портом.

Инструкция по программированию для загрузки прошивки на Attiny2313

  1. Загрузите драйвер USB, а также прошивку для v2.0 с сайта Ladyada.
  2. Запишите прошивку с помощью AVRdude или PonyProg и установите плавкие вставки в качестве примера
     avrdude -c stk200 -p t2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m 

Справочный источник: Ladyada and Instructables.

Обновление

: дизайн печатной платы и финальная версия

Комментарии к этой статье до 07-12-2011 , здесь переход к последним комментариям.

DIY Avr Программатор параллельного порта

Существует несколько способов подключения параллельного порта при создании программатора параллельного порта.Я использую программатор в Linux вместе с avr-gcc и avrdude. Я использую Atmega8 uc.

Сначала установите необходимые инструменты разработки

 sudo apt-get install gcc-avr avr-libc gdb-avr avrdude 

Теперь нам нужно создать кабель для соединения LPT-порта вашего ПК с микроконтроллером AVR

.
DB25 Наружный АРН
Штифт 1 SCK
Штифт 2 MOSI
Штифт 11 MISO
Штифт 16 СБРОС
Штифт 21 GND

Во всех вариантах программатора контакты 18-25 являются контактами заземления., согните эти контакты под прямым углом и спаяйте их все вместе. Контакты данных (1,2) должны иметь на линии резистор 1 кОм или 330 Ом, чтобы вы не убили порт LPT, AVR или и то, и другое.

Теперь аппаратная часть соединяет провода от параллельного порта точно так, как указано ниже.

Для тестирования не требуется кристалл и т. Д. Подайте 5 В постоянного тока на контакт 7 и GND на контакт 8. Теперь выполните эту команду на клемме

.
 судо avrdude -p m8 -P / dev / parport0 -c dapa 

вы должны получить это…

 avrdude: устройство AVR инициализировано и готово принимать инструкции
Чтение | ########################################################################## | 100% 0.
					
				

0 comments on “Параллельный программатор для avr своими руками: Еще раз о параллельном программаторе на базе STK500

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

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