Программатор авр своими руками: USB ПРОГРАММАТОР AVR

USB ПРОГРАММАТОР AVR

   В жизни каждого юзера наступает такой момент, когда надо апгрейдить компьютерное железо. Но не все так радосто, как казалось – производители компьютеров сейчас выкидывают такие ненужные по их мнению вещи, как COM- и LPT-порты (тоже относится и к владельцам ноутбуков). И что же делать несчастному юзеру, если необходимо прошить очередной МК AVR для девайса? Выход один – делать USB-программатор (или прикупить). Сегодня мы этим и займемся… (я имею ввиду сборку). И так, наша цель – создание программатора USBasp.

   Однако при изготовлении данного программатора есть одна проблема – нужно прошить контроллер, используемый в данном программаторе. Так что ищем друга, у которого есть рабочий COM- или LPT-порт в компьютере и, прикупив пивка, идём к нему (уж за такой презент он не откажет). Когда делал свой USBasp, пользовался простейшим ISP программатором – программатором Громова (Громов – разработчик Algorithm Builder). Так что расскажу как сделать USBasp с помощью него. Вначале паяем программатор Громова по следующей схеме:

   Вопросы типа: «А где рисунок платы?» будут оставлены без ответа, т.к. ответ в архиве. Замечу один момент: на прошиваемый контроллер необходимо подача питающего напряжения 5 вольт (+ и -), которое можно взять с компьютерного блока питания (использовал разъем от флоппика). Для этого в плате программатора AVR предусматриваем место для подключения 2-х питающих проводов. Выглядеть будет примерно так:

   Основные подготовительные операции выполнены и теперь приступаем к действиям для достижения основной цели – сборка USBasp.

   Про сборку и описывать особо нечего, так как тут всё ясно. Для себя исключил из схемы перемычки Jmp1 и Jmp3, Jmp2 заменил переключателем, а вместо разъема ISP типа BH-10 поставил DB-9M. Контроллер прошивал отдельно с использованием вот такой платы:

   Собранный USB программатор AVR засунул в подходящий пластмассовый корпус:

   А теперь расскажу, как же все таки заставить работать USBasp. Что у нас имеется в распоряжении (весь софт скачиваем в архиве):

 1. программатор Громова;
 2. софт под названием Uniprof;
 3. программатор USBasp;
 4. прошивка для контроллера USBasp;
 5. драйвера для установки USBasp в системе.

   На собранном USBasp ставим перемычки Jmp1 (цепь RESET) и Jmp2 (+5V), подключаем к нему программатор Громова и все это дело подключаем к COM-порту компа, не забыв подать питание 5 вольт. Запускаем Uniprof, если все собрано и подключено правильно, то должнен определиться тип прошиваемого контроллера:

 

   Нажимаем кнопку с рисунком папки и надписью HEX и указываем путь к файлу прошивки контроллера USBasp. В итоге получаем следующее:

   Осталось нажать на кнопку Prog с красной стрелкой, чтобы запустить режим прошивания. Ждем окончания заливки hex-файла. А теперь самые большие грабли – прошивка fuse-битов. В чекбоксе «Тормоз» (тот что над пивной кружкой) ставим галку (особенно актуально для шустрых системников), нажимаем кнопку «Fuse» (ала серп и молот :-D) и выставляем фьюзы как указано на картинке:

   После установки галок нажимаем кнопки «Write» в каждом из байтов. 

   Примечание (вдруг кто будет пользовать программатор Громова и дальше): в Uniprof галка напротив фьюза означает, что он установлен в 1 (в PoniProg галка означает установку в 0).

   Прошили? Отлично! Снимаем перемычку J1 и втыкаем программатор в компьютер. Теперь скармливаем дрова и в системе появляется новое устройство под названием USBasp. Для прошивки контроллеров качаем avrdude, но у нее есть недостаток – она консольная. Однако добрые дяди не оставили нас в беде и сделали графическую оболочку для avrdude, называется она USBASP_AVRDUDE_PROG. При прошивке fuse-битов через avrdude галка в чекбоксе напротив бита означает 0.

   Вот вроде и всё. Будут вопросы по запуску программатора — справшивайте, вместе как-нибудь разберемся. Автор: skateman.

Originally posted 2019-01-29 07:07:43. Republished by Blog Post Promoter

USBasp программатор микроконтроллеров AVR на Atmega8 своими руками

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

HILDA - электрическая дрель

Многофункциональный электрический инструмент способн...

Программатор 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.

Скачать прошивку, рисунок печатной платы и драйвер USBasp программатора (unknown, скачано: 2 492)

Оригинал статьи

Паяльный фен YIHUA 8858

Обновленная версия, мощность: 600 Вт, расход воздуха: 240 л/час...

Простейший программатор для ATmega8 | Полезное своими руками

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

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

А чтобы залить нужную прошивку в АТМЕГу, никак не обойтись без программатора. Далее мы рассмотрим две самые простые и проверенные временем схемы программаторов.

Схема первая

С помощью этого программатора можно прошивать практически любой AVR-контроллер от ATMEL, надо только свериться с распиновкой микросхемы.

СОМ-разъем на схеме - это "мама".

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

Файл печатной платы открывать с помощью популярной программы Sprint Layout (если она у вас еще не установлена, то качайте 5-ую версию или лучше сразу 6-ую).

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

Вместо КТ315 я воткнул SMD-транзистор BFR93A, которые у меня остались после сборки микромощных радиомикрофонов.

А вот весь программатор в сборе:

Питание (+5В) я решил брать с USB-порта.

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

Если же ваша микросхема б/у-шная, то без внешнего кварца она может и не запуститься. Тогда лучше ставьте кварц на 4 МГц, а конденсаторы лучше на 33 пФ.

Как видите, я кварц с конденсаторами не ставил, но на всякий случай предусмотрел под них места на плате.

Заливать прошивку лучше всего с помощью программы PonyProg (скачать).

Прошивка с помощью PonyProg

Заходим в меню Setup -> Calibration -> Yes. Должно появиться окошко "Calibration OK".

Далее Setup -> Interface Setup. Выбираем "SI Prog API" и нужный порт, внизу нажимаем "Probe", должно появиться окно "Test OK". Далее выбираем микроконтроллер "Device -> AVR micro ATmega8".

Теперь втыкаем микроконтроллер в панельку программатора, и подаем питание 5 вольт (можно, например, от отдельного источника питания или порта ЮСБ). Затем жмем Command -> Read All.

После чтения появляется окно "Read successful". Если все ок, то выбираем файл с нужной прошивкой для заливки: File -> Open Device File. Жмем "Открыть".

Теперь жмем Command -> Security and Configuration Bits и выставляем фьюзы, какие нужно.

Тщательно все проверяем и жмем "OK". Далее нажимаем Command -> Write All -> Yes. Идет прошивка и проверка. По окончании проверки появляется окно "Write Successful".

Вот и все, МК прошит и готов к использованию!

Имейте в виду, что при прошивке с помощью других программ (не PonyProg) биты могут быть инверсными! Тогда их надо выставлять с точностью до наоборот. Определить это можно, считав фьюзы и посмотрев на галку "SPIEN".

Схема вторая

Еще одна версия программатора, с помощью которого можно залить прошивку в микроконтроллер АТМЕГа (так называемый программатор Геннадия Громова). Схема состоит всего из 10 детатей:Диоды можно взять любые импульсные (например, наши КД510, КД522). Разъем - "мама". Питание на МК (+5В) нужно подавать отдельно, например, от того же компьютера с выхода USB.

Все это можно собрать навесным монтажом прямо на разъеме, но если вы крутой паяльник и знаете, что такое smd-монтаж, то можете сделать красиво:

Программировать только программой Uniprof. Тут хорошее описание программы: http://www.getchip.net/posts/025-uniprof-universalnyjj-programmator-dlya-avr/

Алгоритм прошивки с помощью программатора Громова

Программатор с установленной микросхемой подключаем к СОМ-порту компьютера, затем запускаем Uniprof, затем подаем питание на микроконтроллер. И первым делом проверяем, читаются ли фьюз-биты.

Если все ок, выбираем файл с нужной прошивкой и жмем запись.

Будьте предельно внимательны и осторожны, потому что если глюканет при записи фьюзов, то МК либо на выброс, либо паять схему доктора (а она сложная). Если поменяете бит SPIEN на противоположный - результат будет тот же (к доктору).

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

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

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

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

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


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

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

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

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

6. Далее слесарно-монтажные работы — пилим, сверлим, точим, лудим (последовательность выбирайте сами)

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

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

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

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

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

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

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

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

16. Конечный итог…

Доработанная печатная плата USBasp программатора: СКАЧАТЬ в формате Lay [13,91 Kb] (cкачиваний: 400)
Программирование микроконтроллера Mega8
1. Прошиваем микроконтроллер с помощью этого программатора:
Простой LPT программатор AVR микроконтроллеров (5-ть проводков)
Заливаем файл прошивки под названием «usbasp.atmega8.2007-10-23.hex» из архива в конце статьи…

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


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

Печатная плата адаптера в формате lay для Sprintlayout [12,78 Kb] (cкачиваний: 667)


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

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

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


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

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

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

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

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


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

Прошивка, программа, печатка, драйвер [992,87 Kb] (cкачиваний: 1227)

Всем удачи!

Программатор avr своими руками под windows 10. Миниатюрный USB программатор для AVR микроконтроллеров. Органы управления на плате

В интернете много схем USB программаторов для микроконтроллеров AVR. Все их можно разделить на три группы: программаторы на основе микроконтроллеров AVR, в которых USB интерфейс реализован программно, программаторы на основе микроконтроллеров AVR с аппаратной поддержкой USB, и программаторы на основе микросхем FT232, которые работают в режиме BitBang.

