Progisp как пользоваться: Please Wait… | Cloudflare

Содержание

Программирование микроконтроллеров AVR под LINUX: Нулевой уровень

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


Для начала мой рабочий комп 🙂
DNS Porto [0133642]

Процессор: AMD E-350, 2 х 1600 МГц

Оперативная память: 4 Гб

Графика: AMD Radeon HD 6310M
Диски: SSD 64 Гб + ESATA HDD 320 Гб

Операционная система: Linux Mint 15 (Mate)

Для прошивки микроконтроллеров был куплен USBasp программатор
Сайт изготовителя: www.betemcu.cn
Страничка продавца: www.aliexpress.com/…
Стоимость покупки: 5.2$

Спаян очень аккуратно. В комплект входит: собственно плата программатора, разборный пластиковый корпус, 65см шлейф с 10-пиновыми разъемами, плата-переходник 10/6 пин. Может питать программируемый микроконтроллер от 5В или 3В.

Программатор собран практически по классической схеме от Thomas Fischl, но есть небольшие отличия и дополнения.


Ниже принципиальная схема снятая путем «прозвона» печатной платы.
(скачать схему USBasp_schematics.jpg)


Минусы данного программатора:
— Перемычки JP3 (Slow SCK) на плате не предусмотрено. 25-я ножка микроконтроллера просто никуда не подключена. Наличие данной перемычки порой весьма желательно, см. ниже.
— Перемычка JP2 (Self Programming) хоть и предусмотрена, но не распаяна на плате. Она представлена двумя отверстиями чуть выше светодиодов. Поэтому для перепрошивки МК самого программатора необходимо или установить этот джампер, или временно чем-либо надежно замыкать эти отверстия.
— Перемычка JP1 (Supply Target) обеспечивающая выбор напряжения питания (5/3.3 вольт) подаваемого на разъем программируемого микроконтроллера (от встроенного стабилизатора напряжения) реализована весьма своеобразным образом — в виде впаянного резистора ноль Ом. Таким образом чтобы программировать микроконтроллер от 3.3 В, нужно выпаять этот резистор. На плате этот резистор помечен «5V/3V3 Set».

— Использована модифицированная прошивка МК (по сравнению с Thomas Fischl), которая не всегда корректно работает с avrdude — утилитой для прошивки МК.
— Рекомендуемая китайцами утилита Progisp якобы полностью поддерживает программатор, умеет автоматически менять частоту SCK (видимо из этих соображений китайцы и убрали JP3), но увы, Progisp рассчитан на запуск из-под windows.
Плюсы программатора:
— Классическая схема и возможность перепрошивки МК в программаторе различными альтернативными прошивками.
— Установлены защитные резисторы 100 Ом перед ножками MOSI, MISO, SCK, RESET выходного ISP разъема
— Установлен ращитный предохранитель 500мА, защищающий шину USB компьютера от короткого замыкания с схеме программируемого устройства.

Про режим Slow SCK
Если использовать avrdude и стандартную родную прошивку (usbasp.2011-05-28.tar.gz), то частота SCK без перемычки JP3 равна 375 кГц, с перемычкой 8 кГц.

Понижение частоты требуется для программирования микроконтроллеров с низкой частотой тактирования (меньше 1.5 МГц). Как известно многие МК исходно запрограммированы на заводе на тактирование от внутреннего RC-генератора 1 МГц, поэтому требуется установка джампера JP3, как минимум для первичного программирования МК.

В этом случае обычно программируют в два приема: сначала с джампером выставляют ставлю фьюзы для работы от внешнего кварца (4, 8, 12… МГц), затем снимают джампер, подключают кварц, и заливают микропрограмму на максимальной скорости обеспечиваемой программатором.

Без перемычки JP3 скорость программирования ~5 КБайт/с, с перемычкой ~0,1КБайт/с.

Например, ATmega8 (8К флеш памяти) шить на пониженной скорости весьма тоскливо (1.5 мин), а для ATmega328 (32К) вообще можно уходить на 5 минутное чаепитие.


С «китайской» версией прошивки МК в программаторе, утилитf avrdude постоянно выводит ошибку:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
и пытается работать с прошиваемым МК на максимальной частоте SCK, и как вы уже понимаете, это будет получаться у ней не всегда удачно.

Поддерживаемые программатором микроконтроллеры
Сайт продавца утверждает что поддерживаются следующие микроконтроллеры:


AT89S51,AT89S52
AT86RF401,AT90CAN32,AT90CAN64,AT90CAN128,
AT90PWM2,AT90PWM2B,AT90PWM3,AT90PWM3B,
AT90PWM81,AT90PWM216,AT90PWM316,AT90S1200,
AT90S2313,AT90S2323,AT90S2343,AT90S4414,AT90S4433,
AT90S4434,AT90S8515,AT90S8535,AT90SCR100H,AT90USB82,
AT90USB162,AT90USB646,AT90USB647,AT90USB1286,AT90USB1287,
ATmega8,ATmega8A,ATmega8U2,ATmega8HVA,ATmega16,ATmega16A,
ATmega16HVA,ATmega16HVB,ATmega16M1,ATmega16U2,ATmega16U4,
ATmega32,ATmega32A,ATmega32C1,ATmega32HVB,ATmega32M1,ATmega32U2,
ATmega32U4,ATmega32U6,ATmega48,ATmega48P,ATmega48PA,ATmega64,ATmega64A,
ATmega64C1,ATmega64M1,ATmega88,ATmega88P,ATmega88PA,ATmega103,ATmega128,
ATmega128A,ATmega128RFA1,ATmega161,ATmega162,ATmega163,ATmega164P,ATmega164PA,
ATmega165,ATmega165P,ATmega168,ATmega168P,ATmega168PA,ATmega169,ATmega169P,
ATmega323,ATmega324,ATmega324PA,ATmega325,ATmega325P,ATmega328P,ATmega329,
ATmega329P,ATmega406,ATmega640,ATmega644,ATmega644P,ATmega644PA,ATmega645,
ATmega649,ATmega1280,ATmega1281,ATmega1284P,ATmega2560,ATmega2561,ATmega3250,
ATmega3250P,ATmega3290,ATmega3290P,ATmega6450,ATmega6490,ATmega8515,ATmega8535,
ATtiny10,ATtiny11,ATtiny12,ATtiny13,ATtiny13A,ATtiny15,ATtiny22,ATtiny24,ATtiny24A,
ATtiny25,ATtiny26,ATtiny28,ATtiny43U,ATtiny44,ATtiny44A,ATtiny45,ATtiny48,ATtiny84,
ATtiny85,ATtiny88,ATtiny167,ATtiny261,ATtiny261A,ATtiny461,ATtiny861,ATtiny861A,ATtiny2313,ATtiny231A

Программатор: разъемы для подключения
Программатор имеет USB разъем для подключения к компьютеру, и 10-выводной ISP разъем для подключения к программируемому микроконтроллеру. Также имеется 10-проводной шлейф, оконцованный ответной частью такого же разъема.

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


Для прошивки микроконтроллера необходимо соединить выходы программатора VCC, GND, RESET, SCK, MOSI, MISO с соответствующими выходами микроконтроллера.

В рассматриваемом примере это ATMega8. Он имеет следующее расположение выводов:

Необходимые нам ножки :
1  — RESET
17 — MOSI
18 — MISO
19 — SCK
20 — AVCC

Итак, соединяем одноименные ножки МК и программатора. Вот как это может выглядеть если собирать на макетной плате:

___
Продолжение следует ….

ПЕРЕПРОШИВКА USBISP В USBASP

Примерно года два назад я заинтересовался программированием микроконтроллеров AVR. Изучение шло не слишком быстро, так как тема достаточно сложная, но все-таки, мной были собраны и доведены до ума несколько устройств в корпусах, с применением микроконтроллеров семейства Tiny. За это время успел обзавестись двумя программаторами, один собрал сам, это простой и всем известный программатор Громова, второй заказал с Али экспресс, по цене 3 доллара это программатор USBISP. 

Для того чтобы найти и заказать его на Али-экспресс, достаточно набрать в строчке поиска USBASP USBISP. Этот программатор шел сразу в алюминиевом корпусе, аналогичном корпусе флешки, в комплекте с ним был шлейф для программирования 10 Pin. Про перепрошивку его в полноценный USBASP мы и поговорим в этой статье. Для чего это делать и в чем отличия этих программаторов, USBASP и USBISP ? Дело в том, что Китайский программатор работает только со своей оболочкой, Prog ISP, и не поддерживается, в отличие от USBASP программой AVR Studio. Несмотря на то, что Prog ISP оболочка, идет на английском языке, пользоваться ей менее удобно, чем оболочкой для USBASP Khazama. 

Для USBASP существуют и другие графические оболочки, помимо Khazama работающие с консольным AVR DUDE. От себя скажу, что разница в удобстве пользования после перепрошивки сильно заметна. Например, в той же Prog ISP неудобное выставление фьюзов, с этим у Khazama полный порядок. Можно выбирать запись конфигурации фьюзов для МК по умолчанию одним кликом есть возможность выставления фьюзов, как галочками, так и из выпадающего списка. 

Также присутствует функция Auto programm,  в которой можно установить порядок действий, запускаемых впоследствии в один клик. Например, стирание файла, последующая запись и верификация. Есть и другие функции на выбор. 

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

Но возможно существуют и другие варианты разводки программаторов у китайцев. Что нам требуется здесь сделать? Требуется удалить припой с двух или трех контактов на плате программатора, в зависимости от разводки вашей платы. По информации с того сайта по которой я перепрошивал свой программатор, была представлена следующая разводка:

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

Я воспользовался вместо кусочка провода, выводом, откушенным от резистора. И разумеется, также удалил припой с контактов на программаторе, обозначенных буквами А и В. Только в моем случае таких контактов было два.

Как мы видим на фото выше, перемычка из вывода резистора уже запаяна мной к контактам самопрограммирования программатора UP. На фото ниже можно убедиться в этом. Заодно мы можем видеть, что на контактах А и В отсутствует припой.

Припой удаляется с помощью демонтажной оплетки. Мы вытягиваем кусочек оплетки, обмакиваем его в спирто канифольный флюс, и, прогревая жалом паяльника, кладем на контакт, придавливая сверху паяльником. В результате припой с контактов должен полностью перейти на оплетку так, чтобы между ними не было замыкания. В чем и нужно убедиться, прозвонив мультиметром в режиме звуковой прозвонки. Для использования совместно с программаторами  USBISP и USBASP мной был сделан переходник, который оказался удобен для программирования микроконтроллеров при отлаживании на цанговых макетных платах, и который я использовал для программирования микроконтроллера этого программатора:

К чему я писал в начале статьи о программаторе Громова? К тому, что для прошивки нам потребуется любой другой программатор. Можно точно такой же USBISP. То есть, если у вас нет второго программатора, о перепрошивке USBISP в USBASP можно забыть. А можно спаять по такому случаю программатор Громова, и прошить им микроконтроллер этого программатора. Схема программатора Громова простая, и детали необходимые для сборки, довольно дешевые. Допустим, у вас есть второй программатор. Тогда нам нужно подключить свой программатор к шлейфу программатора USBISP в соответствии с рапиновкой разъема. Её мы можем видеть на следующем рисунке:

Контакты в шлейфе идут одинаково с обоих концов. Нам потребуются соединить программаторы между собой, аналогично обычному прошиванию микроконтроллера. То есть выводы VCC, GND, MISO, MOSI, RESET и SCK обоих программаторов нужно соединить. Дополнительное питание, если прошиваем через USB программатор, USBISP, USBASP или другой с которого приходит питание с USB на прошиваемый микроконтроллер, можно не подавать. Если прошиваем через программатор Громова, то питание нужно подать. После прошивания выпаиваем перемычку, замыкаем те два или три контакта, с которых мы удаляли припой капелькой припоя, и, не собирая в корпус, подключаем наш новоиспеченный программатор USBASP к USB порту компьютера. Операционная система должна запросить драйвера. Появится следующее окно:

Соглашаемся с установкой и указываем вручную путь к папке libusb_0.1.12.1, которую можно будет скачать в архиве в конце статьи. В ней находится драйвер для USBASP. После установки в системе появится устройство USBASP:

После того, как убедимся, что все заработало, программатор определился, приклеиваем изоляционную резинку назад на место, и собираем программатор. В одной из статей про оболочку Khazama, было написано, что иногда Khazama работает некорректно без установки дополнительной программы – фильтра libusb-win32-devel-filter-1.2.6.0. Так ли это или нет — не знаю, у меня эта программа была установлена. Скачать её также можно будет в архиве в конце статьи. Сначала Khazama действительно отказывалась работать с моим программатором. Погуглив по этому вопросу на различных форумах, нашел информацию, что нужно установить частоту в программе 187.5 килогерц, что и сделал. Проблема сразу пропала. Эта функция есть только в свежих версиях Khazama, в частности Khazama AVR Programmer 1.7. Скачать её также можно в архиве в конце статьи.

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

Я прошивал Tiny-2313, но эта оболочка поддерживает, помимо этого микроконтроллера, еще множество других типов МК. После запуска программы нам нужно выбрать наш микроконтроллер из списка, у меня как мы видим на скрине, выбран Tiny2313. Также в ней есть функция размещать окно поверх остальных, это расположенная справа с краю пиктограмма канцелярской кнопки. Прошивка для микроконтроллера программатора MEGA-8, HEX файл, также прикреплена в общем архиве. Фьюзы при прошивке изменять не нужно. Желаю всем удачной прошивки! Автор AKV.

Originally posted 2019-03-26 01:45:40. Republished by Blog Post Promoter

MSE Audio SS-110 Page, SS-110B и SS-Q-6 Soundsphere Руководство пользователя

SS-110 Page, SS-110B и SS-Q-6 Soundsphere

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
SS-110 Page, SS-110B и SS-Q-6

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

УДАР СИЛЬНО

Максимальная мощность:
110B: Q6: 110 Страница:

30 Вт RMS 30 Вт RMS 60 Вт RMS

Схема 2

Рефлектор

ВЫБИВАТЬ МИГАЕТ

Схема 3

Комплект для подвешивания HK Крепление к подвесу сверху Комплект для подвешивания прилагается при заказе динамика на заводе. Если заказывается отдельно, прикрепите, как показано на Схеме 1.
a) Удерживайте основной крюк сверху, чтобы провода и 3 крючка были прямыми, когда они закреплены на динамике.
б) Вставьте пружинные зажимы в отверстия кронштейна, как показано. Прикрепите верхний зажим к точке крепления, следя за тем, чтобы зажимы и кабель не перекручивались.
HK

Схема 4

Схема 5

Установка динамика
Стальной кронштейн предварительно прикрепляется к потолку или стене, затем динамик устанавливается на кронштейн и закрепляется в следующих шагах (Схема 6, Схема 7):

ПРУЖИННЫЕ ЗАЖИМЫ

а) Закрепите кронштейн в желаемом месте, убедившись, что он правильно и безопасно установлен.
б) Наденьте отражатель стороной, противоположной винту, на один конец установленного кронштейна.
c) Прижимая сторону винта к поверхности, затягивайте винт, пока динамик не встанет на место.

Схема 1

Монтаж на Т-образной балке на подвесном потолке

Монтажный кронштейн MBS
Подготовка динамика Динамик подготовлен к использованию с монтажным кронштейном MBS, если оба вместе заказываются с завода. Если заказывается отдельно, подготовьте динамик, как показано на Схеме 2 или Схеме 3 и Схеме 4.
а) Начните с удаления пластиковой планки из отверстия в ободе отражателя, чтобы винт можно было вставить снаружи. Мешок можно удалить с помощью сверла 1/4 ″ (Схема 2), или его можно легко пробить с помощью молотка (Схема 3). При использовании сверла 1/4 ″; будьте осторожны, чтобы не удалить какой-либо другой материал, кроме мигания, иначе динамик не будет правильно установлен. б) Поместите стопорную гайку в карман, как показано на схеме 4. Начните винт через внешнее отверстие, через стопорную гайку, содержащуюся в кармане, и немного дальше внутреннего отверстия (Схема 5).

Два винтовых зажима Caddy и поворотные гайки предназначены для крепления к Т-образным профилям подвесного потолка. Более подробную информацию см. В прилагаемых инструкциях по монтажу Т-образной планки с зажимом Caddy Clip (Схема 6).
a) Поместите зажимы на Т-образной штанге на расстоянии 8 3/4 дюйма друг от друга. Убедитесь, что они правильно защелкнулись на штанге.
б) Вставьте их в окончательное положение, чтобы они прошли через отверстия в монтажном кронштейне. Надежно затяните барашковые гайки.
c) Закрепите динамик, выполнив шаги b и c, «Установка динамика».

ПОВОРОТНЫЙ ЗАЖИМ

Т-БАР

МОНТАЖНЫЙ КРОНШТЕЙН

ПОТОЛОК

Рефлектор

ВИНТ

Схема 6

Схема 7

Контакты: MSE Audio, 855.663.5600 / 913.663.5600 / [электронная почта защищена]

© 2021 МСЭ Аудио. Ред. 02.25.2021
360 ° Best Sound AroundTM

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
SS-110 Page, SS-110B и SS-Q-6

Инструкции по установке трансформатора TX-30

Инструкции по установке трансформатора TX-60

TX-30 разработан для использования с громкоговорителями модели 110B или Q-6. Отводы питания предусмотрены для систем на 100 В, 70 В и 25 В:

TX-60 разработан для использования с громкоговорителем Model 110 Page. Отводы питания предусмотрены для систем на 70 В и 100 В:

25V

70V

Белая

30 Вт

Оранжевый 15 Вт

Желтый 7.5 Вт

100 В ——-

Оранжевый желтый

70 В 60 Вт 30 Вт

100 В —
60 Вт

Коричневый Синий Фиолетовый

3.8 Вт 1.9 Вт 0.9 Вт

30 Вт 15 Вт 7.5 Вт

–30 Вт 15 Вт

Белый Зеленый

15 Вт в общем

30 Вт в общем

Зеленый Черный

0.5 Вт в общем

3.8 Вт в общем

7.5 Вт в общем

Не забудьте закрепить и изолировать неиспользуемые входные провода; Замыкание любого входного провода на другой снизит уровень громкости и создаст неожиданную нагрузку на усилитель мощности.
При заказе с моделью 110B или Q-6 TX-30 монтируется на задней части отражателя, а подключения динамика громкоговорителя выполняются на заводе.

УСИЛИТЕЛЬ (+) УСИЛИТЕЛЬ (-)
ВЫБРАННЫЙ ЦВЕТ ВХОДНОГО ОТВОДА (ИЗ ТАБЛИЦЫ)
КРАСНЫЙ (+)

TX-60 КРАСНЫЙ (+)
ЧЕРНИТЬ (-)

ЗЕЛЕНЫЙ ПРОВОД — ОБЫЧНЫЙ ВВОД
ЧЕРНИТЬ (-)

ДРУГИЕ СИСТЕМНЫЕ ГРОМКОГОВОРИТЕЛИ

Используйте черный провод для общего входа или подключения драйвера (-).
Ноты:
— Красный или красный с белой полосой — отвод 4 Ом. — Общая мощность ответвления не должна превышать мощность усилителя.
возможность.

УСИЛИТЕЛЬ (+) УСИЛИТЕЛЬ (-)

Другая система Громкоговорители модели 110B или Q-6