Один из наиболее простых для повторения AVR USB программаторов – это USBasp. Он собран на микроконтроллере Atmega8 (или Atmega48), требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.

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

Схема программатора USBasp представлена на рисунке ниже. Я взял за основу схему с сайта автора http://www.fischl.de/usbasp и немного изменил ee. Были добавлены диоды VD1 - VD3, чтобы уменьшить напряжение питания и согласовать логические уровни микроконтроллера и USB порта без стабилитронов. Были выкинуты цепи подключенные к UART`у, так как они не использовались, и добавлен джампер JP1.

Расскажу о назначении светодиодов и джамперов.

HL1 сигнализирует о том, что идет процесс программирования. Он зажигается на время записи прошивки.

HL2 показывает, что программатор находится в рабочем состоянии. Он зажигается при подаче питания.

JP1 закорачивает цепочку из диодов, что позволяет изменять напряжение на разъеме программирования с 3 на 5 В. Однако без стабилитронов это прокатит не со всеми компьютерами. Многие компы не опознают USBASP, если у него 5-и вольтовые логические уровни.

JP2 изменяет частоту SCK сигнала. При разомкнутом джампере частота SCK будет 375 кГц, при замкнутом - 8 кГц. Это требуется для программирования микроконтроллеров с низкой тактовой частотой (меньше 1.5 МГц).

JP3 подключает вывод RESET к разъему программирования. Это нужно для того, чтобы запрограммировать сам микроконтроллер программатора.

JP4 подключает к разъему программирования +5В от USB порта. Эта функция может понадобиться, чтобы запитать программируемую плату от программатора.

Для сборки программатора USBASP понадобятся следующие компоненты:

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


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

Запрограммировать микроконтроллер можно прямо в составе платы. Для этого нужно замкнуть джампер JP3 и JP4, подключить USBasp к компьютеру для подачи питания и подключить программатор к разъему BH-10. Остальные действия зависят от того, какой программатор вы используете.

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

atmega8 HFUSE=0xc9 LFUSE=0xef
atmega88 HFUSE=0xdd LFUSE=0xff

Я прошивал USBASP родным атмеловским программатором. У меня в Atmel Studio окно с Fuse битами выглядело так.

Если прошивать USBasp программатором на FT232 , то в SinaProg изображение Fuse битов будет таким.


Разницы никакой, так что не задавайте вопросы какие Fuse биты установить.

Для работы с программатором под Windows требуется установить драйвера. Их можно скачать с сайта автора. Для операционных систем Linux и MacOS X USBasp`у драйвера не требуется.

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


Выбираем опцию - установить из указанного места


Указываем папку в которой лежат драйвера для программатора.


Система немного потупит, а затем начнется процесс установки.


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


А Windows оповестит нас об установке нового оборудования


Теперь программатором можно пользоваться.

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

Для работы с USBasp`ом есть несколько программ - avrdude, eXtremeBurner, Khazama и.. какие то еще.

На мой взгляд наиболее удобная в использование программа для USBaspa - это Khazama. Она имеет простой и интуитивно понятный оконный интерфейс. Процесс программирования микроконтроллера выполняется в три шага.

Для программирования микроконтроллеров AVR требуется программатор. Проще всего сделать программатор для COM либо LPT. Но я работаю на ноутбуке, а в них сейчас устанавливаются только USB порты. Вот и назрела необходимость обзавестись программатором для AVR по USB. Сейчас, я скорее всего купил бы данный программатор. На ebay они стоят недорого, наверное, даже дешевле чем купить детали, сделать плату и всё спаять. Хотя если посмотреть с другой стороны, заказ с ebay будет идти по почте не меньше месяца, а собрать программатор avr usb своими руками, в силу его простоты, можно за вечер. Более того, если начинающий радиолюбитель сам соберёт программатор, то в дополнении к программатору он получит опыт, бесценный опыт, а это дорогого стоит.
Это второй мой USB программатор для AVR, первым я сделал программатор USB-asp, но он мне не очень понравился, так как иногда отваливался от моего компьютера, хотя на другом компьютере ничего подобного не наблюдалось. Я решил попробовать собрать другой программатор, и мой выбор пал на программатор AVR910. У данного программатора немного по другому реализована схема подключения по USB, и как позже оказалась, на моём компьютере всё работает очень хорошо. Я забыл о проблемах, которые у меня были с моим прошлым программатором. Описанный в данной статье программатор AVR910 является на данный момент моим основным программатором для AVR.
Схема и прошивка использованы с сайта проекта (http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm).


Питается программатор от USB порта. Для того чтобы не требовалось согласование с уровнями линий данных USB порта (3.6В) питание микроконтроллера составляет 3.6В. Для получения из 5В в USB порте 3.6В, используется схема их двух последовательно прямо включённых кремниевых диодов. На каждом диоде падает по 0.7В, а в сумме получается 1.4В. Диоды должны быть кремниевыми, не допускается использование диодов шотки, так как на них падает меньше 0,7В. Выходы разъёма программирования подключены через резисторы на 330 Ом для согласования уровней. Работает устройство на микроконтроллере AtMega8-16 на тактовой частоте 12МГц. На схеме приведены номера выводов для микроконтроллера в DIP корпусе, хотя я отраcсировал плату под SMD корпус, который называется TQFP. Программатор имеет индикацию записи, чтения, наличия питания. Также данный программатор имеет выход, на котором всегда присутствует меандр, частотой 1 МГц. Это очень классная и полезная штука для восстановления микроконтроллеров, у которых из-за ошибочно запрограммированных Fuse битов тактирование сконфигурировано от внешнего источника тактовых импульсов. Я таким образом уже несколько раз восстанавливал микроконтроллеры. Нужно всего лишь посмотреть в даташите на конкретный микропроцессор AVR, к какому выводу подключается внешний источник тактового сигнала, и подпаять к данному выводу источник меандра. Подключить программатор, и перепрограммировать fuse. Всё очень просто, но иногда здорово выручает!
Имеющиеся варианты реализации печатных плат под программатор AVR910 не совсем меня устраивали, и я выполнил трассировку своего варианта (скачать файлы проекта можно в конце статьи).


Защитный рисунок на фольгированный стеклотекстолит нанесён при помощи лазерного принтера и утюга.


После травления получилась вот такая красота. Я не сдержался, и процарапал тонер на дорожках между ножками микросхемы. Мне не терпелось проверить получились они или нет.


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

Групповую заготовку для таблички для печати на фотобумаге размером 10х15 я положил в архив со всеми файлами к данной записи. Скачать его можно в конце данной статьи.
Прошивку для программатора можно скачать по ссылке в конце статьи.
Fuse биты устанавливаются с соответствии с рисунком ниже:


Как запрограммировать микроконтроллер AtMega8 для программатора AVR910 можно посмотреть в моём видео:

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


С термоусадкой всё кажется просто, но мне было сложно сделать отверстия под штыри. Если протыкать отверстия шилом, то при усадке термоусадочная трубочка рвётся начиная от данных отверстий. Я даже испортил несколько заготовок, но у меня в конце экспериментов всё получилось. В итоге я отверстия не протыкал, а проплавлял горячим паяльником с жалом иглой. По краям платы я спаял концы термоусадочной трубки. Спаиваются они очень просто – нагреваются оба конца трубочки, затем быстро, пока они не успели остыть, зажимаются и удерживаются зажатыми до полного остывания. Получается достаточно прочный спай. Я зажимал медицинским зажимом, на термоусадке даже остались следы от насечек на его губках.
При первом подключении к компьютеру программатора AVR910 в системе появится новое устройство AVR910. Теперь необходимо установить драйвера и можно работать.
Я работал с данным программатором на 32 битных системах Windows XP и Windows 7. Всё работает очень хорошо и никаких проблем не возникает. Проблемы возникли у меня когда я попытался установить драйвера для 64 битной Windows 7. Дело в том, что этот драйвер не имеет цифровой подписи Microsoft и 64 битный Windows 7, будучи более защищенным в безопасности, блокирует все драйвера без цифровой подписи. Эту блокировку можно отключить, но это не совсем просто….. Так что имейте ввиду.
Заливаю прошивку в микроконтроллер я при помощи программы AvrOsp2. Она очень простая, не требует установки, бесплатна, поддерживает программатор AVR910 и огромное кол-во микроконтроллеров АВР, хорошо работает и имеет очень удобное меню для работы с FUSE битами. В общем, классная программка, мне она очень нравится, рекомендую! В видео ниже я показал процесс установки драйверов для AVR910, как настроить и пользоваться программой AvrOsp2.

В моей версии программатора я не установил выводной электролитический конденсатор на 22 мкФ, который устанавливается со стороны противоположной дорожкам и паяется в отверстия, которые находятся возле разъёма USB. Возможно потребуется установить дополнительный электролитический конденсатор ёмкостью 10-50мкФ параллельно впаянному керамическому конденсатору 0.1 мкФ, возле зелёного светодиода PWR. Ниже на картинке, от руки показаны места подключения.

Для работы программатора необходим микроконтроллер способный работать до 16 МГц. AVR AtMega8 выпускается в двух сериях, работающих до 8 МГц (серия L), они нам не подходят, так как проект работает от кварца на 12 МГц. Есть и обычная версия, которая работоспособна вплоть до частоты 16 МГц. Это то, что нам нужно. Ниже представлен кусочек даташита AVR AtMega8, в котором вычеркнуты версии микроконтроллеров которые не буду работать в данном программаторе, и выделены зелёной рамкой версии микроконтроллеров которые будут работать в данном проекте.

Микроконтроллеры фирмы 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

Сегодня расскажу, о недорогим и очень простом программаторе 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 ».
В качестве примера, прошью китайскую плату в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры » и выбираем ATmega328P.

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

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

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

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

В данной статье приведено описание USB программатора для микроконтроллеров AVR, который можно собрать своими руками. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK500 v2.

Описание USB программатора

USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита . На плате есть 2 перемычки: одна расположена под разъё­мом SPI, вторая перемычка расположена неподалеку от того же разъема.

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

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

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

Программирование Atmega8 через LPT-порт компьютера

Самый быстрый и дешевый способ запрограммировать Atmega8 – применить LPT-программатор для AVR. Подобная схема приведена ниже.

Питание микроконтроллера осуществляется от простого стабилизатора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.

При первом включении программы и при не подключенном контроллере, нажав кнопку «LPTpins», необходимо настроит выводы LPT-порта следующим образом:

В момент запуска UniProf, она автоматом определяет вид микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отклоняем подключение файла EEPROM.

Выставляем следующим образом фьюзы (для программы UniProF), нажав кнопку «FUSE»:

Для запоминания установок нажимаем все три кнопки «Write». Затем нажав на «Erase» предварительно очищаем память прошиваемого микроконтроллера. После этого уже жмем на «Prog» и дожидаемся завершения прошивки.

Настройка USB программатора

После того как наш микроконтроллер прошит, его необходимо установить в плату USB программатора. Далее подключаем программатор к USB порту компьютера, но пока питание не подаем.

Настройка порта:

Настройка терминала:

Настройка ASCII:

Теперь после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен промигать 6 раз и затем светится постоянно.

Для проверки связи USB программатора с компьютером 2 раза нажимаем клавишу «Enter» в программе HyperTerminal. Если все в порядке мы должны увидеть следующую картину:

Если это не так проверяем еще раз монтаж, особенно линию TxD.

Далее вводим версию программатора 2.10, так как без этого програм­матор не будет работать с программами «верхнего уровня». Для этого вводим «2» и нажимаем «Enter», вводим «а» (английская) и нажимаем «Enter».

USB программатор способен распознавать подключение программируемого микроконтроллера. Выполнено это в виде контроля «подтяжки» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:

  • «0», «Enter» — режим выключен.
  • «1», «Enter» — режим включён.

Изменение скорости программирования (1МГц):

  • «0», «Enter» – максимальная скорость.
  • «1», «Enter» – сниженная скорость.

На этом подготовительная работа завершена, теперь можно попробовать прошить какой-нибудь микроконтроллер.

(скачено: 1 203)

описание USBASP драйвера, инструкция по настройке своими руками в AvrDude Prog, Atmel Studio и Khazama AVR Programmer, обновление проши

В моём случае это абсолютный рекордсмен по скорости доставки — около 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

Серия ClassicAT90S1200 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[UsbaspSpeed]
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 [CKDIV8=0] — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.
Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7Atmel 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

-p t13 -c usbasp -B 3 -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a 
Здесь можно заметить уже два изменения: помимо «t13», добавился уже знакомый ключ "-B" со значением «3» для снижения скорости программирования
После заполнения полей нажать «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. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником):

Как рекомендует выставить разработчик:

HFUSE=0xc9
LFUSE=0xef

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

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

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

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

Список ссылок
1) Описание USBASP
2) AVRDUDE PROG 3.3 (форум)
3) Khazama AVR Programmer 1.7
4) Китайская стоковая прошивка (10кб)
5) Архив с прошивками для USBASP и драйверами для Windows — сайт создателя проекта

Программатор Громова | Практическая электроника

Что такое программатор

Первый вопрос, который вы хотите задать в лоб – что же вообще такое “программатор”? Слово “программатор” образуется как ни странно, от слова “программа”. А что такое программа? Если вспомнить, что такое телепрограмма и зачем она  была нужна (кстати, сейчас до сих пор продается в киосках), то стает понятно, что программа телепередач – это расписание по времени этих самых телепередач. Значит программой можно назвать какие-то действия или события, которые будут выполняться одно за другим во времени, когда мы этого захотим или не захотим.  Следовательно, программатор – это всего-навсего какое-то устройство, которые позволяет нам записывать либо читать программу. Изменить программу уже может только сам программист 😉

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

Программатор Громова

Я не ошибусь, если скажу, что 80% новичков, если у них на компьютере есть в наличии СОМ порт, собирают в качестве первого программатора Программатор Громова. Эта схема, при своей простоте и умелом обращении, настоящий шедевр). Действительно, ведь для того, чтобы собрать своими руками программатор, подключаемый к USB порту и имеющий в своем составе микроконтроллер AVR, который требуется предварительно запрограммировать, нужен опять таки программатор. А где взять новичку программатор, пусть и для подобной разовой прошивки ? Получается парадокс курицы и яйца), чтобы собрать USB программатор, нам необходимо сначала запрограммировать микроконтроллер программатора))).

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

Под каждый тип программатора чаще всего требуется своя программная оболочка. Для сборки программатора Громова не требуется программировать микроконтроллер. В данном программаторе он отсутствует. Этот программатор работает с двумя широко распространенными оболочками для прошивания: PonyProg и Uniprof.  У нас будут посвящены отдельные обзоры на эти программки. Данный программатор подключается к СОМ порту.  Единственным препятствием для его сборки может стать физическое отсутствие данного разъема на материнской плате вашего системного блока. Почему именно системного блока? Потому что ноутбуки, а также современные модели материнских плат 2010 – 2011 года выпуска и выше часто имеют на контактах СОМ порта пониженное напряжение питания. Что это означает? Это означает, что вы можете собрать данный программатор, а он у вас не заработает. Но с компьютерами  2007 – 2008 года выпуска и старше, за исключением ноутбуков, данный программатор должен гарантированно работать.  Подключение через переходники USB – COM не спасают в этом случае, так как при этом наблюдается в лучшем случае, сильное снижение скорости, в худшем, программатор вообще отказывается работать.

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

Давайте рассмотрим принципиальную схему программатора:

Что же мы видим на этой схеме ? Разъем СОМ порта, по другому называемый DB9, 7 резисторов одинакового номинала сопротивлением в 1 кОм и мощностью 0.25 Ватт и 3 импульсных диода. Из диодов подойдут, либо отечественные, КД522, КД510, либо импортные 1N4148.

Давайте разберем, как выглядят данные радиодетали.

На фото ниже представлен разъем DB9:

Как мы видим, пины (выводы) этого разъема обозначены цифрами на нем. Если будут какие-то затруднения с определением какой штырек соответствует какому отверстию разъема, рекомендую вставить проволочку в отверстие пина разъема, перевести мультиметр в режим звуковой прозвонки и прикоснувшись одновременно щупами мультиметра к проволочке по очереди к каждому из штырьков на разъеме, вызвонить соответствие штырьков отверстиям. Это может потребоваться в случае, если вы подключаете разъем проводками к плате. Если разъем будет впаян непосредственно в плату, то эти действия не требуются.

У кого на панели разъемов материнской платы, находящейся в задней части компьютера, нет COM разъема, можно купить планки с таким разъемом. Но нужно убедиться что производители распаяли контроллер СОМ порта на материнской плате, и предусмотрели подключение шлейфа данной планки, непосредственно к плате. Иначе такой вариант вам не поможет. В качестве альтернативного варианта, могу предложить приобрести контроллер СОМ порта, размещенный на специальной плате расширения, которую устанавливают в PCI слот ПК

Также при желании, если вы захотите, чтобы кабель, подключаемый к СОМ порту, у вас отключался от программатора, можно открутив винты крепления, снять разъем с планки, и закрепить его в корпусе программатора. Но будьте внимательны, и после покупки прозвоните все жилы, на соответствие номерам, с обоих концов кабеля, потому что часто в продаже встречаются похожие внешне кабеля, имеющие перекрещенные жилы. Кабель для подключения к данному разъему, должен быть обязательно полной распайки, DB9F – DB9F, прямой, не перекрещенный, с другими кабелями разъем работать не будет.

Если же возникают проблемы с приобретением данного кабеля, можно взять и перекрещенный кабель или удлинитель 9M-9F, но в таком случае может потребоваться обрезать разъем с другого конца, и вызвонив жилки по пинам разъема подпаяться непосредственно к плате программатора. У меня, кстати, был как раз такой кабель – удлинитель, и мне пришлось обрезать разъем со второго конца. Не покупайте кабеля для прошивки телефонов через СОМ порт, они не годятся для наших целей, так как там неполная распайка жил.

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

Идем дальше.

Диоды берем КД522, КД510 или 1N4148. Вот так выглядит диод КД522

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

[quads id=1]

Ну с резисторами, я думаю, проблем не возникнет. Идете в радиомагазин и говорите продавцу: “Мне нужны резисторы 1 кОм 0.25 Ватт”.  Желательно взять импортные резисторы,  так как у отечественных МЛТ идет большее отклонение от номинала.

Если вы владеете методом ЛУТ, то для вас не составит труда собрать программатор, по этой печатной плате. Ниже приведен скрин платы из программы Sprint Layout:

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

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

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

Извините за синюю изоленту)), тогда еще, 5 лет назад,  термоусадочные трубки были в диковинку.

Разъем кабеля программатора с другого конца был обрезан, и проводки кабеля были впаяны непосредственно в плату. Сам кабель был закреплен металлическим хомутом. На фото видно, что кабель толстый, и если бы был не закреплен, при изгибании мог нарушиться контакт проводков, на плате программатора