Не забудьте закрепить и изолировать неиспользуемые входные провода; Замыкание любого входного провода на другой снизит уровень громкости и создаст неожиданную нагрузку на усилитель мощности.
Ноты:
— Красный или красный с белой полосой — отвод 4 Ом. — Общая мощность ответвления не должна превышать мощность усилителя.
возможность.

ВЫБРАННЫЙ ЦВЕТ ВХОДНОГО ОТВОДА (ИЗ ТАБЛИЦЫ)
КРАСНЫЙ (+)

TX-30 КРАСНЫЙ (+)
ЧЕРНИТЬ (-)

ИСПОЛЬЗУЙТЕ ЛЮБОЙ ЧЕРНЫЙ ПРОВОД

ЗВУКОВАЯ МОДЕЛЬ 110B ИЛИ МОДЕЛЬ Q-6 ГРОМКОГОВОРИТЕЛИ

Контакты: MSE Audio, 855.663.5600 / 913.663.5600 / [электронная почта защищена]

© 2021 МСЭ Аудио. Ред. 02.25.2021
360 ° Best Sound AroundTM

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
SS-110 Page, SS-110B и SS-Q-6

Гарантия
На акустические системы Soundsphere предоставляется 5-летняя ограниченная гарантия и 3-летняя ограниченная гарантия на все электрические компоненты. См. Гарантийный лист для получения подробной информации и ограничений.
Запасные части

110B
Q-6 110 Стр.

6.5 ″ двойной диффузор, широкий диапазон, 30 Вт
6.5 ″ 30 Вт полнодиапазонный коаксиальный динамик с кроссовером Высокая выходная мощность 6.5 ″, только голос, 60 Вт

Номер модели для заказа FR-6
Номер модели для заказа CX-6 Номер модели для заказа ITP-6

Дополнительная информация
Провода, проложенные между усилителем (ами) и громкоговорителем (ами), должны быть подходящего калибра, чтобы обеспечить все возможности воспроизведения звука громкоговорителями Soundsphere. Это относится ко всем импедансам громкоговорителей (4 или 8 Ом) или напряжениям аудиолинии (50, 70.7 или 100 Вольт). Для получения дополнительной информации см. Раздел «Загрузки» на сайте www.soundsphere.com или позвоните в нашу службу поддержки по телефону 913.663.5600.

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

ПРЕДУПРЕЖДЕНИЕ
Перед подвешиванием громкоговорителя обязательно надежно затяните все крепежные детали. Проволочный трос (стальной трос), кабельные зажимы с седлами и гильзы подходящего размера и прочности — рекомендуемые материалы для подвесных подвесов. Все громкоговорители должны быть дополнительно подключены к конструктивным элементам здания с помощью утвержденной системы предохранительных тросов или других материалов, сертифицированных агентством.
ВАЖНО: Всегда проверяйте местные правила техники безопасности перед установкой любой потолочной акустической системы, а также для периодических проверок и технического обслуживания установки.

Контакты: MSE Audio, 855.663.5600 / 913.663.5600 / [электронная почта защищена]

© 2021 МСЭ Аудио. Ред. 02.25.2021
360 ° Best Sound AroundTM

File Downloads
MSE Audio Owner’s Manual
SS-110 Page, SS-110B SS-Q-6, Soundsphere
Download [optimized]
Download
References

описание, назначение. «Прошивка» микроконтроллера PIC18F2550

Опубліковано 23.02.2011

Неболшой обзор используемых на практике программаторов для микроконтроллеров AVR. AVR ISP Prorgammer и USB программатор AVR / 89S совместимый с AVR910 .

AVR ISP Prorgammer

Внутрисхемный программатор для программирования микроконтроллеров фирмы ATMEL®, как в условиях серийного производства, так и в процессе разработки и отладки изделий.

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

TinyAVR

ATtiny11L, ATtiny11, ATtiny12V, ATtiny12L, ATtiny13, ATtiny15L, ATtiny2313, ATtiny26L, ATtiny26, ATtiny28V, ATtiny28L

AT90S1200, AT90S2313, AT90LS2323, AT90S2323, AT90LS2343, AT90S2343, AT90LS4433, AT90S4433, AT90LS8515, AT90S8515, AT90LS8535, AT90S8535

MegaAVR

ATmega48, ATmega88, ATmega168, ATmega8, ATmega16, ATmega32, ATmega64, ATmega640, ATmega128, ATmega1280, ATmega1281, AT90CAN128, ATmega103, ATmega161, ATmega162, ATmega163L, ATmega169, ATmega8515, ATmega8535, ATmega2560, ATmega2561, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega329, ATmega3290, ATmega649, ATmega6490

Отличительные особенности :

– внутрисхемное программирование (не требуются дополнительные переходные панели, при этом выводы программирования используются в проекте)

– поддержка программатора популярными компиляторами AVRstudio, IAR AVR, Image Craft AVR.

– автоматическая верификация (100% гарантия соответствия зашитого кода исходному)

– высокая скорость программирования, возможность прошивки серийного номера кристалла

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

Схема этого простого, но надежного программатора:

Двусторонняя плата помещается в разъем:


Мне понадобился второй программатор, а описанный ниже USB программатор не мог шить нужный мне микроконтроллер. Поэтому я решил повторить этот LPT программатор.



Компьютерные тенденции таковы, что LPT порт скоро исчезнет. Поэтому пора присмотреть альтернативу.

Программатор микроконтроллеров AVR / 89S совместимый с AVR910 (USB программатор)

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

Минус такой переделки – отсутствие предохранителя. Хотя, как показала практика, USB порт кротким замыканием спалить вряд ли удастся. По крайней мере, на моём компьютере не вышло, но экспериментировать не стоит.
Светодиод VL3 сигнализирует о подачи питания на программатор через порт USB. Светодиоды VL1, VL2 сигнализируют о чтении / записи программатора.
Джампер J1 – (MODify) служит для программирования микроконтроллера в новом программаторе. При его замыкании, к разъему ISP подключается внешний программатор и производится загрузка в МК программы.
После этот джампер необходимо разомкнуть и замкнуть джампер J2 – NORMal. Больше мы его не трогаем.
С помощью джампера J3 LOW SCK возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом – пониженная.
Примечательная особенность, на вывод LED разъема ISP выведен меандр с частотой 1 МГц для “оживления” МК, у которых были ошибочно запрограммированы фьюз-биты, отвечающие за тактирование. ОЧЕНЬ полезная штука!

Прошивка FUSE BITS
Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в “0”) биты SPIEN, CKOPT, SUT0 и BODEN. Обычно микроконтроллеры, идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Остальные биты должны быть незапрограммированные (установлены в “1”).

Инсталляция
Windows 2000/XP/Vista/Seven 32-bit

Прошить контроллер. Подключить свежеиспеченный программатор к РС через свободный разъем USB. Операционная система найдет новое устройство – AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к inf-файлу, в зависимости от установленной на вашем компьютере операционной системы.
В архиве с прошивкой имеется папка “AVR910.Driver ” в которой расположены три директории для разных вариантов операционных систем:
-“2k_xp_32 ” – для операционных систем Windows 2000/XP 32-bit (используется штатный драйвер usbser.sys)
-“vista_xp_32 ” – Для операционных систем Windows XP/Vista/Seven 32-bit (usbser.sys + lowbulk.sys от Osamu Tamura)
-“vista_xp_64 ” – Для операционных систем Windows XP/Vista/Seven 64-bit (usbser.sys + lowbulk.sys от Osamu Tamura)

Особенности установки:

В принципе, инсталляция не отличается от подобной для Windows XP, но есть одно НО – задержки в драйвере usbser.sys данной ОС портят цепочку команд от ПО на РС до программатора и, соответственно, цепь ответов обратно от программатора до ПО на РС… Проблему я пока не установил, но есть решение. Конечно не самое красивое, но работает надежно 🙂 Необходимо заменить файл usbser.sys в системных папках Windows 2000 на аналогичный от Windows XP. Это папки …\winnt\system32\drivers\ и …\winnt\system32\dllcashe\. Файл usbser.sys от Windows XP SP1 можно взять здесь. Естественно, что драйвер придется подменять загрузившись под другой ОС (например с загрузочного диска).

Чтобы использовать драйвера на 64 битной платформе, Вы должны отключить проверку цифровых подписей драйверов, нажимая функциональную клавишу F8 во время начала загрузки системы.
Второй вариант, использование программы “Driver Signature Enforcement Overrider “, которая подписывает драйвер как “testdriver” и активизирует “testmode”, таким образом, Вы можете загрузить драйвер без реальной цифровой подписи. Вы можете найти более детальное описание на странице программы, пройдя по ссылке выше.

Вот что получилось у меня:



Программатор использую с программами AVRProg v.1.4 из пакета AVRStudio. На Windows XP Работают безотказно.

Программатор устанавливается как виртуальный Com-порт. Единственно, что нужно учесть, AVRProg проверяет порты от 1 до 4. Придется в диспетчере устройств передвинуть на порт до COM4, либо в настройках AVRStudio указать по какой порт искать программатор.

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

P.S. Когда мне нужно было прошить PWM контроллеры (AT90PWM3) то пришлось это делать с помощью старого доброго AVR ISP Prorgammer (через LPT порт), AVRProg v.1.4 не знает AT90PWM3. Не определенная ситуация складывается и с ATmega64. Поэтому, основным рабочим программатором у меня остается ЛПТешный AVR ISP Prorgammer.

P.S.P.S. Не так давно знакомый купил этот USBasp программатор

Драйвера и ПО для него смотри здесь: http://www.fischl.de/usbasp/
Работает, при этом обрадовало отсутствие багов, замеченных у AVR / 89S совместимого с AVR910 (USB) программатора.

В статье описано ПО для работы с этими и другими программаторами.

Еще одним несложным, в плане изготовления, является COM программатор. При условии использования альтернативного режима COM порта Bitbang, отпадает необходимость в преобразовании интерфейса RS232 COM порта в SPI, необходимый для программирования. Остается только привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В). Это и делает
схема COM программатора для AVR микроконтроллеров:

Данная схема программатора достаточно распространена и известна как программатор Громова. Название пошло от автора программы Геннадия Громова, который и предложил такую схему.

Чтобы собрать программатор Громова нам нужно следующее:

Диоды КД522, КД510, 1N4148 или им подобные. Резисторы можно использовать любые, какие найдете. В качестве шлейфа можно использовать IDE шлейф. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом. Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству.
Для внутрисхемного программирования Atmel рекомендует стандартные разъемы:


Если Вы планируете серьезно заняться микроконтроллерами, сделайте разъемы стандартными. Для разового программирования устройства я рекомендую использовать на программаторе (такими разъемами к материнской плате подключаются кнопки и светодиоды корпуса компа — именно их я и взял) и штырьки PLS «папы» на плате. Это позволяет максимально упростить разводку платы устройства, так как штырьки для программатора устанавливаются в непосредственной близости возле ножек микроконтроллера. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем. Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.

Собрать COM программатор не составит труда:

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

Для того чтобы наш COM программатор заработал нужна , к которой мы подключим программатор и для микроконтроллера.

— Так как режим Bitbang нестандартный для COM порта компьютера, то возможны сбои в работе (хотя у меня такого не было). Особенно это касается ноутбуков. Как вариант решения этой проблемы можно рекомендовать «поиграться» настройками COM порта (скорость, биты данных, варианты управления потоком, величины буфера …).
— Отдельный разъем для «земли» желательно подключить первым, чтобы уравнять потенциалы «земли» программируемого устройства и компьютера. Для тех, кто не знает, если у Вас компьютер включен в обычную розетку, без заземляющего контакта, то в виду особенности фильтра блока питания компьютера, на корпусе компьютера всегда присутствует потенциал в 110В.

Заключение:

— COM программатор Громова простой и надежный. Я не перестал пользоваться им даже собрав USB программатор (если какой либо микроконтроллер перестает программироваться USB программатором я обязательно перепроверю его на программаторе Громова).
— Так как программатор Громова собран на пассивных элементах он не требует для себя питания. Мало того, из-за паразитного питания, микроконтроллер можно запрограммировать вообще не подключая к нему источника питания! Хотя так программировать я не рекомендую, но сам факт интересен.
— Для пользователей Algorithm Builder есть приятный бонус! Этот программатор можно использовать для внутрисхемной отладки кристалла (программный JTAG).

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

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

Первая группа включает в себя программаторы, построенные на основе микроконтроллеров (в частности, 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 ПРОГРАММАТОР

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.
USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.

Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание:

Список поддерживаемых микроконтроллеров

ATmega серия ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серия ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

Серия Classic AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN серия AT90CAN128

PWM серия AT90PWM2 AT90PWM3

Внешний вид Комплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.

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

Некоторые отверстия не целиком заполнены припоем

SMD-элементы тоже криво припаяны

Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл

Размеры платы несколько больше USB-TTL-конвертера на CP2102

Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.

Органы управления на плате На плате имеются три перемычки, задающие разные режимы работы программатора:
JP1 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К , понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.

Установка драйверов Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows
1) Скачать , распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».

3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»

4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»

5) «Всё равно установить этот драйвер»

6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены

Прошивка собрата Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1 :

Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.

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

Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер

Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.

Скачиваю прошивку для программатора с странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.

Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.

Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.



Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано , какие из них установлены, а какие нет.

Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно:

Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.

Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz) В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.

AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.


Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.

Связь с контроллером ATtiny13A в корпусе SOIC8 Соединение согласно схеме ниже. Но тут всё немного интереснее.

Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать .

AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.

Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3

2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3


Внести туда четыре строчки кода и сохранить. (взято )
progisp=jtag2pdiportprog=COM1portenabled=1 progisp=Usbasp -B 3 portprog=usb portenabled=0

Примечание. Здесь применён ключ «-B», который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах

После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.

Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.

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

Но стоит замкнуть перемычку JP3 , и можно спокойно работать


Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.

Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:
#define f_cpu 9600000 то загрузив код на Attiny13, светодиод будет мигать очень медленно?
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.

Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7 Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.

Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.

На верхней панели инструментов выбрать «Tools» — «External Tools…»

Откроется небольшое окно, нажать «Add»

В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.

Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой

Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию

Конфигурация для Atmega168

P m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите — также там найдёте описания ключей AVRDUDE.

Конфигурация для ATtiny13


После заполнения полей нажать «Apply» и «ОК». Окно закроется

Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.

Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…»
Откроется следующее окно:

Перейти во вкладку «Commands» — нажать кнопку «Add Command…»

Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»

«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».

Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.


При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».

И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.

Дополнение по фьюзам программатора Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом khazam»ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником ):

Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F , Fuse High Byte: C9 , Fuse Low Byte: EF .

Если всё сходится, можно нажимать «программирование»

ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя.
_____________________________________

Выводы Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.

Список ссылок

22 сентября 2011 в 20:11
  • Программирование микроконтроллеров

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

Ещё один шаг в сторону от ардуинонизации. Программы для работы с программатором

Сегодня расскажу, о недорогим и очень простом программаторе USBAsp v.2.0 для микроконтроллеров AVR (основанный на дизайне Томаса Фишла), с его помощью можно прошивать контроллеры AVR по интерфейсу ISP (не выпаивая его с платы), а самое главное, можно прошить загрузочный сектор на контроллерах Arduino.

Технические параметры

Напряжение питания: 5 В, DC
Интерфейс: USB 2.0
Программирование/ чтение: Atmel (AVR)
Габариты: 70 мм x 18 мм x 10 мм
Поддержка операционных систем: Windows XP / 7 / 8 / 8.1 / 10.

Общие сведения

Программатор USBAsp распространяется и открытым исходным кодом, так что при желании можно изготовить самому, скачав печатную плату и прошивку с сайта Thomas, из-за этого в различных интернет магазинах существует различные варианты программатора с одинаковым функционалом. В моем случае буду рассказывать о USBAsp V2.0 китайского производителя LC Technelogy.

Программатор собран на синий печатной плате, слева расположен USB-разъем необходимый для подключения к компьютеру. В центре располагается контроллер ATmega8A, рядом установлен кварцевый резонатор на 12 МГц и электрическая обвязка (резисторы, конденсаторы). Справа расположен 10-контактный разъем (два ряда, по пять выводов, шагом 2.54 мм), обеспечивающий обмен данными с прошиваемым микроконтроллером (интерфейс ISP). В комплекте поставляется кабель, с каждой стороны которого, установлен разъем IDC (10 выводов), для простоты прошивки некоторых плат (например Arduino), советую приобрести адаптер-переходник с 10-pin на 6-pin. Назначение выводов программатора USBAsp можно посмотреть на рисунке ниже, вид на стороне программатора.

Назначение выводов:
1 – MOSI
2 – VCC
3, 8, 10 – GND
4 – TXD
5 – RESET
6 – RXD
7 – SCK
9 – MISO

Световая индикация
Красный светодиод G — Включен
Красный светодиод R — Обмен данными

Перемычки
JP1 — POWER, управляет напряжением на разъеме ISP VCC (вывод 2), можно установить на + 3.3В, + 5В или вовсе убрать перемычку, если программируемое устройство, имеет собственный источник питания.
JP2 — SERVICE, обновления прошивки USBasp.
JP3 — SLOW, программирования на низких скоростях, если программируемое устройство, работает на частоте ниже 1.5 МГц, SCK (вывод 7) уменьшит частоту с 375 кГц до 8 кГц.

Принципиальная схема программатора USBAsp V2.0 можно посмотреть на рисунке ниже.

Список поддерживаемых AVR микроконтроллеров:
Mega Series:
ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535,
Tiny Series: ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny2313, ATtiny2313A
Classic Series: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
Can Series: AT90CAN128
PWN Series: AT90PWM2, AT90PWM3

Установка драйвера USBAsp на Windows 8/10

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

Так как, в операционной системе нету необходимого драйвера, в «Диспетчере устройств » появится устройство «USBAsp » с восклицательным знаком.

Скачиваем архив с цифровой подписью, разархивируем и запускаем «InstallDriver.exe»

Драйвер установлен, в «Диспетчере устройств » пропадет восклицательный знак с «USBAsp ».

Установка драйвера на Windows XP и Windows 7 аналогичная, программатор готов к работе.

Программу разработал «Боднар Сергей », работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe ».
В качестве примера, прошью китайскую плату Arduino UNO R3 в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры » и выбираем ATmega328P.

Далее, необходимо выбрать прошивку, в строке «Flash » нажимаем «. . . », переходим в папку «C:\Program Files\Arduino\hardware\arduino\avr\bootloaders\atmega » и выбираем «ATmegaBOOT_168_atmega328.hex », жмем «Открыть »

Подключаем программатор к плате «Arduino UNO R3 », и нажимаем кнопку «Программирование ».

В конце, выйдет диалоговое окно, о удачном окончании программировании.

Микроконтроллеры фирмы ATMEL успели завоевать широкую популярность. Их программирование перед применением можно выполнить непосредственно в плате готового устройства через несложный ISP кабель, подключаемый к LPT порту персонального компьютера или кабель чуть посложнее, подключаемый к COM порту. Но в настоящее время всё больше материнских плат выпускается без того и другого, а в ноутбуках LPT исчез уже давно, сменившись интерфейсом USB. Впрочем, под этот интерфейс программаторы тоже существуют и доступны.

Для масштаба рядом лежит обычный 5 мм светодиод.
Этот программатор USBASP поддерживает следующие микроконтроллеры:

Список поддерживаемых МК

ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168,ATmega169, ATmega32, ATmega323,ATmega324, ATmega325,
ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega103, ATmega406, ATmega8515, ATmega8535
AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
AT89S51, AT89S52
AT86RF401