Для подключения к микроконтроллеру устанавливаемому для прошивания на беспаечную макетную плату, я использовал цветные гибкие проводки. Соединенные с проводками такого же цвета, взятыми из жилок витой пары. Это сделано для того, чтобы с одной стороны жилки не переломились при эксплуатации, а с другой было обеспечено легкое подключение к макетной плате. Длина данных проводков должна быть максимум 20 – 25 См, во избежание ошибок от наводок, при программировании. Не используйте обычные неэкранированные провода, вместо СОМ кабеля! Замучаетесь с ошибками при прошивке.

Программируемый микроконтроллер нуждается во внешнем питании +5 Вольт, подаваемом на программатор. Для этой цели можно собрать стабилизатор на микросхеме 7805, с питанием от внешнего блока питания, либо поступить проще и воспользоваться кабелем и зарядным устройством с выходом USB, подпаяв жилки кабеля USB прямо к печатной плате.

Для справки: питание и земля, в разъеме USB идут по краям. Вот распиновка разъема USB:

Теоретически можно, если вы достаточно аккуратный человек, запитаться и от USB порта компьютера, подключив к нему данный кабель, но помните, вы делаете это на свой страх и риск ! Лучше найти один раз деньги и приобрести USВ зарядное устройство. Не используйте отличающиеся от USB,  нестабилизированные зарядные устройства от сотовых телефонов и другой техники, вы рискуете испортить микроконтроллер.

При запитывании от USB порта компьютера, в случае замыкания жилок программатора +5 вольт (VCC) и земли (GND), вы рискуете сжечь южный мост материнской платы компьютера, ремонт такой материнской платы будет нецелесообразен. Я пользовался обоими вариантами для подачи питания, и через стабилизатор, и через кабель от зарядного USB. Еще один нюанс, после программирования микроконтроллера, чтобы микроконтроллер запустился, необходимо разорвать цепь RESET.

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

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

Наверняка вы уже обратили внимание, что на схеме программатора Громова, есть какие-то незнакомые слова, а в частности VCC, GND, MISO, MOSI, SCK и  RESET. Разберем,  что же значат эти обозначения на примере микроконтроллера Attiny 2313.

В данном случае изображена очень распространенная и недорогая микросхема:  микроконтроллер AVR Tiny (он же Аttiny) 2313. Ножки микросхемы, как мы видим, имеют свой номер. Нумерация идет против часовой стрелки, от ключа в виде точки, расположенной в левом верхнем углу корпуса микроконтроллера. Ниже на рисунке пример того, как идет нумерация на микросхемах в корпусе DIP:

В первую очередь нас интересуют перечисленные выше шесть ножек. Назначения всех остальных мы вкратце коснемся в конце статьи.

Итак, расшифровываем:

VCC. На эту ногу мы подаем напряжение питания микросхемы. Стандартом является 5 Вольт. Допустимо отклонение в большую сторону, до 5.5 Вольт. Напряжение свыше 6 Вольт, может привести к порче микросхемы. Отклонение в меньшую сторону более допустимо. Есть версии микроконтроллеров Tiny 2313V, которые могут работать даже от двух пальчиковых батареек или аккумуляторов, или от напряжения в 2.4 Вольта.

GND. Ну это всем знакомая и известная “земля”, она же  ”масса”, и она же минус питания. Данный контакт является общим для всех устройств, которые имеют подключение друг к другу. Если вы соединяете, какие-либо блоки устройства между собой, их земли следует объединить. В данном случае, земля микроконтроллера, объединяется с землей программатора.

MISO. Сокращение от Master – In – Slave – Out. По этой линии передаются данные от микроконтроллера к программатору.

MOSI. Сокращение от Master – Out – Slave – In.  По этой линии тоже передаются данные от программатора к микроконтроллеру.

SCK. На этой линии формируется тактовый сигнал.

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

Достаточно подсоединить эти перечисленные 6 пинов программатора, к 6 ножкам микроконтроллера, и мы сможем прошить МК.

Рассмотрим остальные ножки МК:

У микроконтроллера Tiny2313 3 порта: А (А0-А2, 3 ножки), B (В0-В7, 8 ножек) D (D0-D6, 7 ножек), всего насчитывается 18 используемых в качестве ножек портов ввода – вывода. Каждую из этих ножек можно сконфигурировать отдельно на ввод и на вывод. Не являются ножками портов, только земля (GND) и питание (VCC).

Ниже рассмотрено дополнительное назначение некоторых ножек  МК:

OC1A И OC1B.  Ножки для формирования ШИМ (Широтно – импульсная модуляция) сигнала, таймер 1.

OC0A и OC0B.  Ножки для формирования ШИМ сигнала, таймер 0.

AIN0  и AIN1. Ножки для подачи аналогового сигнала на микроконтроллер.

XTAL1 и XTAL2. Ножки для подключения кварцевого резонатора, для тактирования от него.

RXD и TXD. Линии подключения МК по интерфейсу UART.

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

Читаем далее: Как шить с помощью программатора Громова

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Обновление

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

Комментарии к статье до 12.07.2011, переход к последним комментариям.

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

О компании Программист AVR



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

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

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

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

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

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




Печатная плата программатора AVR (передняя) с 9-контактным гнездом Последовательный разъем RS232.


Печатная плата программатора AVR (задняя)


Установка печатной платы программатора AVR в корпусе для последовательного интерфейса RS232.


Готовый программатор AVR со стандартным 6-контактным ICSP разъем.

АРН Розетка PCB


Socket PCB имеет очень минимальное количество компонентов и используется для программирование желаемого микроконтроллера AVR снаружи вашей целевой цепи.


Socket PCB с 28-DIP микроконтроллером AVR ATmega8.



Есть два соединения; ICSP, который подключается к Программатор AVR и внешнее питание +5 В.


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

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



Разъем для микроконтроллера 28-DIP AVR ATmega8.

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


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



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


На этом настройка PonyProg завершена. и мы можем открыть шестнадцатеричную программу, с помощью которой микроконтроллер AVR будет мигать. Перейдите в меню "Файл", выберите «Открыть файл программы (FLASH) ...» и указать в шестнадцатеричный файл, чтобы открыть его. Вы должны увидеть шестнадцатеричный числа, как показано на экране ниже.Если у вас нет подключил ключ программатора AVR к компьютеру последовательного порта пока нет, то сейчас самое время. Убеждаться что программатор AVR физически подключен к вашему Микроконтроллер AVR через Socket PCB или через 6-контактный разъем ICSP. Наконец нажмите на выделенный значок «Запись программной памяти (FLASH)», или перейдите в меню «Команда» и выберите «Написать» Программа (FLASH) ».



Нажмите кнопку «Да», чтобы подтвердить программирование.


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


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





Accurate LC Meter

Создайте свой собственный Accurate LC Meter (измеритель индуктивности емкости) и начните создавать свои собственные катушки и индукторы. Этот LC-метр позволяет измерять невероятно малые индуктивности, что делает его идеальным инструментом для изготовления всех типов ВЧ-катушек и индукторов.LC Meter может измерять индуктивность от 10 нГн до 1000 нГн, 1 мкГн - 1000 мкГн, 1 мГн - 100 мГн и емкости от 0,1 пФ до 900 нФ. Схема включает автоматический выбор диапазона, а также переключатель сброса и обеспечивает очень точные и стабильные показания.

PIC Вольт-амперметр

Вольт-амперметр измеряет напряжение 0-70 В или 0-500 В с разрешением 100 мВ и потребление тока 0-10 А или более с разрешением 10 мА. Счетчик является идеальным дополнением к любым источникам питания, зарядным устройствам и другим электронным проектам, в которых необходимо контролировать напряжение и ток.В измерителе используется микроконтроллер PIC16F876A с ЖК-дисплеем с подсветкой 16x2.


Измеритель / счетчик частоты 60 МГц

Измеритель / счетчик частоты измеряет частоту от 10 Гц до 60 МГц с разрешением 10 Гц. Это очень полезное стендовое испытательное оборудование для тестирования и определения частоты различных устройств с неизвестной частотой, таких как генераторы, радиоприемники, передатчики, функциональные генераторы, кристаллы и т. Д.

1 Гц - 2 МГц Генератор функций XR2206

1 Гц - 2 МГц Генератор функций XR2206 выдает высококачественные синусоидальные, квадратные и треугольные сигналы с высокой стабильностью и точностью. Формы выходных сигналов могут модулироваться как по амплитуде, так и по частоте. Выход 1 Гц - 2 МГц Функциональный генератор XR2206 может быть подключен непосредственно к счетчику 60 МГц для точной настройки выходной частоты.


BA1404 HI-FI стерео FM-передатчик

Будьте в прямом эфире со своей собственной радиостанцией! BA1404 HI-FI стерео FM-передатчик передает высококачественный стереосигнал в FM-диапазоне 88–108 МГц.Его можно подключить к любому типу стереофонического аудиоисточника, например, iPod, компьютеру, ноутбуку, CD-плееру, Walkman, телевизору, спутниковому ресиверу, магнитофонной кассете или другой стереосистеме для передачи стереозвука с превосходной четкостью по всему дому, офису, двору или палаточный лагерь.

USB IO Board

USB IO Board - это крошечная впечатляющая маленькая плата разработки / замена параллельного порта с микроконтроллером PIC18F2455 / PIC18F2550. Плата USB IO совместима с компьютерами Windows / Mac OSX / Linux.При подключении к плате ввода-вывода Windows будет отображаться как COM-порт RS232. Вы можете управлять 16 отдельными выводами ввода / вывода микроконтроллера, отправляя простые последовательные команды. Плата USB IO получает питание от порта USB и может обеспечить до 500 мА для электронных проектов. Плата USB IO совместима с макетной платой.


ESR Meter / Capacitance / Inductance / Transistor Tester Kit

ESR Meter Kit - удивительный мультиметр, который измеряет значения ESR, емкость (100 пФ - 20000 мкФ), индуктивность, сопротивление (0.1 Ом - 20 МОм), проверяет множество различных типов транзисторов, таких как NPN, PNP, полевые транзисторы, полевые МОП-транзисторы, тиристоры, тиристоры, симисторы и многие типы диодов. Он также анализирует такие характеристики транзистора, как напряжение и коэффициент усиления. Это незаменимый инструмент для поиска и устранения неисправностей и ремонта электронного оборудования путем определения производительности и исправности электролитических конденсаторов. В отличие от других измерителей ESR, которые измеряют только значение ESR, этот измеритель одновременно измеряет значение ESR конденсатора, а также его емкость.

Комплект усилителя для наушников для аудиофилов

Комплект усилителя для наушников для аудиофилов включает высококачественные компоненты аудиосистемы, такие как операционный усилитель Burr Brown OPA2134, потенциометр регулировки громкости ALPS, разветвитель шины Ti TLE2426, фильтрующие конденсаторы Panasonic FM со сверхнизким ESR 220 мкФ / 25 В, высокое качество Входные и развязывающие конденсаторы WIMA и резисторы Vishay Dale. Разъем для микросхем 8-DIP позволяет заменять OPA2134 на многие другие микросхемы двойных операционных усилителей, такие как OPA2132, OPA2227, OPA2228, двойной OPA132, OPA627 и т. Д.Усилитель для наушников достаточно мал, чтобы поместиться в жестяной коробке Altoids, и благодаря низкому энергопотреблению может питаться от одной батареи на 9 В.


Arduino Prototype Kit

Arduino Prototype - это впечатляющая плата для разработки, полностью совместимая с Arduino Pro. Он совместим с макетной платой, поэтому его можно подключить к макетной плате для быстрого прототипирования, и на обеих сторонах печатной платы имеются выводы питания VCC и GND.Он небольшой, энергоэффективный, но настраиваемый с помощью встроенной перфорированной платы 2 x 7, которую можно использовать для подключения различных датчиков и разъемов. Arduino Prototype использует все стандартные компоненты со сквозными отверстиями для легкой конструкции, два из которых скрыты под разъемом IC. Плата оснащена 28-контактным разъемом DIP IC, заменяемым пользователем микроконтроллером ATmega328 с загрузчиком Arduino, кварцевым резонатором 16 МГц и переключателем сброса. Он имеет 14 цифровых входов / выходов (0-13), из которых 6 могут использоваться как выходы ШИМ и 6 аналоговых входов (A0-A5).Эскизы Arduino загружаются через любой USB-последовательный адаптер, подключенный к 6-контактному гнезду ICSP. Плата питается напряжением 2-5 В и может питаться от аккумулятора, такого как литий-ионный элемент, два элемента AA, внешний источник питания или адаптер питания USB.

4-канальный беспроводной радиочастотный пульт дистанционного управления с частотой 433 МГц, 200 м

Возможность беспроводного управления различными приборами внутри или снаружи дома является огромным удобством и может сделать вашу жизнь намного проще и веселее.Радиочастотный пульт дистанционного управления обеспечивает дальность действия до 200 м / 650 футов и может найти множество применений для управления различными устройствами, и он работает даже через стены. Вы можете управлять освещением, вентиляторами, системой переменного тока, компьютером, принтером, усилителем, роботами, гаражными воротами, системами безопасности, занавесками с электроприводом, моторизованными оконными жалюзи, дверными замками, разбрызгивателями, моторизованными проекционными экранами и всем остальным, о чем вы можете подумать.


AVR Tutorial - Выбор программиста

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

Комментариев? Предложения? Напишите на форум!

Программистов легко десяток, я расскажу о 4 основных типах:

  1. Простые / базовые / Bitbang программисты
  2. Интеллектуальные программисты ISP
  3. Макетные платы
  4. Без программиста (загрузчик)

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

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

Вставляется в параллельный (принтерный) порт компьютера


Вы можете видеть, что серебристая часть подключается к параллельному порту, а затем есть кабель, который подключается к 10-контактному разъему ISP

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

Очень похож на программатор параллельного порта, но подключается к последовательному порту

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

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

Плюсы: Ультра дешево (10-20 долларов), легко понять, потому что программное обеспечение делает все, что исключает риск «несовместимости программистов или обновлений».
Минусы: требуется ПК с портами, Mac не может их использовать, если вы » При работе с высоким напряжением (более 5 В) вы можете заблокировать свой порт, несколько стандартов для интерфейса программиста.

Такие программаторы можно купить в интернет-магазине adafruit.

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

Наиболее распространенный программатор - это AVRISP и AVRISPv2. Оба выглядят примерно так:


Фото любезно предоставлено EvilMadScientistLabs

На одном конце есть разъем для кабеля, а 6-контактный и / или 10-контактный кабель выходит с другого.AVRISP v1 имел разъем для последовательного порта, а v2 - USB. У v1 есть оба кабеля, у v2 только 6-контактный.

AVRISPv2

можно приобрести на Digikey.com или Mouser.com по цене 36 долларов или около

долларов США.

Мне очень понравилась версия 1, но она была снята с производства, а версия 2 не поддерживает 10-контактные кабели, поэтому я разработал свой собственный программатор под названием USBtinyISP, вы можете собрать его из комплекта примерно за 20 долларов. Об этом подробнее здесь.

Есть намного больше дизайнов ISP, многие самодельные.

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

Первый - это STK500, который за 80 долларов - настоящий зверь. Он поддерживает практически все микросхемы Atmel со всеми различными сокетами. Он имеет кнопки, светодиоды, регулируемый генератор тактовой частоты и т. Д. Этот программатор поддерживается AVRStudio, которая является средой программирования Atmel.Поскольку это программист «де-факто», метод программирования, который он использует для связи с компьютером (называемый протоколом STK500), также является стандартным. У него есть некоторая кривая обучения, но многие люди его используют. Вы можете купить его в Digikey или Mouser.

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

Второй - AVR Dragon, который является не только программистом, но и эмулятором.Он больше похож на интернет-провайдера, чем на отладочную плату, у него есть разъемы для 6- и 10-контактных разъемов.

Я мало играл с ним, но люди говорят, что он хороший, и стоит всего 50 долларов. Обратите внимание, что нет разъемов для чипов.

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

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

Например, Arduino использует загрузчик, который запрограммирован в чип на заводе Arduino. Загрузчик защищен от перезаписи. Чтобы загрузить код в Arduino, вы используете программное обеспечение Arduino, которое достаточно умен, чтобы распознавать, когда Arduino подключен.

Загрузчики

- это здорово, но вам понадобится программист ISP, чтобы установить загрузчик на чип в первый раз, если вы покупаете чип у Digikey или Mouser. Это немного проблема курицы и яйца.

Загрузчики

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

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

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

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

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

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


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

СХЕМА:

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

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

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

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

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

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

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

СХЕМА:

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

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

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

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

SNAPS:

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

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

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

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

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

Нравится:

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

Связанные

Building STK500 AVR ISP программатор с USB

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

Я решил сделать свой программатор, совместимый со stk500, взятый из tuxgraphics.com. Я не искал те же детали, что и на исходных схемах, но использовал то, что есть на столе. В результате я получил смесь печатной платы для сквозных отверстий и SMD, которая выполняет свою работу.

Краткая информация о программаторе STK500 V2

Этот адаптер STK500 V2 является клоном оригинального программатора AVR STK500. Он работает на всех ведущих платформах, включая Windows, Linux, BSD и macOS X. В основном это связано с тем, что преобразователь USB в последовательный порт - микросхема FT232RL имеет полную поддержку драйверов. Основная причина его создания заключается в том, что программист работает в AVRstudio, где микроконтроллеры можно свободно программировать из одной среды разработки.Кроме того, он отлично работает с AVRDude - основным приложением для пользователей Linux. Этот клон приобрел довольно значительную популярность, так что вы можете найти множество вариаций - в основном разные версии печатных плат. Поэтому у меня стоит еще одна печатная плата.

Аппаратное обеспечение программатора STK500

Как я уже упоминал, это быстрая сборка из деталей, найденных на полке; это не лучшая печатная плата. Поскольку он использует смесь SMD и деталей для сквозных отверстий, в любом случае он работает так, как предполагалось, так что с этим никаких проблем.Остановимся на некоторых деталях. Я нашел чип FT232BL, который использовался в некоторых более ранних проектах, поэтому решил использовать его вместо более нового FT232RL. Это примерно такой же чип, но старшего поколения. Кроме того, вам нужно использовать внешний кристалл на 6 МГц и еще пару компонентов. Драйверы по-прежнему поддерживаются вплоть до Win 7, поэтому его можно даже активно использовать.

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

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

Прошивка Atmega8

Как я уже говорил, вам необходимо сначала запрограммировать ATmega8 перед использованием.Последнюю версию прошивки для него можно найти здесь. И не забудьте правильно установить предохранители. FYI предохранители в PopnyProg должны быть следующими:

Или передайте их AVRdude следующим образом:

Младший байт: 0xEE;

Старший байт: 0xE9.

Запуск программатора на AVRStudio

При запуске программатора в AVRStudio выберите платформу STK500 и COM-порт на USB - последовательный преобразователь назначен. В моем случае это COM5. После нажатия кнопки «Подключить…» предлагается обновить прошивку программатора - пропустите, нажав «Отмена», поскольку функция обновления для него не работает.Следующий экран, который вы увидите, - это диалоговое окно программирования STk500, в котором вы можете выбрать устройство и запрограммировать его.