Вместе с программатором поставляется 10-жильный летночный кабель с разъёмами.


Питание программатора берется с USB порта компьютера.


На плате программатора имеется место для распайки LDO стабилизатора напряжения на 3,3В, но сам он не распаян.
Программатор поддерживается программой AVRDUDE. Сама программа консольная, но под неё есть . Утилиту avrdude можно найти в папке /hardware/tools/ в дистрибутиве Arduino IDE или скачать в интернете.
Перед началом работы с программатором потребуется скачать драйвер со .
Также программатор поддерживается средой разработки Arduino.


Для программатора существует прошивка под названием , превращающая его в STK500-совместимый и воспринимаемый фирменной средой разработки ATMEL AVR Studio, но в силу высокой вариативности китайского железа пользоваться ею можно только на свой страх и риск. Планирую купить +32 Добавить в избранное Обзор понравился +17 +42

Опубліковано 23.02.2011

Неболшой обзор используемых на практике программаторов для микроконтроллеров AVR. AVR ISP Prorgammer и USB программатор AVR / 89S совместимый с AVR910 .

AVR ISP Prorgammer

Внутрисхемный программатор для программирования микроконтроллеров фирмы ATMEL®, как в условиях серийного производства, так и в процессе разработки и отладки изделий.

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

TinyAVR

ATtiny11L, ATtiny11, ATtiny12V, ATtiny12L, ATtiny13, ATtiny15L, ATtiny2313, ATtiny26L, ATtiny26, ATtiny28V, ATtiny28L

AT90S1200, AT90S2313, AT90LS2323, AT90S2323, AT90LS2343, AT90S2343, AT90LS4433, AT90S4433, AT90LS8515, AT90S8515, AT90LS8535, AT90S8535

MegaAVR

ATmega48, ATmega88, ATmega168, ATmega8, ATmega16, ATmega32, ATmega64, ATmega640, ATmega128, ATmega1280, ATmega1281, AT90CAN128, ATmega103, ATmega161, ATmega162, ATmega163L, ATmega169, ATmega8515, ATmega8535, ATmega2560, ATmega2561, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega329, ATmega3290, ATmega649, ATmega6490

Отличительные особенности

:

– внутрисхемное программирование (не требуются дополнительные переходные панели, при этом выводы программирования используются в проекте)

– поддержка программатора популярными компиляторами AVRstudio, IAR AVR, Image Craft AVR.

– автоматическая верификация (100% гарантия соответствия зашитого кода исходному)

– высокая скорость программирования, возможность прошивки серийного номера кристалла

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

Схема этого простого, но надежного программатора:

Двусторонняя плата помещается в разъем:


Мне понадобился второй программатор, а описанный ниже USB программатор не мог шить нужный мне микроконтроллер. Поэтому я решил повторить этот LPT программатор.



Компьютерные тенденции таковы, что LPT порт скоро исчезнет. Поэтому пора присмотреть альтернативу.

Программатор микроконтроллеров AVR / 89S совместимый с AVR910 (USB программатор)

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

Минус такой переделки – отсутствие предохранителя. Хотя, как показала практика, USB порт кротким замыканием спалить вряд ли удастся. По крайней мере, на моём компьютере не вышло, но экспериментировать не стоит.
Светодиод VL3 сигнализирует о подачи питания на программатор через порт USB. Светодиоды VL1, VL2 сигнализируют о чтении / записи программатора.
Джампер J1 – (MODify) служит для программирования микроконтроллера в новом программаторе. При его замыкании, к разъему ISP подключается внешний программатор и производится загрузка в МК программы.
После этот джампер необходимо разомкнуть и замкнуть джампер J2 – NORMal. Больше мы его не трогаем.
С помощью джампера J3 LOW SCK возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом – пониженная.
Примечательная особенность, на вывод LED разъема ISP выведен меандр с частотой 1 МГц для “оживления” МК, у которых были ошибочно запрограммированы фьюз-биты, отвечающие за тактирование. ОЧЕНЬ полезная штука!

Прошивка FUSE BITS
Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в “0”) биты SPIEN, CKOPT, SUT0 и BODEN. Обычно микроконтроллеры, идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Остальные биты должны быть незапрограммированные (установлены в “1”).

Инсталляция
Windows 2000/XP/Vista/Seven 32-bit

Прошить контроллер. Подключить свежеиспеченный программатор к РС через свободный разъем USB. Операционная система найдет новое устройство – AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к inf-файлу, в зависимости от установленной на вашем компьютере операционной системы.
В архиве с прошивкой имеется папка “AVR910.Driver ” в которой расположены три директории для разных вариантов операционных систем:
-“2k_xp_32 ” – для операционных систем Windows 2000/XP 32-bit (используется штатный драйвер usbser.sys)
-“vista_xp_32 ” – Для операционных систем Windows XP/Vista/Seven 32-bit (usbser.sys + lowbulk.sys от Osamu Tamura)
-“vista_xp_64 ” – Для операционных систем Windows XP/Vista/Seven 64-bit (usbser.sys + lowbulk.sys от Osamu Tamura)

Особенности установки:

В принципе, инсталляция не отличается от подобной для Windows XP, но есть одно НО – задержки в драйвере usbser.sys данной ОС портят цепочку команд от ПО на РС до программатора и, соответственно, цепь ответов обратно от программатора до ПО на РС… Проблему я пока не установил, но есть решение. Конечно не самое красивое, но работает надежно 🙂 Необходимо заменить файл usbser.sys в системных папках Windows 2000 на аналогичный от Windows XP. Это папки …\winnt\system32\drivers\ и …\winnt\system32\dllcashe\. Файл usbser.sys от Windows XP SP1 можно взять здесь. Естественно, что драйвер придется подменять загрузившись под другой ОС (например с загрузочного диска).

Чтобы использовать драйвера на 64 битной платформе, Вы должны отключить проверку цифровых подписей драйверов, нажимая функциональную клавишу F8 во время начала загрузки системы.
Второй вариант, использование программы “Driver Signature Enforcement Overrider “, которая подписывает драйвер как “testdriver” и активизирует “testmode”, таким образом, Вы можете загрузить драйвер без реальной цифровой подписи. Вы можете найти более детальное описание на странице программы, пройдя по ссылке выше.

Вот что получилось у меня:



Программатор использую с программами AVRProg v.1.4 из пакета AVRStudio. На Windows XP Работают безотказно.

Программатор устанавливается как виртуальный Com-порт. Единственно, что нужно учесть, AVRProg проверяет порты от 1 до 4. Придется в диспетчере устройств передвинуть на порт до COM4, либо в настройках AVRStudio указать по какой порт искать программатор.

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

P.S. Когда мне нужно было прошить PWM контроллеры (AT90PWM3) то пришлось это делать с помощью старого доброго AVR ISP Prorgammer (через LPT порт), AVRProg v.1.4 не знает AT90PWM3. Не определенная ситуация складывается и с ATmega64. Поэтому, основным рабочим программатором у меня остается ЛПТешный AVR ISP Prorgammer.

P.S.P.S. Не так давно знакомый купил этот USBasp программатор

Драйвера и ПО для него смотри здесь: http://www.fischl.de/usbasp/
Работает, при этом обрадовало отсутствие багов, замеченных у AVR / 89S совместимого с AVR910 (USB) программатора.

В статье описано ПО для работы с этими и другими программаторами.

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.
USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.

Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание:

Список поддерживаемых микроконтроллеров

ATmega серия ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серия ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

Серия Classic AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN серия AT90CAN128

PWM серия AT90PWM2 AT90PWM3

Внешний вид Комплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.

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

Некоторые отверстия не целиком заполнены припоем

SMD-элементы тоже криво припаяны

Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл

Размеры платы несколько больше USB-TTL-конвертера на CP2102

Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.

Органы управления на плате На плате имеются три перемычки, задающие разные режимы работы программатора:
JP1 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К , понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.

Установка драйверов Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows
1) Скачать , распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».

3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»

4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»

5) «Всё равно установить этот драйвер»

6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены

Прошивка собрата Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1 :

Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.

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

Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер

Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.

Скачиваю прошивку для программатора с странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.

Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.

Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.



Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано , какие из них установлены, а какие нет.

Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно:

Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.

Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz) В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.

AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.


Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.

Связь с контроллером ATtiny13A в корпусе SOIC8 Соединение согласно схеме ниже. Но тут всё немного интереснее.

Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать .

AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.

Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3

2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3


Внести туда четыре строчки кода и сохранить. (взято )
progisp=jtag2pdiportprog=COM1portenabled=1 progisp=Usbasp -B 3 portprog=usb portenabled=0

Примечание. Здесь применён ключ «-B», который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах

После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.

Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.

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

Но стоит замкнуть перемычку JP3 , и можно спокойно работать


Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.

Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:
#define f_cpu 9600000 то загрузив код на Attiny13, светодиод будет мигать очень медленно?
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.

Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7 Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.

Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.

На верхней панели инструментов выбрать «Tools» — «External Tools…»

Откроется небольшое окно, нажать «Add»

В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.

Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой

Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию

Конфигурация для Atmega168

P m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите — также там найдёте описания ключей AVRDUDE.

Конфигурация для ATtiny13


После заполнения полей нажать «Apply» и «ОК». Окно закроется

Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.

Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…»
Откроется следующее окно:

Перейти во вкладку «Commands» — нажать кнопку «Add Command…»

Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»

«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».

Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.


При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».

И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.

Дополнение по фьюзам программатора Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом khazam»ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником ):

Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F , Fuse High Byte: C9 , Fuse Low Byte: EF .

Если всё сходится, можно нажимать «программирование»

ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя.
_____________________________________

Выводы Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.

Список ссылок

В данной статье мы опишем „шаг за шагом” этапы изготовления USBasp программатора для микроконтроллеров AVR . В отдельных статьях приведем описание установки драйверов для операционных систем Windows XP и Windows 7 (x64/x86). В конце поста размещена ссылка с необходимой документацией для изготовления программатора USBasp своими руками.

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

Основные характеристики программатора USBasp

  • Работает с несколькими операционными системами – Linux, Mac OS X и Windows – включая Windows 8!
  • Не требует внешнего питания.
  • Умеет программировать со скоростью вплоть до 5kB/s
  • Есть вариант (Switch 2) снижения скорость программирования – для процессоров с кварцем меньше 1,5 Мгц
  • Обеспечивает напряжение для программирования (Switch 1) 5 вольт
  • Указание работы программатора с помощью светодиода

Перед началом работы, стоит ознакомиться с последовательностью всех выполняемых действий, а именно:

  1. Выбор схемы/рисунка печатной платы
  2. Перенос рисунка печатной платы на фольгированный стеклотекстолит
  3. Травление печатной платы в растворе хлорного железа
  4. Сверление отверстий
  5. Монтаж элементов (пайка)
  6. Программирование Atmaga8 программатора
  7. Подключение программатора к компьютеру
  8. Установка драйверов – Windows XP, Windows 7
  9. Выбор программы с поддержкой USBasp

Существует много версий USBasp программатора, но все они основаны на главной схеме, автором которой является Thomas Fischl . Прошивка микроконтроллера программатора также является его авторством.

Оригинальная схема программатора:

В данном случае за основу была выбрана оригинальная схема. Поскольку использование перемычек в оригинальной схеме не совсем удобно, было принято решение использовать DIP переключатели. Так же были изменены некоторые значения резисторов.
Более того, в оригинальной схеме линии TxD и RxD выведены на разъем ISP, хотя это не нужно (точнее не используются на практике).

Ниже приведена схема с внесенными изменениями:

Строительство USBasp программатора

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

К сожалению, из-за применения DIP переключателей, рисунок платы стал немного сложнее, что привело к применению 2 коротких перемычек, с целью чтобы печатная плата была по-прежнему односторонней.

Ниже результат печатной платы:

Как видно на рисунке, в программаторе не применялись SMD элементы. Пустое пространство на плате „залито” полем массы, главным образом для того, чтобы не вытравливать большое количество меди, а также снизить влияние помех на программатор.

Список элементов используемых в USBasp программаторе:

  • R1: 10к
  • R2: 180
  • R3: 100
  • R5, R6: 68
  • R7: 2к2
  • C1, C2: 22п
  • C3: 10мк
  • C4: 100н
  • LED1: Красный светодиод на 20мА
  • LED2: Зеленый светодиод на 20мА
  • D2, D3: стабилитроны на 3,6В
  • X1: Разъем USB, тип B
  • SV1: Гнездо под разъем IDC-10
  • Q1: Кварц 12МГц, корпус HC49-S
  • SW1: Dip переключатель трехпозиционный
  • IC1: Atmega8 (ПРИМЕЧАНИЕ: Не следует использовать микроконтроллер Atmega8 — PU из-за его ограничение максимальной тактовой частотой до 8 МГц!)

Перенос рисунка печатной платы USBasp программатора на стеклотекстолит выполнен с помощью метода ЛУТ (). Как это делать описывать не будем, поскольку данной информации в сети много.

Вкратце скажем, что сначала рисунок в масштабе 1:1 печатается на глянцевой бумаге, затем он накладывается на очищенную и обезжиренную медную сторону стеклотекстолита и фиксируется с помощью бумажного скотча. Далее бумажная сторона тщательно разглаживается утюгом на 3-ке. После все это дело вымачивается в воде и аккуратно очищается от бумаги.

Следующий этап – вытравливание платы в растворе хлорного железа. Во время травления желательно поддерживать температуру раствора не ниже 40 C, поэтому банку с раствором погружаем в горячую воду:


После завершения процесса травления необходимо удалить тонер ацетоном.

Остается теперь только просверлить отверстия. После завершения процесса изготовления платы можно приступать к пайке элементов USBasp программатора, начиная с перемычек.

Готовые к печати (в формате PDF) рисунок печатной платы находится в конце статьи. Вы также можете найти несколько вариантов на официальном сайте проекта.

Первый запуск USBasp программатора

Теперь, когда все детали спаяны, остается только «прошить» микроконтроллер Atmegę8 самого программатора. Для этого нужен отдельный программатор, это может быть, например, STK 200 (LPT порт), STK500 и т. д. LPT программатор подключается к USBasp через разъем IDC-10.

Обратите внимание, что распределение пинов в разъеме оригинального программатора (USBasp) находится справа, в то время как в версии, описываемой в этой статье – слева:

Распределение, показанное на рисунке справа, соответствует тем, которые применяет компания Atmel в своих оригинальных программаторах. Такое распределение уменьшает риск возникновения помех во время программирования в случае применения длинных проводов от программатора к контроллеру, так как каждая сигнальная линия экранирована массой, кроме MOSI.

На время программирования включите режим SELF путем переключения DIP переключателя № 3 в положение ON. Благодаря этому появляется возможность запрограммировать Atmega8. После завершения программирования, положение переключателя (3) должна быть переведено в состоянии OFF.

Последнюю версию прошивки можно скачать с официального сайта. Рекомендуем версию для Atmega8, которая находится в архиве: usbasp.2011-05-28.tar.gz.

Обратите внимание, чтобы перед программированием Atmega8 необходимо выставить фьюзы которые имеют следующие значения:

  • # для Atmega8: HFUSE=0xC9 LFUSE=0xEF
  • # для Atmega48: HFUSE=0xDD LFUSE=0xFF

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

Установка драйверов USBasp программатора

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

  • Установка драйверов для программатора USBasp под Windows XP
  • Установка драйверов для программатора USBasp Windows 7 x64/x86

Программы для работы программатора USBasp

Самой популярной программой, поддерживающей программатор USBasp, это консольная программа AVRdude. Так же существует множество производных программ, использование которых намного удобнее. Они представлены в статье Сравнение программ для поддержки программатора USBasp.

Isp разъем программирования. Миниатюрный USB программатор для AVR микроконтроллеров

Рис.1 AVR ISP

Программаторы, работающие под управлением PonyProg2000 и других любительских программ, очень просты. Однако большинство из них не может обеспечить такой функциональности, какой обладают фирменные средства разработки. Одним из самых популярных программаторов Atmel является AVR ISP (внешний вид на рис.1). С помощью AVR ISP можно запрограммировать любой микроконтроллер с ядром AVR через последовательный интерфейс SPI. Программатор подключается через COM-порт и работает под управлением AVR Studio.

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

Рис.2 Аналог фирменного программатора AVR ISP

На рис.2 приведена принципиальная схема авторского варианта AVR ISP. В отличие от своего прообраза он содержит только один микроконтроллер, обладая теми же функциями. В место ATmega8535 (AT90S8535) в базовом варианте применён микроконтроллер ATmega16. Он имеет вдвое большим объёмом памяти программ и данных, и сопоставим с ATmega8535 по назначению выводов и внутреннему устройству. Запись и обновление содержимого DD2 осуществляются через встроенную программу-загрузчик (boot-loader), которая использует для этих целей способность самопрограммирования микроконтроллеров AVR. Дополнительными программными средствами осуществляется так же согласование работы программы предназначенной для ATmega8535 с адресным пространством ATmega16 и использование прерывания TOV0 для отслеживания положения кнопки SB1 и управления линиями PD7, PC0…PC6.

Программатор подключается к любому свободному COM порту в системе через разъём X1. Напряжение 9…15 В подаётся на разъём X2 от отдельного источника питания способного отдавать в нагрузку ток не меньший чем 100 мА. Разъем X3 служит для внутрисхемного программирования или при программировании на отдельной панели.

На выводе 7 X3 присутствуют прямоугольные импульсы частотой 1.8432 МГц. Их можно использовать, если программируемый микроконтроллер настроен на работу с кварцевым резонатором либо с внешним тактовый генератором. В этом случае импульсы подаются на вход XTAL1. Устройства, не имеющие собственного источника энергии, можно запитать непосредственно от программатора через вывод 2 X3 (внутрисхемное программирование устройств с напряжением питания меньшим, чем 5 может привести к поломке!). Активизация и запрещение тактовых импульсов на выводе 2 X3, а также присутствие напряжения 5 В на выводе 7 X3, регулируются кнопкой SB1.

В ходе работы светодиод HL3 свидетельствует о нормальном функционировании программатора. HL1 будет светиться во время программирования микроконтроллера, а HL2 будет сигнализировать о наличии напряжения и тактовых импульсов (выводы 2 и 7 X3 соответственно).

Перед началом работы в DD2 нужно занести программу, находящуюся в Файле BootISP.hex (исходный текст в файле BootISP.asm) с помощью любого удобного программатора. FUSE-биты при этом должны выглядеть следующим образом:

CKSEL0 = 0 SUT0 = 1 BOOTRST = 0 EESAVE = 1

CKSEL1 = 0 SUT1 = 0 BOOTSZ0 = 0 CKOPT = 1

CKSEL2 = 1 BODEN = 0 BOOTSZ1 = 0 JTAGEN = 1

CKSEL3 = 1 BODLEVEL = 0 SPIEN = 0 OCDEN = 1

Рис.3 Процесс программирования

После того как программатор собран и подключён к компьютеру – приступают к загрузке текущей версии управляющей программы. Нажав на кнопку SB1(!), подают питание на разъём X2. Должен загореться светодиод HL1, что свидетельствует о переводе в режим обновления программного обеспечения. После этого запускают AVR Studio и через меню Tools -> AVR Prog открывают окно обновления “прошивки” AVR ISP. Далее нужно указать путь к загрузочному файлу, который по умолчанию имеет размещение C:Program filesAtmelAVR ToolsSTK500STK500.ebn, и начать программирование, нажав на экранную кнопку Flash -> Program(окно на рис.3). В конце завершения операции необходимо кратковременно снять напряжение, после чего программатор будет готов к применению. Связь осуществляется через меню Tools -> Program AVR -> Auto Connect. Вид окна программы поддержки AVR ISP приведен на рис.4.

Рис.4 Вид окна программы поддержки AVR ISP

Интерфейс программы очень простой и не требует подробных пояснений. Здесь только необходимо обратить внимание на несколько важных деталей. В списке устройств на вкладке Program в окне Device, кроме микроконтроллеров с ядром AVR (ATmega, ATtiny, AT90x и др.), доступны также некоторые модели семейства MCS-51 (названия начинаются с AT89S). Программирование AT89S через SPI принципиально ни чем не отличается от подобной операции у AVR-микроконтроллеров, за исключением одного существенного различая. Сигнала RESET у MCS-51 (в отличие от AVR) имеет активный высокий уровень. Поэтому при программировании моделей AT89S резистор R2, предотвращающий запуск микроконтроллеров AVR, необходимо подключить к шине питания программатора.

Иногда случается так, что с первого раза не удается установить связь программатора с устройством. Если не считать ошибок монтажа и неправильной установки FUSE-битов, запрещающих работу SPI (SPIEN, DWEN и RSTDISBL), вероятнее всего проблема заключается в слишком высокой частоте тактовых импульсов на линии SCK. В этом случае необходимо уменьшить скорость последовательного интерфейса. Это можно сделать вручную через вкладку Board (окно ISP Freq). Модуль SPI ведомого микроконтроллера не может работать на частотах превышающих F ­clk ­/4.

Программатор был проверен в работе с AVR Studio версий 4.12…4.16 со многими типами микроконтроллеров. Никаких ошибок при этом не было выявлено.

Рис.1 AVR ISP

Программаторы, работающие под управлением и других любительских программ, очень просты. Однако большинство из них не может обеспечить такой функциональности, какой обладают фирменные средства разработки. Одним из самых популярных программаторов Atmel является AVR ISP (внешний вид на рис.1). С помощью AVR ISP можно запрограммировать любой микроконтроллер с ядром AVR через последовательный интерфейс SPI. Программатор подключается через COM-порт и работает под управлением .

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


Рис.2 Аналог фирменного программатора AVR ISP

На рис.2 приведена принципиальная схема авторского варианта AVR ISP. В отличие от своего прообраза он содержит только один микроконтроллер, обладая теми же функциями. В место ATmega8535 (AT90S8535) в базовом варианте применён микроконтроллер ATmega16. Он имеет вдвое большим объёмом памяти программ и данных, и сопоставим с ATmega8535 по назначению выводов и внутреннему устройству. Запись и обновление содержимого DD2 осуществляются через встроенную программу-загрузчик (boot-loader), которая использует для этих целей способность самопрограммирования микроконтроллеров AVR. Дополнительными программными средствами осуществляется так же согласование работы программы предназначенной для ATmega8535 с адресным пространством ATmega16 и использование прерывания TOV0 для отслеживания положения кнопки SB1 и управления линиями PD7, PC0…PC6.

Программатор подключается к любому свободному COM порту в системе через разъём X1. Напряжение 9…15 В подаётся на разъём X2 от отдельного источника питания способного отдавать в нагрузку ток не меньший чем 100 мА. Разъем X3 служит для внутрисхемного программирования или при программировании на отдельной панели.
На выводе 7 X3 присутствуют прямоугольные импульсы частотой 1.8432 МГц. Их можно использовать, если программируемый микроконтроллер настроен на работу с кварцевым резонатором либо с внешним тактовый генератором. В этом случае импульсы подаются на вход XTAL1. Устройства, не имеющие собственного источника энергии, можно запитать непосредственно от программатора через вывод 2 X3 (внутрисхемное программирование устройств с напряжением питания меньшим, чем 5 может привести к поломке!). Активизация и запрещение тактовых импульсов на выводе 2 X3, а также присутствие напряжения 5 В на выводе 7 X3, регулируются кнопкой SB1.

В ходе работы светодиод HL3 свидетельствует о нормальном функционировании программатора. HL1 будет светиться во время программирования микроконтроллера, а HL2 будет сигнализировать о наличии напряжения и тактовых импульсов (выводы 2 и 7 X3 соответственно).

Перед началом работы в DD2 нужно занести программу, находящуюся в Файле BootISP.hex (исходный текст в файле BootISP.asm) с помощью любого удобного программатора. FUSE-биты при этом должны выглядеть следующим образом:
CKSEL0 = 0 SUT0 = 1 BOOTRST = 0 EESAVE = 1
CKSEL1 = 0 SUT1 = 0 BOOTSZ0 = 0 CKOPT = 1
CKSEL2 = 1 BODEN = 0 BOOTSZ1 = 0 JTAGEN = 1
CKSEL3 = 1 BODLEVEL = 0 SPIEN = 0 OCDEN = 1


Рис.3 Процесс программирования

После того как программатор собран и подключён к компьютеру — приступают к загрузке текущей версии управляющей программы. Нажав на кнопку SB1(!), подают питание на разъём X2. Должен загореться светодиод HL1, что свидетельствует о переводе в режим обновления программного обеспечения. После этого запускают AVR Studio и через меню Tools -> AVR Prog открывают окно обновления “прошивки” AVR ISP. Далее нужно указать путь к загрузочному файлу, который по умолчанию имеет размещение C:\Program files\Atmel\AVR Tools\STK500\STK500.ebn, и начать программирование, нажав на экранную кнопку Flash -> Program(окно на рис.3). В конце завершения операции необходимо кратковременно снять напряжение, после чего программатор будет готов к применению. Связь осуществляется через меню Tools -> Program AVR -> Auto Connect. Вид окна программы поддержки AVR ISP приведен на рис.4.


Рис.4 Вид окна программы поддержки AVR ISP

Интерфейс программы очень простой и не требует подробных пояснений. Здесь только необходимо обратить внимание на несколько важных деталей. В списке устройств на вкладке Program в окне Device, кроме микроконтроллеров с ядром AVR (ATmega, ATtiny, AT90x и др.), доступны также некоторые модели семейства MCS-51 (названия начинаются с AT89S). Программирование AT89S через SPI принципиально ни чем не отличается от подобной операции у AVR-микроконтроллеров, за исключением одного существенного различая. Сигнала RESET у MCS-51 (в отличие от AVR) имеет активный высокий уровень. Поэтому при программировании моделей AT89S резистор R2, предотвращающий запуск микроконтроллеров AVR, необходимо подключить к шине питания программатора.

Иногда случается так, что с первого раза не удается установить связь программатора с устройством. Если не считать ошибок монтажа и неправильной установки FUSE-битов, запрещающих работу SPI (SPIEN, DWEN и RSTDISBL), вероятнее всего проблема заключается в слишком высокой частоте тактовых импульсов на линии SCK. В этом случае необходимо уменьшить скорость последовательного интерфейса. Это можно сделать вручную через вкладку Board (окно ISP Freq). Модуль SPI ведомого микроконтроллера не может работать на частотах превышающих F ­clk ­/4.

Программатор был проверен в работе с версий 4.12…4.16 со многими типами микроконтроллеров. Никаких ошибок при этом не было выявлено.

Список радиоэлементов
Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
DD1 ИС RS-232 интерфейса

MAX232

1 В блокнот
DD2 МК AVR 8-бит

ATmega16

1 В блокнот
DA1 Линейный регулятор

LM7805

1 В блокнот
VD1 Выпрямительный диод

1N4007

1 В блокнот
R1, R2 Резистор

10 кОм

2 В блокнот
R3 Резистор

4.7 кОм

1 В блокнот
R4 Резистор

510 Ом

1 В блокнот
R5 Резистор

6.8 кОм

1 В блокнот
R6 Резистор

3.3 кОм

1 В блокнот
R7-R9 Резистор

1 кОм

3 В блокнот
C1, C5 470 мкФ 16 В 2 В блокнот
C2, C3, C6, C7 Электролитический конденсатор 1 мкФ 16 В 4 В блокнот
C4, C8, C11 Конденсатор 0.1 мкФ 3 В блокнот
C9, C10 Конденсатор 30 пФ 2 В блокнот
ZQ1 Кварц 3.6864 МГц 1 В блокнот
HL1 Светодиод

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.
USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.

Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание:

Список поддерживаемых микроконтроллеров

ATmega серия ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серия ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

Серия Classic AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN серия AT90CAN128

PWM серия AT90PWM2 AT90PWM3

Внешний вид Комплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.

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

Некоторые отверстия не целиком заполнены припоем

SMD-элементы тоже криво припаяны

Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл

Размеры платы несколько больше USB-TTL-конвертера на CP2102

Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.

Органы управления на плате На плате имеются три перемычки, задающие разные режимы работы программатора:
JP1 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К , понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.

Установка драйверов Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows
1) Скачать , распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».

3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»

4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»

5) «Всё равно установить этот драйвер»

6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены

Прошивка собрата Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1 :

Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.

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

Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер

Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.

Скачиваю прошивку для программатора с странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.

Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.

Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.



Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано , какие из них установлены, а какие нет.

Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно:

Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.

Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz) В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.

AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.


Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.

Связь с контроллером ATtiny13A в корпусе SOIC8 Соединение согласно схеме ниже. Но тут всё немного интереснее.

Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать .

AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.

Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3

2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3


Внести туда четыре строчки кода и сохранить. (взято )
progisp=jtag2pdiportprog=COM1portenabled=1 progisp=Usbasp -B 3 portprog=usb portenabled=0

Примечание. Здесь применён ключ «-B», который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах

После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.

Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.

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

Но стоит замкнуть перемычку JP3 , и можно спокойно работать


Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.

Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:
#define f_cpu 9600000 то загрузив код на Attiny13, светодиод будет мигать очень медленно?
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.

Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7 Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.

Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.

На верхней панели инструментов выбрать «Tools» — «External Tools…»

Откроется небольшое окно, нажать «Add»

В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.

Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой

Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию

Конфигурация для Atmega168

P m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите — также там найдёте описания ключей AVRDUDE.

Конфигурация для ATtiny13


После заполнения полей нажать «Apply» и «ОК». Окно закроется

Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.

Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…»
Откроется следующее окно:

Перейти во вкладку «Commands» — нажать кнопку «Add Command…»

Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»

«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».

Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.


При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».

И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.

Дополнение по фьюзам программатора Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом khazam»ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником ):

Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F , Fuse High Byte: C9 , Fuse Low Byte: EF .

Если всё сходится, можно нажимать «программирование»

ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя.
_____________________________________

Выводы Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.

Список ссылок

Любая версия Freeduino / Arduino может выступать в роли ISP программатора, с помощью которого можно, например, изменить bootloader в другой аналогичной плате, или прошить bootloader в новую микросхему ATmega. В описании указывается Arduino, но фактически может быть использован любой клон, включая все варианты Freeduino.

Здесь рассматривается два варианта ISP программатора на основе Arduino: Mega-ISP, который может быть собран из любой версии Arduino и его клонов, и Bit-Bang программатор, для которого подойдут только те варианты Arduino, которые имеют дополнительно выведенные на специальный разъем контакты микросхемы FT232RL.

Особенности ISP/ICSP

Аббревиатуры ISP и ICSP означают In System Programming и In Circuit Serial Programming соответственно. Это означает программирование чипа уже подключенного в некоторую схему, программирование в готовом устройстве по последовательному протоколу.

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

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

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

Из известных проектов по созданию ISP программатора на основе Arduino наиболее интересным нам кажется Mega-ISP . Именно этот проект включен в состав ПО Arduino в раздел с примерами под именем ArduinoISP.

После загрузки скетча в вашу плату Arduino, скорее всего потребуется тем или иным образом отключить программный сброс. Владельцы плат Freeduino 2009/2013/Nano/Mega2560 могут просто снять перемычку JRS, владельцы Arduino могут перерезать ножом ту же перемычку. Для некоторых других плат можно выпаять конденсатор CRS, но мы советуем менее радикальный способ — соединить выводы Reset и +5V резистором номиналом порядка 120 Ом (). Если все сделано правильно, при открытии COM-порта не будет происходить сброс микроконтроллера (это видно по светодиоду 13), и как побочный эффект станет невозможно обновить его собственную прошивку из среды Arduino.

Во-вторых, данный ISP программатор при общении с ПК использует протокол AVRISP/STK500v1 только со скорость 19200 бит/сек, и нормально работает не со всеми вариантами ПО для ПК. Поэтому не удивляйтесь, что не удается что-либо прошить из среды Arduino. Авторы рекомендуют использовать программу avrdude из состава Win-AVR.

Сборка программатора Mega-ISP

Если Вы с помощью одной платы Arduino собираетесь прошить другую, то Вам потребуется разъем 2×3 и 6 проводков. Схема сборки:

Если нужно прошить отдельный микроконтроллер (не забываем, что его fuse-биты должны быть выставлены так, что он тактируется от внутреннего осцилятора), то нужно узнать согласно документации Atmel расположение вывовдов Gnd, Vcc, MOSI, MISO, SCK.

Соединение с Arduino такое: 10 — Reset, 11 — MOSI, 12 — MISO, 13 — SCK.

Не забываем подключить «землю» и питание.

Для примера приводим разводку для разъема ICSP и микроконтроллеров ATmega328 и ATtiny85.

На фото представлен один из вариантов реализации:

Работа с программатором Mega-ISP

Рассмотрим например, как прошить новый boot-loader.

Bit-Bang программатор

«Сердцем» Bit-Bang программатора является микросхема FD232RL (та самая, которая реализует COM-порт на шине USB), а собственно микроконтроллер ATmega никакого участия в процессе программирования не принимает. Это позволяет программировать микроконтроллер, установленный в «панельке» Вашей Arduino – вторая плата Arduino не потребуется.

Соответственно, для данного программатора подойдут только USB версии Arduino, да и то не все, т.к. не на всех вариантах разведен разъем X3 с дополнительными выводами FT232RL.

Сборка программатора Arduino Bit-Bang

Для сборки Вам потребуются разъемы 1×4, 2×6, штекер 1×2 (для питания) и несколько проводов. Можно использовать, например пару Audio-кабелей от CD-ROM – у них удобные разборные разъемы, и в таком случае можно обойтись даже без паяльника.

Схема соединений следующая:

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

На фотографиях представлены оба варианта соединения – программирование микроконтроллера ATmega168, находящегося в панельке Arduino (провода питания и «земли» не нужны), и программирование микроконтроллера во второй плате.


Работа с программатором Arduino Bit-Bang

Аналогично рассмотрим прошивку нового boot-loader’а.

22 сентября 2011 в 20:11
  • Программирование микроконтроллеров

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

Миниатюрный USB программатор для AVR микроконтроллеров. Системный интегратор Программаторы на микроконтроллере atmega8 сделать usb

Недавно решил сделать себе программатор STK500v2. Пользую в основном CodevisionAVR. Старый не совсем подходил, да и нужен был внутрисхемный программатор. Долгие поиски в сети и чтение форумов привели меня к “AvrUsb500 by Petka”. Программатор был собран и я получил массу положительных эмоций — эффект примерно такой, как будто пересел с советского автопрома на иномарку! Конечно AVR910 надежен как танк — программная реализация USB в нем таких глюков не имеет. Но на тот момент это все были мелочи, по сравнению с преимуществами работы прямо из CodeVision и высокой скорости. Довольно долгое время эти два программатора служили мне верой и правдой, пока с AVR910 не пришлось расстаться. Вот и решил собирать очередной программатор.

К этому времени убедился, что столь любимая нашими радиолюбителями FT232 не так безгрешна как о ней думают. Было собрано несколько разношерстных устройств на этой микросхеме, все пожелания производителя в даташите были учтены, тонна драйверов перепробована на разном железе. Скажу больше — мой промышленный Chipstar XL имеет в качестве USB конвертера тоже FT232, и хоть и не использует VCP-драйвер но глючит тоже не слабо.

Эти все “выбрыки” за пару лет эксплуатации порядком надоели, потому решил модифицировать оригинальную схему. На глаза попалась CP2102 — USB-UART преобразователь. Простая схема, хорошие отзывы о самом производителе (SiLabs) и главное — доступная цена.

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

Обвязка CP2102 выполнена исключительно по даташиту без каких-либо своевольных “художеств”, от себя добавлен лишь второй светодиод, индицирующий наличие питания.

Программирование контроллера производится внутрисхемно. Пятачки предусмотрены на плате. Установка фузов ATMega8:

  1. Субъективно все стало работать на 20-25% быстрее.
  2. Полностью пропали глюки присущие FT232. Определяется без проблем каждый раз, даже после быстрого “перетыкивания” USB, без проблем заработала со всеми моими шнурками.
  3. Драйвера моя Windows 7 вытянула с сервера обновления и поставила сама.

В дальнейшем коснусь лишь узла CP2102, так как работа самого программатора в сети расписана подробно.

Сразу хочу оговориться — проблемой “курицы и яйца” особо не заморачивался, все цепи самопрограммирования через USB вырезаны в угоду размеру. Эта компиляция программатора рассчитана больше на людей с более-менее приличной подготовкой. Причин тому несколько — корпус CP2102 MLP28 (5×5 мм) с контактными площадками на “пузе” вместо ножек — без определенных навыков не поставить, дорожки 0.25 мм — делал обычным утюгом.

Программатор для AVR

Описание

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

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

(возможна замена транзистора BC549 на КТ3102, диода — на любой импульсный: КД503,510,521,522, стабилитроны — любые, на 4.7….5.1 В)
Плата AVR программатора (вид сверху) с 9-контактным последовательным разъемом (гнездо):

Плата программатора AVR (вид снизу):

Размещение платы программатора AVR в корпусе разъема RS232:

Законченный программатор со стандартным 6- контактным разъемом ICSP:

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

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

В схеме есть 2 разъема: ICSP, к которому подключается AVR программатор и разъем для внешнего источника питания.

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

ПО PonyProg

Чтобы иметь возможность загружать hex файлы из компьютера в микроконтроллер, вам потребуется скачать и установить ПО PonyProg2000:

После установки, первое, что предстоит сделать, это сконфигурировать 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)».

В инете сказано, что USBasp — один из наиболее простых для повторения AVR USB программаторов . + требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.

То что нужно! Делаем)))

Процесс изготовления

1. Нашел схемку программатора на контроллере Mega8. Требуется минимум навестных элементов

2. Модифицировал печатную плату под свой корпус. Пришлось немного попотеть, чтоб впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Результат превзошел мои ожидания)

3. Переносим рисунок с чудо-бумаги на плату. Дорожки немного расплылись — не беда. Исправим это с помощью иголки (булавки, или еще чего острого).

4. Процесс травления уже позади. Плата промыта и просушена.

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

7. Получилась компактная плата, пока еще без элементов.

8. Пичкаем плату нужными элементами. Пока без светодиодов и разъем IDC-10 слишком длинный (торчит из корпуса)

9. Выпаиваем Г-образный IDC-10 разъем. Вместо оплетки для лужения (и прочих премудростей) использовал обычный многожильный провод. Получилось аккуратно и быстро)))

10. Припаиваем SMD-компоненты. Вид со стороны дорожек. Все делалось паяльником на 60Вт с жалом 5мм в диаметре. Таким нужно еще наловчиться…

11. Не все резисторы получилось перевести на SMD. Вид со стороны компонентов.
Как видно, контроллер — USB — IDC-10 плотно расположены… Кварц взял обычный, благо высота корпуса позволяет.

12. А вот и корпус, куда будет помещен программатор. Очень полезная штука)