Небольшое замечание о настройках режима ISP! Если вы пытаетесь прошить новый AVR с тактовой частотой 1 МГц по умолчанию, вы должны выбрать правильную частоту ISP, так как она должна быть меньше целевой.

Чтобы прошить Atmega 1 МГц, вы должны использовать 115,2 кГц, тогда как 8 МГц подойдет для 1,845 МГц.

Скачать файлы проекта: stk500usb

Создание FabTinyISP

Создание FabTinyISP

Содержание

Введение

FabTinyStar - еще одна версия программатора / платы AVR ISP, которая могут быть произведены в фабричной лаборатории с использованием фрезерованной печатной платы и легко доступны составные части.В основе проекта - усилия многих людей. Для большего история FabTinyStar и людей, которые внесли свой вклад в это, пожалуйста обратитесь к Заерку Страница FabTinyStar.

Эта версия ("FabTinyISP Minimal" является второстепенной доработкой для Версия Zaerc's 0.3 (Bas), с небольшими модификациями:

  • Переключатель сброса и целевой переключатель мощности удалены. Сброс коммутатор увеличивает стоимость и не очень полезен для программиста интернет-провайдера, поскольку цель можно легко сбросить с помощью программной команды.Целевая мощность выключатель был удален как обеспечивающий питание цели через программирование порта обычно не рекомендуется. Пользователи, понимающие последствия этого приветствуются для создания одного из проектов FTS с выключатель.
  • Медная заливка удалена и заменена индивидуальной. следы грунта; это позволяет начинающим паяльщикам удалить больше медь. Все компоненты припаиваются к четко обозначенным контактным площадкам с обеих сторон.
  • Были удалены лишние контактные площадки, подключенные к линиям передачи данных USB; это версия предназначена исключительно для того, чтобы быть программистом ISP, а не быть универсальная плата tiny45.
  • Термистор PTC был удален; поскольку этой части в настоящее время нет в В инвентаре большинство пользователей все равно построят его с резистором 0 Ом. Как опция для обеспечения мощности цели была удалена, ее должно быть намного больше сложно создать условия, в которых потребуется полифуз.
  • Makefile заменен. Цели для программирования предохранителей на добавлен ATtiny45. Исходный Makefile также приводит к проблемы в файловых системах без учета регистра (т.е. Windows).

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

Банкноты

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

Примечания к современному USB

FabTinyISP - это «низкоскоростное» устройство USB 1.1. Это самый медленный (и один из самых старых) из типов USB-устройств. Обычно используется для мышей и клавиатур низкоскоростные устройства работают на частоте 1,5 МГц и имеют гораздо меньшую строгие требования к срокам, что позволяет полностью программно реализация используемого протокола USB (ATtiny45 не имеет аппаратная возможность USB).

Хотя все более поздние версии USB должны быть обратно совместимы со старыми таких устройств, как FabTinyISP, следует помнить о нескольких вещах, чтобы избегать выпусков:

  • Избегайте использования USB 3 концентраторы.Они не всегда работают с низкоскоростными устройствами и могут влияют на синхронизацию сигналов, от которых зависит FabTinyISP. USB-концентраторы 2 в большинстве случаев работает нормально.
  • Если вам нужно адаптироваться от USB-C, лучше всего использовать переходник кабельного типа. Это ставит намного меньше нагрузки на порты (на вашем ноутбуке, самом адаптере и программатор) по сравнению с адаптером штекерного типа без кабеля.
  • Остерегайтесь адаптеров USB-C с несколькими портами, так как они могут содержат концентратор USB3.Если вам нужно несколько портов USB-A, лучше всего подключить USB2-концентратор в адаптер USB-C.

Изготовление печатных плат

Загрузите файлы PNG для следов и контура платы:

Исходные файлы Altium доступны здесь, если вы хотите изменить дизайн.

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

Готовая печатная плата должна выглядеть примерно так:

В зависимости от количества фрезерованных смещений может быть небольшой Медь оставила на краю платы перед контактами USB.5 зачетов должно быть достаточно, чтобы удалить всю медь в процессе фрезерования, но фрезерование занимает немного больше времени. Если вы фрезеровали меньше смещений (я сделал 3 в приведенном выше фото) лишнюю медь можно удалить ножом. Только медь в переднюю часть колодок нужно снять; медь слева по бокам отлично.

Сборка печатной платы

Получить компоненты:

  • 1x ATtiny45 или ATtiny85
  • 2 резистора 1 кОм
  • 2 резистора 499 Ом
  • 2 резистора по 49 Ом
  • 2x 3.Стабилитроны 3в
  • 1x красный светодиод
  • 1x зеленый светодиод
  • Конденсатор 1x 100 нФ
  • 1x 2x3 контактный разъем

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

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

Обратите внимание на компоненты, которые должны быть установлены в правильной ориентации:

  • Стабилитроны обозначены как на чертеже, так и на корпусах, с линией на катодной стороне.
  • Светодиодные катоды на чертеже печатной платы отмечены точками и более толстыми. линии. Правила маркировки упаковки различаются между производителями светодиодов, но на катодной стороне обычно видна зеленая или черная линия. эпоксидная линза.Некоторые светодиоды имеют дополнительный медный маркер на катодной площадке. дно. Некоторые печатают внизу маленькую стрелку, которая соответствует схематический символ: стрелка указывает на катод. Если сомневаешься, можно использовать мультиметр в режиме проверки диодов; светодиод будет светиться немного, когда красный зонд находится на аноде, а черный зонд находится на катод (это также полезно для определения цвета).
  • ATtiny45 отмечает штифт 1 точкой, вытравленной лазером в углу посылка.Пин 1 также отмечен на чертеже точкой.

Используйте припой, чтобы создать перемычку на перемычке рядом с разъемом ISP (J1). Этот временно подключает V CC к V prog пин на заголовке ISP, чтобы заголовок мог использоваться для программирования tiny45. (Программа подает напряжение на этот вывод и программист это обнаруживает). Как только он запрограммирован, мы удалим это мост, чтобы превратить плату в программиста, а не в программиста.


Паяльная перемычка перемычка и без.

Улучшение разъема USB

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

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

В большинстве случаев выполнения вышеуказанного достаточно, но я все же люблю добавлять немного больше толщины, приклеив дополнительный материал к нижней части печатной платы. Небольшой кусочек пластиковой раскладушки упаковка работает хорошо.Я использую крошечную каплю клея CA, чтобы приклеить небольшой кусочек в нижней части области USB-разъема, затем обрежьте лишнюю пластик, как только он установлен. (Будьте осторожны, чтобы не нанести суперклей на остальную часть плату, особенно контакты USB на другой стороне).

Проверьте свою работу

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

  • Сравните вашу плату со схемой и изображением макета печатной платы, чтобы сделать убедитесь, что вы установили правильные компоненты в правильный места и ориентации.
  • Осмотрите плату визуально. Компоненты должны лежать на плате ровно, не наклоняется булавками в воздухе. Паяные соединения должны быть гладкими, а припой должен стекать как на штифт, так и на контактную площадку. если ты по-прежнему видно много оголенной меди на контактной площадке, или припой комковатый и доходит до точки, из которой вы сняли утюг, вероятно, у вас нет хорошая связь.Оплавление с применением тепла и флюса (либо флюсом или добавив немного больше припоя). Также ищите ненужный припой перемычки между ближайшими следами и штифтами.
  • Используйте мультиметр для проверки короткого замыкания между V CC и GND.

Установка программного обеспечения

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

Вы будете использовать оболочку командной строки (bash) в терминале вашей платформы для выполните все команды ниже. Если вы не знакомы с использованием командную строку, вы можете просмотреть руководство.

Linux (настоятельно рекомендуется)

Для Ubuntu и других дистрибутивов на основе Debian введите следующее команда, за которой следует ваш пароль при появлении запроса:

 sudo apt install avrdude gcc-avr avr-libc make 

MacOS

Загрузите и установите CrossPack.

Окна

Установить набор инструментов в Windows немного сложнее. Отдельный инструкции представлены здесь.

Получение и сборка микропрограммы

Загрузите исходный код прошивки и распакуйте zip-файл (в Linux распакуйте fts_firmware_bdm_v1.zip). Открыть вашу терминальную программу и cd в каталог с исходным кодом.

Выполнить make. Это создаст шестнадцатеричный файл, который будет запрограммирован на ATtiny45. Когда команда завершится, у вас должен появиться файл называется fts_firmware.шестнадцатеричный. Если команда не завершена успешно, что-то не так с установкой вашей инструментальной цепочки. Проконсультируйтесь сообщения об ошибках для информации, которая поможет вам отладить это.

Программируйте ATtiny45

Сначала обновите Makefile для того типа программиста, который вы собираетесь использовать. чтобы запрограммировать вашу доску. Makefile по умолчанию предполагает, что вы собираетесь используйте программатор из семейства usbtiny (например, другую плату FabISP). Если вы используете другой программатор, сначала выясните, что avrdude (программное обеспечение для программирования) называет это.Вот несколько часто встречающихся AVR программистов:

Отредактируйте файл Makefile. Важно использовать текст редактор, предназначенный для программистов; такие программы, как Блокнот или WordPad, могут добавлять информация о форматировании, которая нарушает работу файла. В Linux - gedit (графический интерфейс). или nano (командная строка) - хорошие варианты; Пользователи Windows могут захотеть используйте Notepad ++. TextEdit в OS X обычно работает, просто убедитесь, что вы сохраняете как обычный текст, а не RTF (и конечно, к имени файла не добавляется ".txt"). Sublime Text - еще один популярный выбор на нескольких платформах.В общем, все, что вы используете для редактирования своего HTML-кода, наверное хороший выбор.

В верхней части файла найдите строку, в которой написано:

 ПРОГРАММАТОР? = Usbtiny 

и замените usbtiny на любой программатор, который вы используете.

Вставьте плату в порт USB. Используйте порт USB 2.0, а чем порт USB 3.0, если он у вас есть. Также рекомендуется использовать короткие Удлинительный кабель USB или USB 2.0 концентратор вместо прямого подключения к порту, особенно если ваши USB-порты перевернуты.Это снимет напряжение и снизит риск повреждение встроенных портов USB. Например:

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

Подключите программатор к разъему ISP на вашей плате. Обратите внимание, что там есть две разные ориентации, в которых вы можете подключить кабель; это Важно, чтобы вы получили контакт 1 в нужном месте.Контакт 1 отмечен схема платы с точкой и подключенным к ней сигналом MISO. Если вы посмотрите на пластиковом разъеме на кабеле программатора должен быть небольшой стрелка, точка или название производителя, отмечающие угол с помощью булавки 1. Обратите внимание, что нет обязательного стандарта для того, в каком направлении кабель выходит из разъем, поэтому ищите маркер контакта 1.

Запустите make flash. Это сотрет целевой чип и запрограммирует его флэш-память с содержимым созданного ранее файла .hex.Вы должны увидеть несколько индикаторов выполнения, пока avrdude стирает, программирует, и проверяет чип.

Если что-то пошло не так, проверьте:

  • , что программатор подключен правильно и контакт 1 на разъеме соответствует контакту 1 на плате
  • , что ваша плата хорошо установлена ​​в USB-порт
  • , что ATtiny45 установлен в правильной ориентации
  • , что ваша пайка выглядит нормально на ATtiny45 и заголовке ISP (примечание короткое замыкание может произойти там, где следы проходят под разъемом)

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

После того, как вы успешно запрограммировали флэш-память, пришло время установить конфигурация предохранителей. Сделаем это поэтапно:

  • Сначала мы установим предохранители, которые контролируют, где находится микроконтроллер. его источник часов от. (USB требует, чтобы часы поступали от PLL, и не делиться на 8). Это позволит нам проверить, что плата работает как USB-устройство, но пока не сможет программировать другие доски.
  • Только убедившись, что USB работает, мы установим предохранитель, отключающий штифт сброса и превращает его в обычный штифт GPIO.Это позволит чип использует контакт сброса для программирования других плат, но отключит возможность повторного программирования этого чипа. Потому что это нелегко обратимый, мы хотим убедиться, что все остальное работает в первую очередь!

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

Проверка функциональности USB

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

Linux

Введите lsusb в терминале, чтобы отобразить список USB-устройств. если ты см. устройство "Multiple Vendors USBtiny", оно сработало! Если нет, команда dmesg может предоставить дополнительную информацию о том, что пошло не так.Ты хотите видеть сообщение "Новое низкоскоростное USB-устройство" без каких-либо дальнейшие ошибки. (Обратите внимание, что sudo dmesg -c очистит сообщения после распечатки, что полезно сделать перед подключением платы так что вы сможете точно сказать, какие сообщения являются результатом его подключения в). Если вы не видите сообщение «новое низкоскоростное устройство», проверьте подтяжка на линии USB (резисторы 1 кОм и 499 Ом, R1 и R2, последовательно между V CC и D-) для правильных значений и хорошего соединения (компьютер использует эти резисторы и их значения для определения какой тип USB-устройства было подключено).Если вы видите "новый низкоскоростное устройство ", но после этого возникнут другие ошибки, попробуйте следующее:

  • Иногда просто плохая связь с портом; попробуйте отключить и повторное подключение. Убедитесь, что контакты USB чистые и даже количество припоя на всех из них, и что поверхности гладкий.
  • Порты
  • USB 2.0 с большей вероятностью будут работать, чем порты USB 3.0. если ты нет портов USB 2.0, попробуйте подключиться через USB 2.0 хаб.
  • Проверьте следы и компоненты между контактами USB для передачи данных и микроконтроллер. Убедитесь, что стабилитроны в правильном положении. ориентации, что последовательные оконечные резисторы (R3 и R4) являются правильные значения (49 Ом) и что соединения в порядке. Мера целостность между резисторами и контактами USB, и резисторами и контакты микроконтроллера, к которым они подключаются (контакты 2 и 3). Проверять на наличие короткого замыкания между контактами 2 и 3 микроконтроллера и другими соседними следы.
  • Попробуйте подключиться к компьютеру, который, как вы знаете, работал с кем-то чужую доску, или попробуйте подключить чью-то известную рабочую доску к своей компьютер. Это поможет вам сузить круг вопросов, есть ли у вас несовместимость с вашими USB-портами или проблема с вашей платой.

MacOS

Откройте «Сведения о системе» Apple (Меню Apple → Об этом Mac → Дополнительная информация; или из папки Utilities). Выберите USB из списка слева, и вы USBTiny должен быть указан как устройство справа.Если он появляется, это работает правильно. В противном случае следуйте приведенным выше инструкциям по отладке (примечание что MacOS не имеет команды dmesg, хотя похожая информация может быть доступен где-нибудь в приложении консоли). Либо проверьте все выше, или подключитесь к машине Linux, чтобы увидеть, получаете ли вы Сообщение "новое низкоскоростное устройство" в dmesg.

Окна

Windows перечисляет USB-устройства в Диспетчере устройств (Пуск → Панель управления → Система. → Диспетчер устройств), хотя он не всегда сообщает вам, что они собой представляют, пока установлены правильные драйверы.USB-устройства также могут отображаться в разделе «Устройства. и принтеры "или" Оборудование и звук ". Если вы не знаете Windows-машина достаточно хорошо, чтобы определить, работает ли устройство USBtiny. появившись, вы можете захотеть подключиться к чьей-нибудь машине Linux или Mac, чтобы убедитесь, что он работает.

Перегорел предохранитель сброса

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

Во-первых, нам нужно изменить бит, который будет включать вывод сброса ATtiny45. в контакт GPIO. Еще раз, это отключит нашу возможность перепрограммировать этот ATtiny45 в будущем, поэтому мы хотели убедиться, что все прежде чем делать это. Подключите программатора вашего интернет-провайдера к вашей плате еще раз time и запустите make rstdisbl. Это то же самое, что и сделать команду предохранителей, но на этот раз она будет включать этот сброс также отключить бит.Вы должны увидеть несколько индикаторов выполнения, и avrdude больше никогда не сможет разговаривать с этим чипом через интернет-провайдера заголовок.

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

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

Теперь у вас должен быть собственный работающий программист ISP! Но перед тобой Назовите это днем, используйте свою доску, чтобы попробовать запрограммировать другую доску.


Это работа под лицензией Creative Commons Международная лицензия Attribution-NonCommercial-ShareAlike 4.0.

Установка Arduino на макет

Сборка Arduino на макетной плате

Обзор

В этом руководстве показано, как создать совместимую с Arduino макетную плату с микроконтроллером AVR Atmel Atmega8 / 168/328 и коммутационной платой FTDI FT232 от SparkFun. Вы также можете использовать Arduino USB Mini.

Первоначально созданный Дэвид А.Mellis
Обновлено из версии ITP Карлин Мо
Обновлено 23 октября 2008 г. Рори Ньюджент

Детали

Для этого вам понадобятся:


Поставки
Основные детали для подключения Arduino
  • Макетная плата
  • Провод 22 AWG
  • 7805 Регулятор напряжения
  • 2 светодиода
  • 22 Резисторы 220 Ом
  • 1 резистор 10 кОм
  • 2 конденсатора 10 мкФ
  • тактовый кристалл 16 МГц
  • 2 конденсатора 22 пФ
  • малая кратковременная нормально разомкнутая («выключенная») кнопка, т.е.е. Omron тип B3F
USB к плате последовательной связи

Вам понадобится плата FT232 USB Breakout от SparkFun. Из них доступны два варианта:

  • FT232RL Плата подключения USB к последовательному порту, артикул BOB-0071
  • Плата последовательного USB-порта Arduino, SKU DEV-08165

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

Загрузка ваших чипов Atmega

Существует несколько вариантов загрузки ваших чипов Atmega, некоторые из которых описаны в этом руководстве.Если вы хотите загрузить свои чипы Atmega с помощью макетной платы, дополнительная часть значительно упростит вам жизнь, но в этом нет необходимости. Адаптер программирования AVR от Sparkfun, SKU. BOB-08508

Добавление схемы для блока питания

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


Верхние линии электропередач

Добавьте провода питания и заземления там, где будет находиться регулятор напряжения.


Нижние линии электропередач

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


Добавьте 7805 и развязывающие конденсаторы

Добавьте регулятор мощности 7805 и линии для питания платы. Регулятор представляет собой корпус TO-220, в котором вход от внешнего источника питания идет на вход слева, земля находится в середине, а выход 5 В находится справа (если смотреть на переднюю часть регулятора).Добавьте провода питания OUT и заземления, которые подключаются к правой и левой направляющим на макетной плате.

Также добавьте конденсатор 10 мкФ между входом стабилизатора и землей, а также конденсатор 10 мкФ на правой шине между питанием и землей. Серебряная полоска на конденсаторе обозначает землю.


светодиод

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


Вход источника питания

Красный и черный провода слева от регулятора напряжения - это место, где будет подключаться ваш источник питания. Красный провод предназначен для ПИТАНИЯ, а черный провод - для ЗАЗЕМЛЕНИЯ. Убедитесь, что вы подключаете только источник питания с напряжением от 7 до 16 В. Немного ниже, и вы не получите 5В из регулятора. Если установить более высокое значение, регулятор может быть поврежден. Подходит аккумулятор 9 В, источник питания 9 В постоянного тока или источник питания 12 В постоянного тока.


Пустой холст

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

Основы ATMEGA8 / 168/328

Схема контактов
Arduino

Прежде чем двигаться дальше, посмотрите на это изображение. Это отличный ресурс для изучения того, что делает каждый из контактов вашего чипа Atmega по отношению к функциям Arduino. Это прояснит большую путаницу, связанную с тем, почему вы подключаете определенные контакты именно так, как вы это делаете. Для получения более подробной информации взгляните на таблицу данных Atmega 168 (короткая версия) (длинная версия).Вот лист для atmega328 (короткая версия) (длинная версия)


Добавить вспомогательную схему

Начните с подключения подтягивающего резистора 10 кОм к + 5 В от вывода RESET, чтобы предотвратить самопроизвольный сброс микросхемы во время нормальной работы. Контакт RESET перезагружает микросхему при опускании на землю. В следующих шагах мы покажем вам, как добавить переключатель сброса, который использует это преимущество.

  • Контакт 7 - Vcc - цифровое напряжение питания
  • Контакт 8 - GND
  • Контакт 22 - GND
  • Pin 21 - Ареф - Аналоговый опорный штырь для АЦП
  • Контакт 20 - AVcc - Подача напряжения для преобразователя АЦП.Должен быть подключен к источнику питания, если АЦП не используется, и к питанию через фильтр нижних частот, если он есть (фильтр нижних частот - это схема, которая снижает шум от источника питания. В этом примере он не используется)

Добавить часы и крышки

Добавьте внешнюю синхронизацию 16 МГц между контактами 9 и 10 и добавьте два конденсатора 22 пФ, идущих на землю от каждого из этих контактов.


Добавить переключатель сброса

Добавьте небольшой тактильный переключатель, чтобы вы могли перезагрузить Arduino, когда захотите, и подготовить чип для загрузки новой программы.Кратковременное нажатие этого переключателя приведет к сбросу микросхемы при необходимости. Добавьте переключатель чуть выше верхней части микросхемы Atmega, пересекая щель в макетной плате. Затем добавьте провод от левой нижней ножки переключателя к контакту RESET микросхемы Atmega и провод от верхней левой ножки коммутатора к земле.


светодиодных выводов на выводе 13 Arduino

Чип, используемый на этой плате, фактически уже запрограммирован с помощью программы blink_led, которая поставляется с программным обеспечением Arduino. Если у вас уже работает печатная плата Arduino, неплохо было бы проверить макетную версию, которую вы собираете, с чипом, который, как вы знаете, работает.Вытащите чип из своего рабочего Arduino и попробуйте его на этой плате. Программа blink_led мигает контактом 13. Контакт 13 на Arduino НЕ является контактом 13 AVR ATMEGA8-16PU / ATMEGA168-16PU. На самом деле это контакт 19 на микросхеме Atmega.

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

Светодиод
на выводе 13 Arduino

Наконец, добавьте светодиод. Длинная ножка или анод подключается к красному проводу, а короткая ножка или катод подключается к резистору 220 Ом, идущему на землю.


Готово к Arduino!

На этом этапе, если вы уже программировали свой чип в другом месте и не нуждались в этой макетной плате для перепрограммирования чипа, вы можете остановиться на этом. Но часть удовольствия - это внутрисхемное программирование, так что продолжайте создавать полноценную схему USB-Arduino на макетной плате!

Готовность к Arduino


Добавить FT232 USB к последовательной плате

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

Подключите VCCIO коммутационной платы к источнику питания, а GND к земле.


Распиновка прорыва Sparkfun FT232

Любопытно, какие контакты у коммутационной платы SparkFun FT232, просто переверните ее! В этой ситуации мы будем использовать VCC (для подачи 5 В от порта USB на вашу плату), GND, TXD и RXD.


Подключение TX и RX

Теперь пришло время подключить коммутационную плату USB к последовательному порту с вашей новой установкой Arduino. Подключите RX (контакт 2) вашего чипа Atmega к TX платы USB с последовательным интерфейсом и подключите TX (контакт 3) вашего чипа Atmega к RX USB на плате последовательного интерфейса.

И вот он ... готов к подключению, включению и программированию!

Но подождите, есть еще один шаг, верно? Если вы вытащили свой чип Atmega из своего Arduino, он, скорее всего, был запрограммирован вами несколько раз, поэтому он определенно загружался, поэтому вам не нужно продвигаться дальше в этом руководстве.

Однако, если вы приобрели дополнительные чипы Atmega328 или Atmega168 в интернет-магазине, они НЕ были загружены с загрузчиком Arduino (за исключением Adafruit Industries).Что это значит? Вы не сможете запрограммировать свои чипы, используя плату USB для последовательного подключения и программное обеспечение Arduino. Итак, чтобы ваши новые чипы были полезны для Arduino, вы ДОЛЖНЫ загрузить их и ДОЛЖНЫ проверить шаг 4.

Другие варианты макетных плат

Установка uDuino от Tymn Twillman
Эта конфигурация аналогична приведенной выше, но хитрость заключается в том, что на чип Atmega загружается загрузчик Arduino Lilypad. Lilypad работает с использованием внутренних часов вместо внешних, что устраняет необходимость в большей части вспомогательных схем.

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

Загрузка ваших чипов ДОПОЛНИТЕЛЬНО

Параметры загрузки

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

  • Загрузка вашего чипа Atmega с помощью платы Arduino и программатора AVR
  • Загрузка вашего чипа Atmega на свежеприготовленный макет с помощью программатора AVR

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


AVRISP MKII
USBtinyISP
ArduinoISP


AVRISP mkII можно приобрести в Digikey (номер по каталогу ATAVRISP2-ND), в то время как USBtinyISP необходимо собрать, и его можно найти в Adafruit Industries.Документацию и ссылки на магазин Arduino и список дистрибьюторов можно найти на странице продукта ArduinoISP.

Использование платы Arduino

Загрузочная загрузка на плате Arduino

Поместите микросхему Atmega в плату Arduino так, чтобы выемка микросхемы была обращена наружу. Установите перемычку на внешний источник питания и подключите блок питания 12 В (ваша плата должна иметь внешнее питание при использовании AVR ISP mkII, но не требуется с AVRtinyISP). Затем прикрепите 6-контактный гнездовой штекер программатора AVR к 6-ти штыревым контактам ICSP так, чтобы пластиковый выступ головки ленточного кабеля был направлен внутрь.

ПРИМЕЧАНИЕ: AVR ISP mkII загорается зеленым светом, когда они правильно подключены и готовы к программированию. Светодиод становится красным, если он подключен неправильно.

Использование макета

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

При загрузке микросхемы Atmega на макетную плату адаптер программирования AVR (SKU BOB-08508) от Sparkfun невероятно удобен. Этот адаптер заменяет 6 контактов программатора на 6 встроенных контактов для легкого крепления к макетной плате. Все контакты также промаркированы, что упрощает подключение к микросхеме.


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

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


6-контактная кабельная головка программатора AVR

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


Добавить мощность и землю

Начнем!

С макетной платой, которую вы подготовили выше, добавьте два провода для питания и заземления для вашего программатора AVR.


Подключите адаптер AVR

Теперь подключите адаптер программирования AVR к макету так, чтобы контакт GND совпадал с проводом заземления, который вы только что проложили, а контакт 5V - с проводом питания, который вы только что проложили.


Добавьте провода MISO, SCK, RESET и MOSI

На этом этапе вам нужно будет добавить последние четыре провода, необходимые программисту AVR для правильной загрузки.Обязательно обратитесь к схеме контактов Arduino, чтобы узнать, как это сделать.

  • Контакт MISO вашего адаптера будет подключаться к контакту 18 или цифровому контакту 12 Arduino вашего чипа Atmega.
  • Контакт SCK вашего адаптера будет подключаться к контакту 19 или цифровому контакту Arduino 13 вашего чипа Atmega.
  • Контакт RESET адаптера перейдет к контакту 1 микросхемы Atmega.
  • Вывод MOSI вашего адаптера будет переходить к выводу 17 или цифровому выводу 11 Arduino вашего чипа Atmega.

Подключите кабель USB и кабель программирования AVR.

Почти готово! Просто подключите кабель USB к коммутационной плате USB и подключите 6-контактный штекер программатора AVR к адаптеру программирования AVR.Черный выступ 6-контактной головки должен быть направлен вверх в сторону микросхемы Atmega. На следующем шаге мы покажем, что вам нужно использовать программное обеспечение Arduino для записи загрузчика!

Пора гореть!

Выберите тип платы

Запустите Arduino, затем перейдите в «Инструменты» и «Плата». Выбор типа платы, которую вы хотите использовать, повлияет на то, какой загрузчик вы поместите на свой чип. Чаще всего вы будете использовать Diecimilia или самую последнюю версию Arduino для Atmega PDIP, однако, если вы хотите загрузить Arduino Lilypad, Arduino Mini, Arduino Nano или любую из более старых версий Arduino, выберите подходящую плату. .


Выберите своего программиста. Гореть!

Затем перейдите в «Инструменты» и «Записать загрузчик» и выберите программатор, который вы будете использовать.


Горение

После того, как вы выберете свой программатор, программатор AVR начнет загрузку вашего чипа Atmega, и в строке состояния появится сообщение «Запись загрузчика на плату ввода-вывода (это может занять минуту) .