13. Устройство благополучно внедрено в «шкурку сплиттера». Компактно вышло.

14. Размер платы по сравнению с 5 рубленными «монетками»

Программирование микроконтроллера Mega8

1. Прошиваем микроконтроллер с помощью этого программатора:
Простой LPT программатор AVR микроконтроллеров (5-ть проводков)
Заливаем файл прошивки под названием «usbasp.atmega8.2007-10-23.hex» из архива в конце статьи…

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

Данные для самостоятельного изготовления можно взять здесь…

При подключении USB будет постоянно светиться зеленый (красный) светодиод

Установка драйвера для USBasp

1. Можно было запрограммировать и в самом USBasp программаторе, подключив к нему простой программатор согласно распиновке. Если все собрано и запрограммировано верно, то устройство при подключении к ПК определится и «попросит» установить двайвер.

2. На что ему вежливо ответим выбрав папку со скаченными и разархивированными двайверами.

3. Драйвера успешно установятся, если схема собранна верно и МК тоже прошит верно.

4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device .
Радуемся, и тестируем)

Проверка работоспособности программатора

1. В качестве програмки использовал avrdude в оболочке Sinaprog1.5.5.10.
Можно использовать и приложенное к архиву оболочкуUSBASP_AVRDUDE_PROG
Для проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, можно заливать прошивку в Attiny13A .

Необходимые данные для повторения устройства находятся в этом архиве.

Декабрь 2015 г.

1. Преимущества предлагаемого способа

Схемы устройств на микроконтроллерах (МК) обычно отличаются сочетанием двух трудносовместимых качеств: максимальной простотой и высокой функциональностью. К тому же функциональность может в дальнейшем меняться и расширяться без внесения каких-либо изменений в схему — путём лишь замены программы (перепрошивкой). Эти особенности объясняются тем, что создатели современных МК постарались разместить на одном кристалле всё, что только может потребоваться разработчику электронного устройства — по крайней мере настолько, насколько это возможно. В результате произошло смещение акцента со схемотехнического и монтажного на программный. С использованием МК теперь меньше приходится «нагружать» схему деталями, между компонентами становится меньше соединений. Это, конечно, делает схему более привлекательной для её повторения как опытными, так и начинающими электронщиками. Но, как обычно, за всё приходится платить. Здесь тоже не обошлось без своих сложностей. Если купить новый МК, установить его в правильно собранную из исправных деталей схему и подать питание, то ничего не получится — устройство не будет работать. Микроконтроллеру нужна программа.

Казалось бы с этим тоже всё просто — в интернете можно встретить множество схем с бесплатными прошивками. Но тут возникает одна загвоздка: прошивку необходимо как-то «залить» в микроконтроллер. Для того, кто никогда этим раньше не занимался, такая задача зачастую становится проблемой и главным отталкивающим фактором, нередко заставляющим отказаться от прелестей использования МК и поискать схемы на «рассыпухе» и жесткой логике. А ведь всё не так уж сложно, как может показаться на первый взгляд.

Проанализировав публикации в интернете, можно заметить, что данная проблема решается чаще всего одним из двух путей: покупкой готового программатора или изготовлением самодельного. При этом публикуемые схемы самодельных программаторов очень часто неоправданно сложны — гораздо сложнее, чем это действительно необходимо. Конечно, если предполагается каждый день прошивать МК, лучше иметь «крутой» программатор. Но если надобность в такой процедуре возникает нечасто, от случая к случаю, то можно вообще обойтись без программатора. Нет, конечно, речь идет не о том, чтобы научиться делать это силой мысли. Имеется в виду, что понимая, как происходит взаимодействие программатора с микроконтроллером при записи и считывании информации в режиме его программирования, мы можем обойтись подручными средствами более широкого назначения. Эти средства должны будут заменить как программную, так и аппаратную части программатора. Аппаратная часть должна обеспечить физическое соединение с микросхемой МК, возможность подавать логические уровни на его входы и считывать данные с его выходов. Программная часть должна обеспечить работу алгоритма, управляющего всеми необходимыми процессами. Отметим также, что качество записи информации в МК не зависит от того, насколько «крутой» у вас программатор. Такого понятия, как «лучше записалось» или «хуже» не существует. Есть только два варианта: «записалось» и «не записалось». Это объясняется тем, что непосредственно процессом записи внутри кристалла руководит сам МК. Нужно лишь обеспечить ему качественное питание (отсутствие помех и пульсаций) и правильно организовать интерфейс. Если по результатам контрольного считывания ошибок не выявлено, то все в порядке — можно использовать контроллер по назначению.

Для того, чтобы, не имея программатора, записать в МК программу, нам потребуется преобразователь порта USB-RS232TTL и , а также . Конвертер USB-RS232TTL позволяет при помощи порта USB создать COM-порт, отличающийся от «настоящего» лишь тем, что на его входах и выходах используются логические уровни TTL, то есть напряжение в интервале от 0 до 5 вольт (подробнее можно почитать в статье » «). Такой конвертер в любом случае полезно иметь в «хозяйстве», так что если у вас его еще нет, непременно стоит приобрести. Что касается логических уровней, то в нашем случае TTL — это даже преимущество перед обычным COM-портом, потому что входы и выходы такого порта можно напрямую подключать к любому микроконтроллеру, питающемуся от напряжения 5 В, в том числе ATtiny и ATmega. Но не пытайтесь использовать обычный COM-порт — там используются напряжения в интервале от -12 до +12 В (либо -15…+15В). Непосредственное соединение с микроконтроллером в этом случае недопустимо!!!

Идея создания скрипта для программы «Перпетуум М», реализующего функции программатора, возникла после ознакомления с рядом публикаций в интернете, предлагающих те или иные решения по прошивке МК. В каждом случае обнаруживались серьезные недостатки или чрезмерные сложности. Часто попадались схемы программаторов, содержащие в себе микроконтроллер и при этом вполне серьезно давались советы типа: «… а чтобы запрограммировать микроконтроллер для этого программатора нам потребуется… правильно — другой программатор!». Далее предлагалось сходить к другу, поискать платную услугу и т.п. Качество программного обеспечения, распространяемого в сети для этих целей, также не впечатлило — замечено множество проблем как с функциональностью, так и с «мутностью» пользовательского интерфейса. Зачастую много времени нужно потратить, чтобы понять, как использовать программу — ее необходимо изучать даже ради осуществления простейших действий. Иная программа может долго и усердно что-то делать, но о том, что ничего в МК не записывается, пользователь узнает только после полного завершения всей прошивки и последующего контрольного считывания. Встречается и такая проблема: пользователь пытается выбрать из списка поддерживаемых кристаллов свой МК, а его в списке нет. В этом случае воспользоваться программой не удастся — внесение в список недостающих МК, как правило, не предусмотрено. Кроме того ручной выбор контроллера из списка выглядит странно, если учесть, что программатор во многих случаях может сам определить тип МК. Все это сказано не для того, чтобы облить грязью существующие продукты, а для того, чтобы объяснить причину появления скрипта к программе «Перпетуум М», описываемого в данной статье. Проблема действительно существует, и она касается в первую очередь новичков, которым не всегда удается преодолеть данную «стену», чтобы сделать свой первый шаг в мир микроконтроллеров. В предлагаемом скрипте учтены недостатки, обнаруженные в других программах. Реализована максимальная «прозрачность» работы алгоритма, предельно простой интерфейс пользователя, не требующий изучения и не оставляющий шанса запутаться и «не туда нажать». При отсутствии нужного МК среди поддерживаемых есть возможность самостоятельно добавить его описание, взяв нужные данные из документации, скачанной с сайта разработчика МК. И, самое главное — скрипт открыт для изучения и модификации. Каждый желающий может, открыв в текстовом редакторе, изучать и править его на свое усмотрение, изменяя на свой вкус существующие функции и добавляя недостающие.

Первая версия скрипта была создана в июне 2015 года. В этой версии реализована только поддержка Atmel»овских МК серий ATtiny и ATmega с функциями записи/чтения флэш-памяти, с настройкой конфигурационных бит, с автоматическим определением типа контроллера. Запись и чтение EEPROM не реализованы. Были планы дополнить функциональность скрипта: добавить запись и чтение EEPROM, реализовать поддержку PIC-контроллеров и т.д. По этой причине скрипт до сих пор не был опубликован. Но из-за нехватки времени осуществление задуманного затянулось, и, чтобы лучшее не становилось врагом хорошего, решено опубликовать имеющуюся версию. Если уже реализованных функций окажется недостаточно, прошу не огорчаться. В этом случае вы можете попробовать самостоятельно добавить нужную функцию. Не стану скрывать: идея создания данного скрипта изначально несет в себе еще и образовательный смысл. Разобравшись в алгоритме и добавив к нему что-то свое, вы сможете глубже понять работу МК в режиме программирования, чтобы в будущем не оказаться в положении девушки перед сломавшимся автомоблем, задумчиво разглядывающей его внутренности и не понимающей, почему «не едет».

2. Интерфейс МК в режиме программирования

Существует несколько различных способов перевести контроллер в режим программирования и работать с ним в этом режиме. Самым простым в реализации для контроллеров серий ATtiny и ATmega является, пожалуй, SPI. Им и воспользуемся.

Но, прежде чем приступить к рассмотрению сигналов, необходимых для формирования SPI, сделаем ряд оговорок. Микроконтроллер имеет конфигурационные биты. Это что-то вроде тумблеров, переключение которых позволяет менять некоторые свойства микросхемы в соответствии с нуждами проекта. Физически это ячейки энергонезависимой памяти, вроде тех, в которые записывается программа. Разница в том, что их очень мало (до трех байт для ATmega), и они не входят в адресное пространство какой-либо памяти. Запись и чтение конфигурационных данных выполняется отдельными командами режима программирования МК. Сейчас важно отметить, что некоторые конфигурационные биты влияют на саму возможность использования SPI. При некоторых их значениях может оказаться, что SPI нельзя будет использовать. Если вам попадется такой микроконтроллер, то метод, предлагаемый в данной статье, не поможет. В этом случае придется либо изменить настройки конфигурационных бит в программаторе, который поддерживает иной режим программирования, либо использовать другой микроконтроллер. Но данная проблема касается только бывших в употреблении МК, либо тех, с которыми уже кто-то неудачно «поигрался». Дело в том, что новые МК поставляются с настройками конфигурационных бит, не препятствующими использованию SPI. Это подтверждается и результатами испытаний скрипта-программатора для программы «Перпетуум М», во время которых были успешно прошиты четыре разных МК (ATmega8, ATmega128, ATtiny13, ATtiny44). Все они были новые. Начальная настройка конфигурационных бит соответствовала документации и не мешала использованию SPI.

Учитывая сказанное выше, следует обращать внимание на следующие биты. Бит SPIEN в явном виде разрешает или запрещает использование SPI, следовательно в нашем случае его значение должно быть разрешающим. Бит RSTDISBL способен превратить один из выводов микросхемы (заранее предопределенный) во вход сигнала «сброс», либо не превратить (в зависимости от записанного в этот бит значения). В нашем случае вход «сброс» необходим (при его отсутствии не получится перевести МК в режим программирования через SPI). Есть еще биты группы CKSEL, задающие источник тактового сигнала. Они не препятствуют использованию SPI, но их тоже необходимо иметь в виду, потому что при полном отсутствии тактовых импульсов, либо при их частоте ниже допустимой для заданной скорости SPI, также ничего хорошего не получится. Обычно у новых МК, имеющих внутренний RC-генератор, биты группы CKSEL настроены на его использование. Нас это вполне устраивает — тактирование обеспечено без каких-либо дополнительных усилий с нашей стороны. Ни кварцевый резонатор припаивать, ни внешний генератор подключать не нужно. Если же указанные биты содержат иную настройку, придется позаботится о тактировании в соответствии с настройкой. В этом случае может потребоваться подключение к МК кварцевого резонатора или внешнего тактового генератора. Но в рамках данной статьи мы не будем рассматривать, как это делается. Примеры подключения МК для программирования, содержащиеся в данной статье, рассчитаны на самый простой случай.

Рис. 1. Обмен данными по SPI в режиме программирования

Теперь обратимся к рисунку 1, взятому из документации на МК ATmega128A. На нем показан процесс передачи одного байта в МК и одновременного приема одного байта из МК. Оба эти процесса, как видим, используют одни и те же тактовые импульсы, поступающие от программатора в микроконтроллер на его вход SCK — один из выводов микросхемы, для которого в режиме программирования по SPI отведена такая роль. Еще две сигнальные линии обеспечивают прием и передачу данных по одному биту за такт. Через вход MOSI данные поступают в микроконтроллер, а с выхода MISO снимаются считываемые данные. Обратите внимание на две пунктирные линии, проведенные от SCK к MISO и MOSI. Они показывают, в какой момент микроконтроллер «проглатывает» выставленный на входе MOSI бит данных, и в какой момент сам выставляет на выход MISO свой бит данных. Все достаточно просто. Но чтобы ввести МК в режим программирования нам еще потребуется сигнал RESET. Не забудем также про общий провод GND и питание VCC. В общей сложности выходит, что к микроконтроллеру для его прошивки по SPI нужно подключить всего 6 проводков. Ниже разберем это подробнее, а пока добавим, что обмен данными с МК в режиме программирования по SPI выполняется пакетами по 4 байта. Первый байт каждого пакета в основном полностью отводится под кодирование команды. Второй байт в зависимости от первого может быть продолжением кода команды, либо частью адреса, а может иметь произвольное значение. Третий байт используется в основном для передачи адресов, но во многих командах может иметь произвольное значение. Четвертый байт обычно передает данные, либо имеет произвольное значение. Одновременно с передачей четвертого байта в некоторых командах принимаются данные, поступающие из МК. Подробности по каждой команде можно найти в документации на контроллер в таблице под названием «SPI Serial Programming Instruction Set». Пока отметим лишь, что весь обмен с контроллером построен из последовательности 32-битных пакетов, в каждом из которых передается не более одного байта полезной информации. Это не очень оптимально, но в целом работает неплохо.

3. Подключение МК для программирования

Чтобы обеспечить подачу на входы микроконтроллера всех необходимых сигналов для организации интерфейса SPI и чтение данных с его выхода MISO, не обязательно создавать программатор. Это легко осуществить при помощи самого обыкновенного конвертера USB-RS232TTL.

В интернете часто можно встретить информацию о том, что такие конвертеры неполноценны, что с ними ничего серьезного сделать нельзя. Но в отношении большинства моделей конвертеров такое мнение ошибочно. Да, существуют в продаже конвертеры, у которых доступны не все входы и выходы по сравнению со стандартным COM-портом (например, только TXD и RXD), имеющие при этом неразборную конструкцию (микросхема залита пластмассой — невозможно добраться до ее выводов). Но такие и покупать не стоит. В некоторых случаях получить недостающие входы и выходы порта можно, подпаяв проводки непосредственно к микросхеме. Пример такого «усовершенствованного» конвертера показан на рисунке 2 (микросхема PL-2303 — подробнее о назначении ее выводов в статье » «). Это одна из самых дешевых моделей, но обладающая своими преимуществами при использовании в самодельных конструкциях. Широко распространены и полнофункциональные шнуры-переходники со стандартным девятиконтактным разъемом на конце, как у COM-порта. От обычного COM-порта они отличаются только уровнями TTL и несовместимостью с устаревшим программным обеспечением и некоторым старым оборудованием. Можно еще отметить, что шнуры на микросхеме Ch44x на различных экстремальных тестах показывают себя гораздо более надежными и стабильными по сравнению с преобразователями на PL-2303. Впрочем, при обычном использовании разница не заметна.

При выборе конвертера USB-RS232TTL следует также обращать внимание на совместимость его драйвера с версией используемой операционной системы.

Рассмотрим подробнее принцип соединения микроконтроллера и конвертера USB-RS232TTL на примере четырех разных моделей МК: ATtiny13, ATtiny44, ATmega8 и ATmega128. На рисунке 3 показана общая схема такого соединения. Вас может удивить, что сигналы RS232 (RTS, TXD, DTR и CTS) используются не по назначению. Но не стоит об этом беспокоиться: программа «Перпетуум М» способна работать с ними напрямую — устанавливать значения на выходах и читать состояния входа. Во всяком случае широко распространенные конвертеры USB-RS232TTL на микросхемах Ch44x и PL-2303 такую возможность обеспечивают — это проверено. С другими популярными конвертерами также проблем быть не должно, так как для доступа к порту используются стандартные функции Windows.

Резисторы, показанные на общей схеме, в принципе можно не устанавливать, но все-таки лучше установить. Каково их назначение? Используя ТТЛ»овские входы и выходы конвертера и пятивольтное питание микроконтроллера, мы тем самым избавляемся от необходимости согласования логических уровней — все и так вполне корректно. Значит, соединения могут быть непосредственными. Но во время экспериментов бывает всякое. Например по закону подлости отвертка может упасть как раз в то место, куда она никак не могла бы упасть, и замкнуть то, что ни в коем случае нельзя замыкать. В роли «отвертки», конечно, может оказаться все, что угодно. Резисторы в этом случае иногда уменьшают последствия. Еще одно их назначение состоит в устранении возможного конфликта выходов. Дело в том, что по окончании программирования микроконтроллер переходит в обычный режим работы, и может так получиться, что его вывод, соединенный с выходом конвертера (RTS, TXD или DTR) тоже становится выходом, согласно только что записанной в МК программе. В этом случае будет очень нехорошо, если два напрямую соединенных выхода будут «бороться» — пытаться установить разные логические уровни. В такой «борьбе» кто-то может и «проиграть», а нам этого не надо.

Номиналы трех резисторов выбраны на уровне 4,3 КОм. Это касается соединений выход конвертера — вход микроконтроллера. Точность резисторов роли не играет: можно уменьшить их сопротивление до 1 КОм или увеличить до 10 КОм (но во втором случае увеличивается риск помех при использовании длинных проводов на пути к МК). Что же касается соединения вход конвертера (CTS) — выход микроконтроллера (MISO), то здесь применен резистор сопротивлением 100 Ом. Это объясняется особенностями входа использованного конвертера. Во время испытаний был использован конвертер на микросхеме PL-2303, входы которой, судя по всему, подтянуты к плюсу питания относительно низким сопротивлением (порядка нескольких сот Ом). Чтобы «перебить подтяжку» пришлось поставить резистор со столь маленьким сопротивлением. Впрочем, можно его вообще не ставить. На конвертере это всегда вход. Выходом он стать не может, а значит, конфликта выходов не будет при любом развитии событий.

Если микросхема имеет отдельный вывод AVCC для питания аналогово-цифрового преобразователя (например, ATmega8 или ATmega128), его следует соединить с выводом общего питания VCC. Некоторые микросхемы имеют более одного вывода питания VCC или более одного GND. Например, ATmega128 имеет 3 вывода GND и 2 вывода VCC. В постоянной конструкции одноименные выводы лучше соединить между собой. В нашем же случае на время программирования можно задействовать по одному выводу VCC и GND.

А вот как выглядит подключение ATtiny13. На рисунке показано назначение выводов, используемых при программировании через SPI. Рядом на фото — как временное подключение выглядит в реальности.

Кто-то может сказать, что это несерьезно — соединения на проводках. Но мы же с вами люди здравомыслящие. Наша цель состоит в том, чтобы запрограммировать микроконтроллер, затратив на это минимум времени и прочих ресурсов, а не в том, чтобы перед кем-то покрасоваться. Качество при этом не страдает. Метод «на проводках» в данном случае вполне эффективен и оправдан. Прошивка контроллера — процедура разовая, поэтому нет смысла обвешивать ее «стразиками». Если же предполагается менять прошивку в дальнейшем, не извлекая контроллер из схемы (в готовом изделии), то это учитывается в монтаже при изготовлении устройства. Обычно для этой цели устанавливается разъем (RESET, SCK, MOSI, MISO, GND), а МК может быть прошит даже после установки на плату. Но это уже творческие изыски. Мы же рассматриваем самый простой случай.

Теперь перейдем к МК ATtiny44. Здесь все примерно так же. По рисунку и фото даже новичку не составит труда разобраться с подключением. Подобно ATtiny44 можно подключать МК ATtiny24 и ATtiny84 — назначение выводов у этой троицы совпадает.

Еще один пример временного подключения контроллера для его программирования — ATmega8. Здесь выводов побольше, но принцип тот же — несколько проводков, и вот уже контроллер готов к «заливке» в него информации. Лишний черный провод на фото, идущий от вывода 13, в программировании участия не принимает. Он предназначен для снятия с него звукового сигнала после выхода МК из режима программирования. Это связано с тем, что во время отладки скрипта для «Перпетуум М» в МК закачивалась программа музыкальной шкатулки.

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

Для полноты картины посмотрим подключение микросхемы МК с большим числом «ножек». Назначение лишнего черного провода на фото, идущего от вывода 15, точно такое же, как в случае с ATmega8.

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

Прежде чем переходить к программной части, убедитесь, что драйвер конвертера USB-RS232TTL корректно установлен (проверьте диспетчер устройств Windows). Запомните или запишите номер виртуального COM-порта, появляющегося при подключении конвертера. Этот номер нужно будет вписать в текст скрипта, о котором читайте ниже.

4. Скрипт — программатор для «Перпетуум М»

С аппаратной частью «программатора» разобрались. Это уже полдела. Теперь осталось разобраться с программной частью. Ее роль будет выполнять программа «Перпетуум М» под управлением скрипта, в котором и реализованы все необходимые функции по взаимодействию с микроконтроллером.

Архив со скриптом следует распаковать в ту же папку, где находится программа perpetuum.exe. В этом случае при запуске файла perpetuum.exe на экран будет выводиться меню со списком установленных скриптов, среди которых будет строка «Программатор МК AVR» (она может быть единственной). Именно эта строка нам и потребуется.

Скрипт находится в папке PMS в файле «Программатор МК AVR.pms». Этот файл можно просматривать, изучать и править при необходимости в обычном текстовом редакторе вроде «Блокнота» Windows. Перед использованием скрипта скорее всего потребуется внести изменения в текст, связанные с настройкой порта. Для этого уточните в диспетчере устройств Windows имя используемого порта и, при необходимости, внесите соответствующую поправку в строку «ИмяПорта=»COM4″;» — вместо цифры 4 может стоять другая цифра. Также при использовании другой модели конвертера USB-RS232TTL может потребоваться изменение настроек инвертирования сигналов (строки скрипта, начинающиеся со слова «Высокий»). Проверить инвертирование сигналов конвертером USB-RS232TTL можно с помощью одного из примеров, содержащегося в инструкции к программе «Перпетуум М» (раздел функций для работы с портом).

Во вложенной папке MK_AVR находятся файлы с описаниями поддерживаемых контроллеров. Если нужного контроллера среди них не окажется, вы можете добавить нужный самостоятельно, действуя по аналогии. Возьмите за образец один из файлов, и при помощи текстового редактора введите необходимые данные, взяв их из документации на свой микроконтроллер. Главное — будьте внимательны, вводите данные без ошибок, иначе МК не запрограммируется, или запрограммируется неправильно. В исходной версии поддерживаются 6 микроконтроллеров: ATtiny13, ATtiny24, ATtiny44, ATtiny84, ATmega8 и ATmega128. В скрипте реализовано автоматическое распознавание подключенного контроллера — вручную указывать не нужно. При отсутствии считанного из МК идентификатора среди имеющихся описаний, выдается сообщение, что распознать контроллер не удалось.

В архиве со скриптом содержится также дополнительная информация. В папке «inc-файлы контроллеров AVR» находится очень полезная и обширная коллекция файлов описаний контроллеров. Эти файлы используются при написании собственных программ для МК. Еще четыре папки «MusicBox_…» содержат файлы с программой на Ассемблере и готовой к закачке в МК прошивкой отдельно для ATtiny13, ATtiny44, ATmega8 и ATmega128. Если вы уже подключили один из этих МК для программирования, как это предложено в данной статье, то можете прямо сейчас его прошить — получится музыкальная шкатулка. Об этом ниже.

При выборе в меню скриптов строчки «Программатор МК AVR», скрипт начинает исполняться. При этом он открывает порт, посылает в МК команду перехода в режим программирования, принимает подтверждение от МК об успешном переходе, запрашивает идентификатор МК и отыскивает описание данного МК по его идентификатору среди имеющихся файлов с описаниями. Если не находит нужного описания, выдает соответствеющее сообщение. Если же описание найдено, далее открывается главное меню программатора. Его скриншот вы можете видеть на рисунке 8. Далее разобраться не сложно — меню очень простое.

В первой версии скрипта некоторые функции полноценного программатора не реализованы. Например, нет возможности читать и писать в EEPROM. Но если вы откроете скрипт в текстовом редакторе, то увидите, что он имеет очень небольшой размер при том, что основное в нем уже реализовано. Это говорит о том, что добавить недостающие функции не так уж и сложно — язык очень гибкий, он позволяет в небольшой программе реализовать богатую функциональность. Но для большинства случаев хватит даже имеющихся функций.

Некоторые ограничения функциональности описаны непосредственно в тексте скрипта:
//реализована запись только с нулевого адреса (Extended Segment Address Record игнорируется, LOAD OFFSET — тоже)
//порядок и непрерывность следования записей в HEX-файле не проверяется
//контрольная сумма не проверяется
Это касается работы с HEX-файлом, из которого берется код прошивки для МК. Если этот файл не искажен, проверка контрольной суммы ни на что не повлияет. Если искажен — средствами скрипта это выявить не удастся. Остальные ограничения в большинстве случаев не помешают, но иметь в виду их все-таки нужно.

5. Музыкальная шкатулка — простая поделка для начинающих

Если у вас есть один из этих микроконтроллеров: ATtiny13, ATtiny44, ATmega8 или ATmega128, вы можете легко превратить его в музыкальную шкатулку или музыкальную открытку. Для этого достаточно записать в МК соответствующую прошивку — одну из тех четырех, которые размещены в папках «MusicBox_…» в одном архиве со скриптом. Коды прошивок хранятся в файлах с расширением «.hex». Использовать ATmega128 для такой поделки, конечно, «жирновато», как и ATmega8. Но это может быть полезно для тестирования или экспериментов, иначе говоря — в учебных целях. Тексты программ на Ассемблере также прилагаются. Программы создавались не с нуля — за основу была взята программа музыкальной шкатулки из книги А.В.Белова «Микроконтроллеры AVR в радиолюбительской практике». Исходная программа претерпела ряд существенных изменений:
1. адаптирована для каждого из четырех МК: ATtiny13, ATtiny44, ATmega8 и ATmega128
2. ликвидированы кнопки — к контроллеру вообще ничего не нужно подключать, кроме питания и звукоизлучателя (мелодии воспроизводятся одна за другой в бесконечном цикле)
3. длительность каждой ноты уменьшена на длительность паузы между нотами для устранения нарушения музыкального ритма
4. подключена восьмая мелодия, незадействованная в книжной версии
5. из субъективного: некоторые «улучшайзинги» для оптимизации и более легкого восприятия алгоритма

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

В ATtiny13 из-за отсутствия 16-битного счетчика для воспроизведения нот пришлось использовать 8-битный, что привело к некоторому снижению точности звучания нот. Но на слух это мало заметно.

Насчет конфигурационных бит. Их настройка должна соответствовать состоянию нового микроконтроллера. Если ваш МК ранее где-то использовался, нужно проверить состояние его конфигурационных бит, и, при необходимости, привести их в соответствие настройкам нового микроконтроллера. Узнать состояние конфигурационных бит нового микроконтроллера можно из документации на этот МК (раздел «Fuse Bits»). Исключение составляет ATmega128. У этого МК имеется бит M103C, который включает режим совместимости с более старым ATmega103. Активизация бита M103C сильно урезает возможности ATmega128, причем у нового МК этот бит активен. Нужно сбросить M103C в неактивное состояние. Для манипуляций с конфигурационными битами используйте соответствующий раздел меню скрипта-программатора.

Схему музыкальной шкатулки приводить нет смысла: в ней только микроконтроллер, питание и пьезозвукоизлучатель. Питание подается точно так же, как мы это проделали при программировании МК. Звукоизлучатель подключается между общим проводом (вывод GND контроллера) и одним из выводов МК, номер которого можно посмотреть в файле с ассемблерным кодом программы (*.asm). В начале текста программы для каждого МК в комментариях имеется строчка: «звуковой сигнал формируется на выводе ХХ». При завершении работы скрипта — программатора микроконтроллер выходит из режима программирования и переходит в обычный режим работы. Сразу же начинается воспроизведение мелодий. Подключив звукоизлучатель, можно это проверить. Оставлять звукоизлучатель подключенным во время программирования кристалла можно только в том случае, если звук снимается с вывода, не задействованного в SPI, иначе дополнительная емкость на выводе может помешать программированию.

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.
USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.

Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание:

Список поддерживаемых микроконтроллеров

ATmega серия ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серия ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

Серия Classic AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN серия AT90CAN128

PWM серия AT90PWM2 AT90PWM3

Внешний вид Комплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.

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

Некоторые отверстия не целиком заполнены припоем

SMD-элементы тоже криво припаяны

Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл

Размеры платы несколько больше USB-TTL-конвертера на CP2102

Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.

Органы управления на плате На плате имеются три перемычки, задающие разные режимы работы программатора:
JP1 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К , понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.

Установка драйверов Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows
1) Скачать , распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».

3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»

4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»

5) «Всё равно установить этот драйвер»

6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены

Прошивка собрата Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1 :

Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.

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

Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер

Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.

Скачиваю прошивку для программатора с странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.

Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.

Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.



Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано , какие из них установлены, а какие нет.

Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно:

Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.

Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz) В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.

AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.


Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.

Связь с контроллером ATtiny13A в корпусе SOIC8 Соединение согласно схеме ниже. Но тут всё немного интереснее.

Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать .

AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.

Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3

2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3


Внести туда четыре строчки кода и сохранить. (взято )
progisp=jtag2pdiportprog=COM1portenabled=1 progisp=Usbasp -B 3 portprog=usb portenabled=0

Примечание. Здесь применён ключ «-B», который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах

После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.

Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.

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

Но стоит замкнуть перемычку JP3 , и можно спокойно работать


Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.

Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:
#define f_cpu 9600000 то загрузив код на Attiny13, светодиод будет мигать очень медленно?
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.

Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7 Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.

Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.

На верхней панели инструментов выбрать «Tools» — «External Tools…»

Откроется небольшое окно, нажать «Add»

В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.

Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой

Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию

Конфигурация для Atmega168

P m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите — также там найдёте описания ключей AVRDUDE.

Конфигурация для ATtiny13


После заполнения полей нажать «Apply» и «ОК». Окно закроется

Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.

Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…»
Откроется следующее окно:

Перейти во вкладку «Commands» — нажать кнопку «Add Command…»

Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»

«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».

Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.


При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».

И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.

Дополнение по фьюзам программатора Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом khazam»ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником ):

Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F , Fuse High Byte: C9 , Fuse Low Byte: EF .

Если всё сходится, можно нажимать «программирование»

ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя.
_____________________________________

Выводы Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.

Список ссылок

 

 

Bl Touch Проблемы с прошивкой. : ender3

Я только что купил комплект Creality BL Touch. Распаковал. Установлено оборудование, которое прошло очень гладко. Затем возникла непростая задача — установить прошивку. Я ни в коем случае не компьютерный гений. Я бы даже не стал заядлым пользователем компьютеров. Так что проявите терпение, если мое описание не на языке, понятном для гениев. Creality предложила один лист бумаги с основными инструкциями по установке, что в значительной степени бесполезно для кого-то вроде меня.Я зашел на адрес веб-сайта Creality, который мне советует сделать. Затем я скачал «Bl touch for ender 3 + ISP cable инструкция». Я даже не уверен, что это то, что мне нужно скачать. Как я уже сказал, инструкции бесполезны. После этого какое-то время ничего особенного не происходило. Когда я щелкнул по загрузке, мой компьютер не распознал источник файла. Итак, я загрузил программу под названием «9 zip», которую мне посоветовали сделать Windows. Эта программа позволила мне извлечь файлы. Итак, как только я извлек файлы, которые, как я «догадывался», нужно было извлечь, я смог добраться до файла с именем «progisp».Теперь в инструкции говорилось, что нажмите «progisp exe». , которого нигде не найти. Итак, я нажал на то, что у меня было, то есть на «progisp». Появилась ошибка, в которой говорилось «Нарушение доступа» с кучей другой информации, которая будет на фотографиях, которые я публикую. Когда я нажимаю кнопку ОК в окне ошибки, появляется программа, как показано в инструкции. Так что теперь я думаю, что к чему-то добираюсь. Поэтому я поискал номер чипа в меню чипа, и мне не удалось выбрать ни одного номера чипа. Я просмотрел свои файлы, которые были извлечены, и есть файл с более чем 150 номерами чипов, включая тот, который мне нужен, однако программа flash ничего не показывает.Я заметил, что некоторые файлы называются «Marlin 1.1.68 BL Touch». Должен ли я иметь дело с марлином на моем принтере, прежде чем я попытаюсь это сделать? Опять же, инструкции никогда не требовали от меня этого, и на листе нигде не напечатано меню требований. Так что на данный момент это все, что я знаю. Надеюсь, информации было достаточно.

Краткое руководство для Bltouch с официальной прошивкой ender5 с использованием USBISP и progisp: ender5

Введение

Привет всем, я новичок в 3D-печати, и я пишу это, чтобы поделиться, как я заставляю свой bltouch работать с « официальной прошивкой », чтобы никто в противном случае придется испытать то же самое, что и я.Я делюсь только тем, что я сделал, чтобы заставить его работать для меня, но я ценю предложение о том, что я могу пропустить / сделать для улучшения

Что охватывает краткое руководство:

  1. Повторная выборка шестнадцатеричного файла со смещением x, y, чтобы ваш bltouch больше не будет выходить из области печати

  2. Прошивка шестнадцатеричного файла с помощью USBISP

Для кого предназначено это краткое руководство:

Пользователь, который использует USBISP вместо arduino или RPI

Пользователь, который хочет использовать BL ‘ официальная прошивка

Необходимое условие:

1.BL touch должен быть установлен рядом с экструдером и измерить смещение x, y (должно быть близко к -44 и -16, если он установлен слева от экструдера)

2. Загрузите исходный код с веб-сайта creality, он должен появиться с папкой Marlin и ISP.rar

3.Arduino IDE, установленная на ПК

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

Инструкция:

Компиляция шестнадцатеричной

  1. Загрузив исходный код с сайта Creality, выполните / Marlin / Marlin.ino, этот открывает arudino ide для редактирования

  2. выберите вкладку configuration.h и перейдите к x_probe_offset и введите значение без знака минус (так что 44 для x_probe_offset и 16 для y_probe_offset в моем случае)

  3. Основываясь на вашей модели Ender 5, zstep будет либо 400, либо 800

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

  5. Перейдите к эскизу вверху слева и скомпилируйте и экспортируйте двоичный файл, будет скомпилирован шестнадцатеричный файл.

  6. Разархивируйте ISP.rar и внутри должна быть папка с именем << progisp + 1.72 - ╕▒▒╛ >>. Переименуйте эту папку во что-нибудь другое, чтобы удалить странный шрифт. (Это может испортить ваш процесс Windows, если вы пропустите этот шаг)

  7. Подключите USB-кабель ISP к MB принтера и вашему компьютеру и запустите исполняемый файл progisp из ISP.rar на вашем компьютере

  8. Следуйте инструкциям по прошивке из pptx «isp flash the firmware», который поставляется с исходным кодом, но загружает вместо него скомпилированный hax

Calibration

  1. , чтобы откалибровать bltouch, перейдите в подготовить> auto home и после его остановки перейдите к перемещению ось z и сдвиньте ось z обратно на 0.

  2. Затем поместите лист бумаги и сдвиньте ось z, пока не почувствуете легкое сопротивление, обратите внимание на значение (у меня было -2,25)

  3. перейдите к перемещению> смещение по оси Z и введите значение (-2,25 для моего случая)

  4. Сохраните настройки

Надеюсь, это сработает для всех и исправит меня, если я где-нибудь сделаю ошибку

USBasp не может стереть AT89S52, но все остальные функции работают.

Здравствуйте, saurabhreigns,

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

Описанные вами штыревые соединения предназначены для ISP (в системном программировании). Чтобы это произошло, целевое устройство должно иметь стабильные часы с замкнутым переключателем сброса.Также убедитесь, что ничего не мешает линиям SCK, MISO и MOSI. Можно использовать эти строки совместно с другим оборудованием для вашего проекта, но вы должны знать об их состояниях во время программирования, чтобы их можно было правильно использовать. Вы также должны правильно установить предохранители для AVR вашего программатора. Есть несколько возможных комбинаций, но для USBASP необходимо использовать следующее:

Например, для ATmega8:

ПО УМОЛЧАНИЮ
LFUSE 0xE1 1110 0001
HFUSE 0xD9 1101 1001

USBASP
LFUSE 11 0xEFUSE 0xEF 1100 1001

Учитывая, что у вас, похоже, возникла ошибка «не найден программист», я предполагаю, что одна из возможных причин заключается в том, что ваш драйвер USB не загружается под Windows.Это частая жалоба на современные 64-битные версии Windows и неподписанные USB-драйверы. Я не говорю, что у вас нет подписи, но на него стоит посмотреть.

Для 64-разрядных операционных систем различные нелицензированные или неподписанные драйверы USB могут не работать по умолчанию. Один из способов заставить драйвер загрузиться — вызвать меню ядра во время загрузки Windows, нажав несколько раз F8 перед тем, как вы увидите экран «Запуск Windows». Затем в меню загрузки выберите « Отключить принудительное использование подписи драйвера ».

Для ясности, вот версии программного обеспечения, которое я использую для программирования AT89S52 под Vista x64:
WinAVR версия 20100110
avrdude-mingw32-v5.10svn , построенная с libusb-win32-device-bin-0.1. 12.1
libusb — DriverVer = 20/03/2007,0.1.12.1
Программатор USBASP на базе ATMEGA8. Я построил этот: https://www.8051projects.info/resources/usb-8051-avr-programmer.23/
Единственное отличие состоит в том, что я использовал резистор 2k2 вместо 1k5 R2 , который указан в схема в списке.
Эта схема также очень полезна для создания этой схемы: https://www.fischl.de/usbasp/
Прошивка USBASP, которую я использую в своем программаторе, — это та, которая поставляется с проектом программатора USB 8051 / AVR. (Первый URL)
Более новые версии микропрограммного обеспечения могут не работать для AT89S52 без изменений. Возможно, другие могут прокомментировать это, но мне повезло с выпуском 18.07.2006 .

Вот модифицированный раздел avrdude.conf, специфичный для AT89S52:
# ——————————— —————————
# AT89S52
# —————— ——————————————
часть
id = «8052» ;
desc = «AT89S52»;
подпись = 0x1E 0x52 0x06;
chip_erase_delay = 500000 ;
pgm_enable = «1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1»,
«x x x x x x x x x x x x x x x x x»;

chip_erase = «1 0 1 0 1 1 0 0 1 0 0 x x x x x»,
«x x x x x x x x x x x x x x x x»;

таймаут = 200;
stabdelay = 100;
cmdexedelay = 25;
синхлупов = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
Prelay = 1;
postdelay = 1;
pollmethod = 0;

память «flash»
размер = 8192;
paged = нет;
min_write_delay = 4000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = «0 0 1 0 0 0 0 0»,
«x x x a12 a11 a10 a9 a8»,
«a7 a6 a5 a4 a3 a2 a1 a0»,
«o o o o o o o o»;

write = «0 1 0 0 0 0 0 0»,
«x x x a12 a11 a10 a9 a8»,
«a7 a6 a5 a4 a3 a2 a1 a0»,
«i i i i i i i i i»;
режим = 0x21;
задержка = 12;
;

память «подпись»
размер = 3;
read = «0 0 1 0 1 0 0 0 x x x 0 0 0 a1 a0»,
«0 0 0 0 0 0 0 0 o o o o o o o o»;
;
;
# ———————————————— ————

Вы можете собрать его с помощью такой же команды: Software \ AVRDude \ avrdude-mingw32-v5.10svn \ bin \ avrdude -W -C Software \ AVRDude \ avrdude-mingw32-v5.10svn \ bin \ avrdude.conf -p AT89S52 -c usbasp -e -U flash: w: «filename.hex»: i

I не могу сказать много положительного о progISP, так как несколько лет назад у меня были смешанные результаты, когда я пробовал его.
Вообще-то на AT89S52 у меня надежно не заработало.

ISPProg от Адама Дыбковски прекрасно работает для параллельного порта, но я не думаю, что он поддерживает проект, но если вы сделаете себе такой кабель, который у меня есть, он действительно работает: https: // www.ikalogic.com/in-system-programming-isp-for-atmel-chips/

Распиновка параллельного порта AEC_ISP работает с AVRDude и ISPProg. … если вы когда-нибудь захотите что-то сделать с DOS и параллельным портом, я попробовал это, и он работает: и

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

По поводу приобретенного вами программатора. Если они не хотят поддерживать его, снимите с него все, что сможете, на запчасти, а остальное выбросьте.Есть много способов запрограммировать 8051, но AT89S52 наиболее удобен с ISP, который дает вам больше возможностей. Просто убедитесь, что если вы снова тратите деньги на программиста, что поставляемый с ним USB-драйвер специально поддерживает Windows 7 x64.

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

Я надеюсь, что вы найдете все это полезным.

— — — Обновлено — — —

Затем я отключил и снова подключил к другому USB-кабелю — у меня все получилось, 2-й раз — ОШИБКА
снова подключил — УСПЕХ. 2-й раз — ОШИБКА.


Этот тип прерывистой связи, связанной с USB, представляет собой проблему того же типа, которая возникла бы, если бы кто-то попытался создать программатор USBasp, но не использовал правильный вывод для прерывания микроконтроллера, который необходим для правильной обработки событий USB.

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

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

Встроенное ПО Vanilla Marlin, настроенное для Ender 3 + BLTouch

Это версия 1.1.9 встроенного ПО vanilla Marlin, предварительно настроенная для принтеров Creality Ender 3 с оригинальными или стандартными сенсорами BL Touch. Стандартный файл конфигурации из дистрибутива Marlin был тщательно проверен, чтобы включить в него последние настройки Ender 3 из официальной прошивки Creality. Если у вас нет датчика BLTouch, используйте эту версию Marlin, которая поддерживает выравнивание сетки.

Я сделал доступными версии Marlin 2.x для той же платы и принтера, но я рекомендую использовать версию 1.1.9.x , потому что она намного более стабильна и имеет больше функций. Версии Marlin 2.x слишком велики для памяти платы, и некоторые функции пришлось удалить, чтобы они соответствовали прошивке.

Доступны три варианта установки: традиционный с Arduino IDE, новый метод с использованием Visual Studio Code + PlatformIO и третий, при котором скомпилированная прошивка загружается непосредственно на плату.Я рекомендую вариант PlatformIO для большинства пользователей, поскольку после загрузки программного обеспечения микропрограммное обеспечение можно обновить менее чем за 5 минут.

Эта прошивка была создана для 8-битных плат и не будет работать на 32-битных платах.

Характеристики

  • Официальная прошивка Marlin + исправление всех аппаратных настроек из последней официальной прошивки Creality (апрель 2020).
  • BLTouch оригинал / универсальный до 3.x. включен по умолчанию (для BLTouch 3.x может потребоваться включение логики 5 В из меню ЖК-дисплея).
  • Нет необходимости снимать конденсаторы с платы.
  • Устанавливается из исходной IDE Arduino (меньшая загрузка и частые обновления от команды Arduino).
  • Исходный код был изменен, чтобы предотвратить отпускание датчика BLTouch во время событий «звуковой сигнал», запускаемых меню ЖК-дисплея.
  • Включена тепловая защита взлетно-посадочной полосы.
  • Не сбрасывает настройки уровня кровати после команды G28 (Исходный).
  • Пользовательское меню с режимом обслуживания, аварийным режимом и полностью автоматической последовательностью выравнивания грядки (разогрев, ожидание, начало, уровень и затем сохранение настроек).
  • Сверхточный алгоритм выравнивания билинерарного слоя с 25 точками зондирования и медленным зондированием (на выполнение требуется около 5 минут, 10 включая обогрев слоя).
  • Запуск и переключение уровня кровати и инструментов BLTouch из меню ЖК-дисплея.
  • BL Коснитесь настроек напряжения / логики из меню ЖК-дисплея.
  • Тонкие меню включены.
  • Детские ступеньки включены и настроены для «Волшебных чисел».
  • Аварийный синтаксический анализатор включен.
  • Все изменения из исходного файла конфигурации Marlin были отмечены комментарием «// Customized DBP»

Требования

  • Только 8-битные платы! Это не будет работать с 32-битными платами.
  • BLTouch установлен на штырь 27
  • Выключатель остановки Z удален (он может блокировать движение оси Z)
  • ВАЖНО! Высота наконечника BLTouch должна быть отрегулирована в соответствии с официальными инструкциями по эксплуатации. Существуют разные датчики BLTouch, и советы по видео на YouTube в большинстве случаев неверны
  • Загрузчик установлен на вашей плате
  • Arduino IDE для варианта установки 1
  • Код Visual Studio для варианта установки 2
  • AVRDude для варианта установки 3 в Linux или MacOS (AVRDude для Windows входит в комплект)

Примечание о стратегии выравнивания станины

Есть два способа выполнить автоматическое выравнивание станины: первый — перед каждой печатью, а второй — только при необходимости.Исходя из моего опыта работы с Ender 3, при необходимости лучше выполнять чрезвычайно точное (более медленное) выравнивание станины, чем более простое перед каждой печатью. Данная конфигурация прошивки отражает этот выбор.

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

Инструкции с использованием Arduino IDE (вариант 1)

  1. Установите Arduino IDE
  2. Закройте все программы, которые могут попытаться получить доступ к принтеру через порт USB (Cura, Serial Monitor, OctoPrint и т. Д…).
  3. Запустите Arduino IDE и настройте загрузку платы Sanguino. Добавьте следующий URL-адрес в менеджер доски ( Файл-> Настройки-> Менеджер дополнительных форумов ):
      https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json  

  4. Установите следующие библиотеки / платы в Arduino IDE:
  5. При соблюдении всех требований распакуйте весь дистрибутив Marlin в папку и откройте «Marlin.ino «файл из среды разработки Arduino.
  6. Найдите файл configuration.h и замените в следующих строках относительными координатами крепления BLTouch к соплу. Фактические настройки относятся к этому креплению. Если у вас нет измерений сейчас, вы можете настроить его позже с помощью M851 GCode (см. Инструкции ниже).
      #define X_PROBE_OFFSET_FROM_EXTRUDER -42
    #define Y_PROBE_OFFSET_FROM_EXTRUDER -5
    #define Z_PROBE_OFFSET_FROM_EXTRUDER 0  

  7. Отключите функцию прерывания от остановки, закомментировав (//) следующую строку в конфигурации .h . Эту функцию необходимо отключить, только если вы используете Arduino IDE, с PlatformIO этой проблемы не существует.

      // # определить ENDSTOP_INTERRUPTS_FEATURE
      

  8. Скомпилируйте и загрузите прошивку. Убедитесь, что вы используете следующие настройки.
    • Конфигурация платы: ATMega 1284P 16 МГц
    • Конфигурация программатора: AVRISP MKII
    • COM-порт: зависит от вашего компьютера. Обычно для выбора доступен только один.
  9. Следуйте приведенным ниже инструкциям после установки.

Инструкции с использованием Visual Studio Code + PlatformIO (вариант 2)

  1. Загрузите и установите Visual Studio Code.
  2. Из меню расширения Visual Studio Code установите расширение PlatformIO IDE.
  3. Выполнив все требования, распакуйте весь исходный код Marlin, загруженный по ссылке ниже, в папку.
  4. В Visual Studio Code выберите File-> Open folder и выберите папку, в которой находится файл platformio.ini находится файл. Внимание! Используйте команду «открыть папку», а не «открыть файл».
  5. Найдите файл configuration.h внутри подпапки «Marlin» и отредактируйте следующую конфигурацию, указав относительные координаты крепления BLTouch к соплу. Это не обязательно должно быть слишком точным, единственная цель — избежать проведения теста вне кровати. Настройки по умолчанию X = -42 мм, Y = -5 мм и Z = 0 предназначены для этого крепления:
      #define X_PROBE_OFFSET_FROM_EXTRUDER -42
    #define Y_PROBE_OFFSET_FROM_EXTRUDER -5
    #define Z_PROBE_OFFSET_FROM_EXTRUDER 0  
  6. Сохраните файл и выберите Terminal-> Run Task-> Build .Системе потребуется несколько минут, чтобы загрузить все зависимости и скомпилировать код.
  7. Если код скомпилирован правильно, вы увидите в терминале что-то вроде этого: «=== 1 выполнено успешно в 00: 00: 30.050 ===».
  8. Подключите принтер к компьютеру с помощью кабеля USB.
  9. Перейдите в меню Visual Code Терминал-> Выполнить задачу-> Загрузить .
  10. Если все пойдет хорошо, еще одно сообщение вроде этого «=== 1 выполнено успешно в 00:00:55.010 === «Будет напечатано .

Установка предварительно скомпилированного HEX (вариант 3)

Предварительно скомпилированная прошивка также доступна здесь. Вы можете просто записать скомпилированный HEX-файл прямо на плату Ender3 без установки Arduino IDE или Visual Studio Code .

Для загрузки предварительно скомпилированной прошивки вам понадобится инструмент AVRDUDE 6.3. Для вашего удобства я включил версию этого инструмента для Windows в zip-файл, содержащий прошивку HEX, но инструмент также поставляется с IDE Arduino.Команда загрузки в Windows PowerShell должна выглядеть так:

  ./avrdude -p atmega1284p -c arduino -P COM3 -b 115200 -v -U flash: w: firmware.hex: i  

Последовательный порт — это что-то среднее между COM1 и COM8, в зависимости от того, куда указывает драйвер USB, и firmware.hex — это файл, который вы загружаете. Если вы используете другую операционную систему, например Linux, адрес порта будет примерно таким: / dev / ttyUSB0 .

После инициализации платы новой прошивкой не забудьте перенастроить смещения датчиков, выполнив следующую команду с любого последовательного терминала.Замените значения смещения по умолчанию в команде (-42, -5, 0) на значения для крепления вашего датчика.

  M851 X-42 Y-5 Z0
M500  

Наконец, следуйте приведенным ниже инструкциям после установки.

Конфигурация после установки

  1. Выровняйте грядку вручную ! Это важно, потому что BLTouch имеет ограниченные диапазоны обнаружения максимума / минимума, и на качество печати может повлиять слишком большое перемещение оси Z.
    1. Охладите кровать и сопло.Нагревание не должно влиять на эту конкретную процедуру.
    2. Отключите шаговые двигатели с помощью команды меню ЖК-дисплея.
    3. Поместите кредитную карту на одну кровать, толщина карты будет использоваться как эталонное расстояние.
    4. Поворачивайте ось Z рукой, пока сопло не коснется кредитной карты.
    5. Переместите горячий конец в несколько положений станины, начиная с 4-х углов. Для каждого положения отрегулируйте ручки уровня кровати, чтобы сопло находилось на расстоянии толщины кредитной карты от сопла.Это то, что вы сделали бы при ручной калибровке, но вместо бумаги для удобства вы будете использовать карту. Толщина карты не имеет значения, потому что датчик BLTouch переопределяет ссылку Z.
  2. Нагрейте платформу до температуры печати и запустите команду уровня кровати с ЖК-дисплея ( Подготовка -> Выравнивание кровати -> Уровень ) или с помощью кода G29 или с помощью команды Нагрев и Уровень из пользовательского меню (рекомендуется ). Обратите внимание, что команда Heat and Level ждет 2 минуты после того, как кровать нагреется, чтобы смонтированные поверхности могли должным образом расшириться / сжаться.
  3. Сохраните настройки с помощью меню ЖК-дисплея или gcode M500 (если вы использовали пользовательские команды Heat и Level , они будут автоматически сохранены).
  4. Добавьте следующий gcode в код запуска вашего слайсера сразу после строки команды G28, чтобы загружать конфигурацию уровня кровати из памяти перед каждой печатью:
      M420 S1  

  5. После включения уровня станины напечатайте что-нибудь большое и плоское, чтобы отрегулировать смещение по оси Z. Сопло всегда будет находиться далеко от кровати, пока вы не установите смещение на отрицательное значение (ЖК-дисплей -> Подготовка -> Выравнивание кровати -> Смещение по оси Z ).Не забудьте сохранить настройки после печати, чтобы смещение сохранялось в памяти. Для этого можно использовать ЖК-дисплей или M500 GCode.

Советы по поиску и устранению неисправностей

  • При подключении к плате не появляется последовательный COM-порт: Загрузите драйверы FTDI
  • Сбой уровня кровати:
    • 1 st — убедитесь, что вы выровняли кровать вручную, зондирование имеет тенденцию к сбою, если какая-либо часть кровати> 2 мм ниже или выше домашнего уровня.
    • 2 nd — убедитесь, что у вас есть команда M420 S1 ПОСЛЕ строка G28 в GCode инициализации печати.
    • 3 rd — убедитесь, что зонд установлен правильно, между наконечником BLTouch и наконечником сопла есть максимальные и минимальные зазоры по высоте, которые меняются для каждой версии BLTouch.
    • 4 — проверьте проводку! Иногда при настройке разъема по умолчанию провода перевернуты.
    • 5 th — если вы используете BLTouch 3.x, см. Следующую тему.
  • BLTouch 3.x не может проверить: Имейте в виду, что это редкое явление, подавляющее большинство пользователей запускают BLTouch 3.x без проблем. Я подозреваю, что это связано с оборудованием (компоненты датчика / платы и т. Д.), И мы мало что можем сделать со стороны прошивки:
    • 1 st — Включите логику 5V в меню LCD ( LCD -> Control-> BLTouch ).BLTouch версий 1.x и 2.x не имеет модуляции напряжения и не требует этой настройки.
    • 2 nd — Если предыдущее не работает, включите режим SW ( LCD -> Control-> BLTouch ).
    • 3 rd — Включите и отрегулируйте настройку delay в файле configuration_adv.h (требуется перекомпиляция исходного кода). Это пробная ошибка, но попробуйте значения от 300 до 700, увеличивая / уменьшая на 100.
    • 4 th — Если BLTouch версии 3.0 (не 3.1, 3.x …) включить параметр BLTOUCH_FORCE_MODE_SET в configuration_adv.h .
    • 5 th — Если ничего из вышеперечисленного не помогло, у вас либо неисправный датчик, либо проблема с конденсатором на плате.
  #define BLTOUCH_DELAY 500  
  • E rror «…_ PIN не поддерживает прерывание …» в Arduino IDE : это ошибка Arduino IDE, отключите эту функцию в файле configuration.h в соответствии с примером ниже, чтобы исправить (поставить «//»).Если вы используете PlaformIO, оставьте эту опцию включенной.
  // # определить ENDSTOP_INTERRUPTS_FEATURE  
  • Отключите клиентов последовательного порта перед перепрошивкой : Если COM-порты используются каким-либо другим приложением, процесс перепрограммирования завершится ошибкой. Выключите Cura, OctoPrint, любой другой слайсер и любую другую программу Serial Monitor, такую ​​как Arduino IDE, перед компиляцией / прошивкой нового ПЗУ.
  • Правильные настройки предохранителя: Если вы используете другое программное обеспечение, кроме AVRDUDE (например, PROGISP) для загрузки прошивки, убедитесь, что вы используете правильные настройки предохранителя.По-видимому, в учебнике Creality неверные настройки, и после этого плата не загружается.
  • Сброс EEPROM : Иногда память EEPROM не сбрасывается во время перепрошивки Marlin, и это может вызвать проблемы. Для сброса вручную используйте следующие G-коды с любого последовательного терминала: M502 , за которым следует M500.
  • Пустой экран после перепрошивки : Вы неправильно установили микропрограмму. Пожалуйста, используйте AVRDude в соответствии с приведенными выше инструкциями, и если это не сработает, вам, возможно, придется перепрошить загрузчик.
  • Serial Port Monitor для Windows : Эта небольшая программа позволяет отправлять / получать GCode на принтер. Если символы выглядят странно, вероятно, вы используете неправильную скорость передачи (начните с 115200 бит / с).
  • avrdude: stk500_getsync () попытка 1 из 10: не синхронизировано : Неверная скорость передачи для последовательного порта или последовательного порта, который уже используется (OctoPrint, Cura и т. Д.). Попробуйте настроить скорость передачи 115200 бит / с. Если вы используете PlatformIO для загрузки, убедитесь, что вы используете правильную скорость передачи данных для вашей среды в platformio.ini файл.
  • Перенастройте смещения датчика BLTouch: Используйте следующую команду, заменив координаты -42, -5 и 0 мм смещениями вашего фактического крепления:
      M851 X-42 Y-5 Z0
    M500  

Если у вас проблемы с компиляцией прошивки …

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

Другие загрузки Marlin для Ender 3

Что такое progisp.exe? Это безопасно или вирус? Как удалить или исправить

Что такое прогисп.исполняемый?

progisp.exe — это исполняемый файл, который является частью программы usbprog , разработанной kavirelectronic.ir . Программное обеспечение обычно имеет размер около .

Расширение .exe имени файла отображает исполняемый файл. В некоторых случаях исполняемые файлы могут повредить ваш компьютер. Прочтите следующее, чтобы решить для себя, является ли файл progisp.exe на вашем компьютере вирусом или троянским конем, который вам следует удалить, или это действительный файл операционной системы Windows или надежное приложение.

Рекомендуется: Выявление ошибок, связанных с progisp.exe
(дополнительное предложение для Reimage — Веб-сайт | Лицензионное соглашение | Политика конфиденциальности | Удалить)

Progisp.exe безопасен, это вирус или вредоносная программа?

Первое, что поможет вам определить, является ли конкретный файл законным процессом Windows или вирусом, — это расположение самого исполняемого файла. Например, такой процесс, как progisp.exe должен запускаться из C: \ Program Files \ kavirelectronic.ir \ usbprog2 \ progisp.exe, а не где-либо еще.

Для подтверждения откройте диспетчер задач, выберите «Просмотр» -> «Выбрать столбцы» и выберите «Имя пути к изображению», чтобы добавить столбец местоположения в диспетчер задач. Если вы обнаружите здесь подозрительный каталог, возможно, стоит дополнительно изучить этот процесс.

Еще один инструмент, который иногда может помочь вам обнаружить плохие процессы, — это Microsoft Process Explorer. Запустите программу (не требует установки) и активируйте «Проверить легенды» в разделе «Параметры».Теперь перейдите к View -> Select Columns и добавьте «Verified Signer» в качестве одного из столбцов.

Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.

Самые важные факты о progisp.exe:

  • Находится в C: \ Program Files \ kavirelectronic.ir \ usbprog2 \ подпапка;
  • Издательство: кавирэлектроника.ir
  • Полный путь: C: \ Program Files \ kavirelectronic.ir \ usbprog2 \ progisp.exe
  • Файл справки:
  • URL издателя: www.kavirelectronic.ir
  • Известно, что размер до в большинстве Windows;

Если у вас возникли какие-либо трудности с этим исполняемым файлом, перед удалением progisp.exe вы должны определить, заслуживает ли он доверия. Для этого найдите этот процесс в диспетчере задач.

Найдите его местоположение (оно должно быть в C: \ Program Files \ kavirelectronic.ir \ usbprog2 \) и сравните его размер с приведенными выше фактами.

Если вы подозреваете, что можете быть заражены вирусом, вы должны попытаться исправить его немедленно. Чтобы удалить вирус progisp.exe, вам необходимо загрузить и установить приложение полной безопасности, например Malwarebytes . Обратите внимание, что не все инструменты могут обнаруживать все типы вредоносных программ, поэтому вам может потребоваться попробовать несколько вариантов, прежде чем вы добьетесь успеха.

Кроме того, функциональность вируса может сама повлиять на удаление progisp.exe. В этом случае необходимо включить Safe Mode with Networking — безопасную среду, которая отключает большинство процессов и загружает только самые необходимые службы и драйверы. Находясь там, вы можете запустить программу безопасности и выполнить полный анализ системы .

Могу ли я удалить или удалить progisp.exe?

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

Согласно различным источникам в Интернете, 3% людей удаляют этот файл, поэтому он может быть безвредным , но рекомендуется проверить надежность этого исполняемого файла самостоятельно, чтобы определить, является ли он безопасным или вирусом.Лучшая диагностика этих подозрительных файлов — это полный анализ системы с помощью Reimage . Если файл классифицируется как вредоносный, эти приложения также удаляют progisp.exe и избавляются от связанных вредоносных программ.

Однако, если это не вирус и вам необходимо удалить progisp.exe, вы можете удалить usbprog со своего компьютера с помощью программы удаления, которая должна находиться по адресу: MsiExec.exe / I {ABBF93E0-80F1-4706-B107- AFF180C41255}. Если вы не можете найти его деинсталлятор, вам может потребоваться удалить usbprog, чтобы полностью удалить progisp.исполняемый. Вы можете использовать функцию «Добавить / удалить программу» в Панели управления Windows.

  • 1. В меню «Пуск» (для Windows 8 щелкните правой кнопкой мыши в нижнем левом углу экрана), щелкните «Панель управления » , а затем в разделе «Программы » :
    o Windows Vista / 7 / 8.1 / 10: нажмите Удаление программы .
    o Windows XP: нажмите Установка и удаление программ .
  • 2. Когда вы найдете программу usbprog , щелкните по ней, а затем:
    o Windows Vista / 7/8.1/10: Нажмите Удалить .
    o Windows XP: щелкните вкладку Remove или Change / Remove (справа от программы).
  • 3. Следуйте инструкциям по удалению usbprog .

Распространенные сообщения об ошибках в progisp.exe

Наиболее распространенные ошибки progisp.exe, которые могут возникнуть:


• «Ошибка приложения progisp.exe».
• «прогисп.exe не удалось. «
• «progisp.exe столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства».
• «progisp.exe не является допустимым приложением Win32».
• «progisp.exe не запущен».
• «progisp.exe не найден».
• «Не удается найти progisp.exe».
• «Ошибка запуска программы: progisp.exe».
• «Неверный путь к приложению: progisp.exe.»

Эти сообщения об ошибках .exe могут появляться во время установки программы, во время выполнения связанной с ней программы, usbprog, при запуске или завершении работы Windows или даже во время установки операционной системы Windows.Отслеживание момента появления ошибки progisp.exe является важной информацией, когда дело доходит до устранения неполадок.

Как исправить progisp.exe

Чистый и аккуратный компьютер — один из лучших способов избежать проблем с usbprog. Это означает выполнение сканирования на наличие вредоносных программ, очистку жесткого диска с помощью cleanmgr и sfc / scannow , удаление программ, которые вам больше не нужны, мониторинг любых программ автозапуска (с помощью msconfig) и включение автоматических обновлений Windows.Не забывайте всегда делать регулярные резервные копии или хотя бы определять точки восстановления.

Если у вас есть более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Используйте команду resmon , чтобы определить процессы, вызывающие вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вам следует попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Cleanup-image / Restorehealth .Это позволяет восстановить операционную систему без потери данных.

Чтобы помочь вам проанализировать процесс progisp.exe на вашем компьютере, вам могут быть полезны следующие программы: Диспетчер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Этот антивирус обнаруживает и удаляет шпионское, рекламное ПО, трояны, кейлоггеры, вредоносные программы и трекеры с вашего жесткого диска.


Обновлено в сентябре 2021 г .:

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

  • Шаг 1: Загрузите PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите « Начать сканирование », чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите « Восстановить все », чтобы исправить все проблемы.


(дополнительное предложение для Reimage — Веб-сайт | Лицензионное соглашение | Политика конфиденциальности | Удалить)

Загрузите или переустановите progisp.exe

не рекомендуется загружать заменяющие exe-файлы с любых сайтов загрузки, так как они сами могут содержать вирусы и т. Д. Если вам нужно загрузить или переустановить progisp.exe, мы рекомендуем переустановить основное приложение, связанное с ним usbprog .

Информация об операционной системе

Ошибки

progisp.exe могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

  • Окна 10
  • Окна 8.1
  • Окна 7
  • Windows Vista
  • Windows XP
  • Окна ME
  • Окна 2000

РЕКОМЕНДУЕТСЯ: Нажмите здесь, чтобы устранить ошибки Windows и оптимизировать производительность системы

Программатор USB / ISP (Часть 2)

Программное обеспечение для программирования USBasp

Есть несколько интересных вариантов, как пользоваться программатором USBasp.Вариант LCSoft продавался с возможностью загрузки программы под названием ProgISP V1.72 с сайта поставщиков. Также была доступна схема и драйверы для Windows. Установка прошла без проблем. Я не нашел руководства пользователя на английском языке, но использование программного обеспечения довольно простое.
Сам проект USBasp поддерживается avrdude, инструментом командной строки для программирования. Он работает под Windows, MacOs и Linux. Для avrdude доступно несколько интерфейсов. Так что программная поддержка — это хорошо.

Я не нашел способа интегрировать avrdude в студию AVR. И это было бы хорошо. Если вы попробуете что-то в своей целевой системе, будет немного неудобно менять окна, нажимать правые кнопки и снова переключать окна. С STK500, как только все настроено, вы просто нажимаете кнопку записи в студии AVR, и все готово. И здесь появляется еще один крутой проект …

Лаборатория USB AVR

Похоже, что документация по проекту доступна только на немецком языке.Но программное обеспечение ПК можно установить на английский язык. В проекте использована довольно хитрая концепция. На программаторе есть загрузчик USB. Таким образом, вы можете запустить программное обеспечение ПК и загрузить в программатор кучу различных приложений.

Но сначала я должен сообщить о небольшом недостатке. В этом проекте используется несколько иное оборудование. К счастью, все важные части идентичны. Итак, никаких проблем с кварцевым генератором, интерфейсом USB и интерфейсом ISP. Но светодиоды состояния находятся на другом наборе контактов порта.Также в этом проекте есть дополнительное оборудование. Один из них — это дополнительный вход, который подключается к неиспользуемому в противном случае контакту 3 заголовка ISP. Другой — делитель напряжения для измерения выбранного рабочего напряжения.

Итак, вы используете второй программатор для записи загрузчика на USB-программатор …

… и затем вы запускаете программное обеспечение ПК и выбираете, какое приложение вы хотите написать на программаторе. Обратите внимание, что я отключил целевую линию питания программатора с помощью перемычки.Я не уверен, но вполне может быть, что в противном случае линейный регулятор на «принимающей стороне» выйдет из строя. И я поставил перемычку сброса (J2). Программатор, на который написано, получает питание через дешевое аварийное зарядное устройство USB. Используя USB AVR Lab со своим собственным загрузчиком, позже вам не нужно будет устанавливать J2 и, конечно же, вам не понадобится второй программатор, потому что перепрограммирование происходит через интерфейс USB

Вот список доступных приложений:

  • AVRISPmkII
  • STK500v2
  • OpenOCD (альфа)
  • JTAGICEmkII (beta) — Примечание: необходим дополнительный контакт 3!
  • USBasp (для поддержки AVRdude)
  • Тактовый генератор (для переустановки предохранителей в микросхеме AVR)
  • и более
Это то, что я использую сейчас.Я выбрал AVRISPmkII, и теперь я могу просто использовать студию AVR с ее интегрированным программным обеспечением. Это идеальное решение для меня. К сожалению, у проекта нет открытого исходного кода, и, похоже, он не находится в активной разработке. Поэтому мне может потребоваться вернуться к решению USBasp в будущем, если появятся новые процессоры, которые не поддерживаются (например, поддержка TPI).

Итог

Купите этот программатор! Найдите «usb isp programmer» на своем любимом аукционе (…) и купите один, а еще лучше купите два. Вы можете использовать эту штуку даже в качестве платформы для прототипирования, если сможете жить с небольшим количеством контактов. Лаборатория USB AVR даже поддерживает это в виде шаблонного проекта. В этом случае вам даже не понадобится программист. В конце концов, это всего три евро.

А вот и моя небольшая система разработки AVR: 10-дюймовый нетбук под управлением WindowsXP с клоном AVR ISP mkII и небольшой целевой печатной платой. Симпатично!


AVR UPro + .Progisp • В этом руководстве инструмент Progisp объясняется, как программировать контроллер ATMEL с помощью

  • www.projectsmaker.com

    www.elesof.com Посетите: Flash Programming Tool

    EleSof

    AVRAVRUPro +

    UPro +

    AVR AT89S

    AVRUPro + — высокопроизводительный программатор для семейства микроконтроллеров Atmels. Он подключен к целевому устройству через кабель 2×5 FRC и действует как ICSP (внутрисхемный последовательный программатор). Данное руководство содержит подробное описание этого устройства. Он также расскажет вам, как программировать устройство через него

  • НАШИМ ЦЕННЫМ КЛИЕНТАМ

    Я хочу выразить вам свою благодарность за интерес к нашей продукции и наличие

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

    в соответствии с вашими потребностями.

    доверие к

    EleSof Technologies

    www.projectsmaker.comwww.elesof.com Посетите:

    EleSof Technologies.

    Система разработки EleSof

    Название и логотип ATMEL, логотип ATMEL, AVR, AVR (логотип), AVR Freaks, AVR

    Freaks (логотип), AVR Studio, IDIC, megaAVR, megaAVR (Logo), picoPower, tinyAVR

    являются товарными знаками ATMEL Corporation.Все другие упомянутые здесь товарные знаки являются собственностью

    соответствующих компаний и используются только в целях идентификации или объяснения

    и в интересах владельцев без намерения нарушить авторские права.

  • Программное обеспечение Flash ……………………………………..

    40-контактный (A) Atmel AVR и

    Programmer Interfac …… 7

    ……… 5

    Устранение неисправностей ………….. …………………………………………….. 15-16

    Учебное пособие по программированию …………….. ………………………………….. 12-14

    Установка драйвера USB. ………………………………………….. ……. 8-11

    ………… 8

    СОДЕРЖАНИЕ

    Интерфейс программирования … 4

    Поддерживаемые устройства..6

    Введение в In -Системное программирование4

    8-контактные (A) микроконтроллеры Atmel AVR.

    8-контактные (B) микроконтроллеры Atmel AVR.

    20-контактные (A) микроконтроллеры Atmel AVR.

    20-контактные (B) микроконтроллеры Atmel AVR.

    40-контактные (B) микроконтроллеры Atmel AVR.

    www.projectsmaker.comwww.elesof.com Посетите:

    TQFP64 Atmel AVR микроконтроллер.

    AVRUPro

    AVRUPro

    +

    +

    Микроконтроллеры AT89S. 28-контактный микроконтроллер Atmel AVR и

    . AT89S

  • Должен быть отдельный источник синхронизации (внешний кварцевый осциллятор) для устройства taget, и

    Введение во внутрисистемное программирование

    Интерфейс программирования

    5

    EleSof

    esesUSERMANUAL

    AVR

    R +

    AT

    89

    SP

    RO

    GR

    AM

    ME

    R

    AV

    RU

    Pro

    AT 9000 RC3

    ME

    ON

    TR

    OLLE

    R

    4

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

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

    Последовательный периферийный интерфейс (SPI) состоит из трех проводов: последовательные часы (SCK), главный вход-подчиненный выход (MISO) и главный выход-подчиненный вход (MOSI). При программировании AVR и AT89S системный программатор всегда работает как ведущий, а целевая система всегда работает как ведомый.

    Внутрисистемный программист (мастер) обеспечивает синхронизацию для связи по линии SCK.Каждый импульс на линии SCK передает один бит от программатора (ведущего) к целевому (ведомому) на линии ведущий выход — ведомый вход (MOSI). Одновременно с каждым импульсом на линии SCK передается один бит от цели (ведомого) к программатору (ведущему) на линии ведущий на входе и выходе ведомого (MISO). Чтобы обеспечить надлежащую связь по трем линиям SPI, необходимо соединить землю программатора с землей цели (GND).

    X

    C2

    C1

    Примечание: Примечание: диапазон внешнего кварцевого генератора зависит от того, какой диапазон поддерживает целевое устройство.

    UPro +

  • Примечание: если ваше целевое устройство использует

    программирующих контактов микроконтроллера для

    работы некоторых других периферийных устройств

    , то для этих периферийных устройств должно быть включено

    , чтобы во время программирования было отключено

    .

    Во время нормальной работы целевого устройства

    программатор должен быть отключен от

    .

    5

    EleSof

    esesUSERMANUAL

    MISO (Master In Slave Out)

    MOSI (Master Out Slave In)

    SCK (Последовательные часы)

    RST (Сброс)

    5

    Скорость для

    до 5 Кбайт / сек.

    Его опция SCK поддерживается для целей с низкой тактовой частотой (

  • AT89S2051

    AT89S8252

    AT89S52

    AT90S4433

    ATmega328

    ATtiny2313

    .

    5

    EleSof

    esesUSERMANUAL

    Мега AVR 90S AVR Крошка AVR ATmega103 AT90S1200

    ATmega1280

    AT90S2313

    ATtiny15

    ATmega16

    AT90S2343

    ATtiny25

    ATmega162 AT90S4434

    ATtiny26

    ATmega163 AT90S8515

    ATmega164 AT90S8535

    ATtiny45

    ATmega169

    ATmega2561

    ATtiny85

    ATmega324

    AT90CAN128

    ATmega3290mega

    ATmega3290mega

    ATmega3290mega3000

    Tmega649

    ATmega6490

    ATMEGA8

    ATmega8515

    ATmega8535

    ATmega88

    6

    ATmega168

    ATmega329

    ATmega48

    ATmega640

    AT90PWM2

    ATtiny12

    ATmega128

    ATmega2560

    AT90S2333

    ATmega1281

    ATmega161 AT90S4414

    ATmega32

    AT89SAT89S51

    AT89S53

    AT89S8253

    AT89S4051

    AVRUPro +

    AVR

    AVRUPro +

    AVR

    9000 9000 RRUPro +

    AVR

    9000 R9000

    9000

    ME

    RUPro +

  • XTAL 4MHz22Pf

    AT89S2051, 4051

    AT89S51, 52, 53, 8252, 8253

    RX

    644, 649, 6490…

    329, 3290, 64, 640,

    169, 2560, 2561,

    32, 163, 8535

    AT90S

    20PIN (B)

    ATtiny15

    5

    EleSof

    EleSof 9000US2

    2

    СБРОС

    + 5В

    SCK

    MISO

    MOSI

    GND

    1

    СБРОС

    GND

    + 5VSCKMISOMOSI

    000

    000 RESET

    000

    000

    000 RESET

    000

    000

    8PIN (B)

    ATtiny15

    2343…

    ATtiny12, 13, 25, 45, 85 …

    90S1200, 2313 …

    ATtiny2312

    ATtiny26 …

    + 5VSCK

    RESETMISOMOSI

    20PIN (A)

    .

    + 5V

    MOSIMISOSCK

    AT90S4433 …

    ATmega8, 48, 88, 168 …

    28PIN

    + 5V

    СБРОС

    SCKMISOMOS2

    000

    000

    9000V

    СБРОС

    MISOSCK

    MOSI

    СБРОС

    MISOSCK

    +5

    VR

    ES

    ET

    MOSIMISO

    1280002, 9102 SCK..

    ATmega16,

    AT90S8515 …

    ATmega161, 162, 8515 …

    40PIN (A) 40PIN (A) 40PIN (B)

    TQFP64

    7

    109

    X

    GND

    Предостережения:

    Есть напряжение +5 В, которое подается непосредственно с USB-порта компьютера на программатор; не рекомендуется использовать этот источник питания для питания схемы или устройства

    . Неправильное соединение, например,

    Осторожно: Осторожно:

    Есть напряжение +5 В, которое подается напрямую с USB-порта компьютера на программатор; не рекомендуется использовать этот источник питания для питания схемы или устройства

    .Неправильное соединение, такое как

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

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

    Есть напряжение +5 В, которое подается напрямую от USB-порта компьютера к программатору; не рекомендуется использовать этот источник питания для питания схемы или устройства

    .Неправильное соединение, например,

    . + 5 В, которое подается напрямую с USB-порта компьютера на программатор; не рекомендуется использовать этот источник питания для питания схемы или устройства

    . Неправильное соединение, например, неправильный

    Интерфейс программатора

    22Pf

    XTAL1

    XTAL2

    Ниже приведена схема взаимодействия микроконтроллера ATMEL AVR и AT89S

    с программатором.

    целевое устройство.

    AVRUPro +

    Примечание: Внешний кварцевый генератор обязательно для подключения к

    AVRUPro +

    48, 88, 168 …

    13, 25, 45, 85 …

    2313 …

    32 , 163, 8535162, 8515 …

    128, 1280, 128,

    169, 2560, 2561,

    329, 3290, 64, 640,

    644, 649, 6490 …

    AVR

    AV

    R +

    AT

    89

    SP

    RO

    GR

    AM

    ME

    RUPro +

  • Flash Software

    5

    EleSof2 I Шаг I

    Установка драйвера USB

    Существует множество инструментов, поддерживающих программатор AVRUPro + для прошивки микроконтроллеров ATMEL.

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

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