Site Loader

Содержание

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

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

Блок питания 0…30 В / 3A

Набор для сборки регулируемого блока питания…

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

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

Цифровой мультиметр AN8009

Большой ЖК-дисплей с подсветкой, 9999 отсчетов, измерение TrueRMS…

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

   Программатор выполнен на основе драйвера от Objective Development и полностью совместим по командам с оригинальным программатором AVR910 от ATMEL. Описание устройства. Предохранитель защищает линий питания порта USB от случайного замыкания по цепям питания программатора. Диоды VD1, VD2 впрямительные кремниевые, они предназначены для понижения питания микроконтроллера до 3,6 В. Согласно документации, контроллер может работать при таком напряжении питания до частоты чуть более 14 МГц. Светодиоды VL1 («

RD”), VL2 («WR”) сигнализируют о текущих действиях программатора и обозначают режимы чтения и записи. Светодиод VL3 («PWR”) показывает подачу питания на программатор.

   Джампер J1 – (MODify) служит для начального программирования управляющего МК программатора. При его замыкании, к разъему ISP подключается внешний программатор и производится загрузка в МК управляющей программы. После программирования управляющего МК программатора этот джампер необходимо разомкнуть и замкнуть джампер J2 — NORMal. 

   Джампер J3 LOW SCK понижает тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом — пониженная. Переключать джампер можно на ходу, так как управляющая программа МК программатора проверяет состояние линии PB0 при каждом обращении к порту SPI. Не рекомендуется переключать джампер при запущенном процессе записи/чтения программируемого МК, т.к., скорее всего, это приведет к искажению записываемых/читаемых данных. Джампер J3 введен для возможности программирования МК AVR, тактируемых от внутреннего генератора 128 кГц. 

   Резисторы R10 — R14 предназначены для согласования уровней сигналов микроконтроллера программатора и внешних цепей (программируемый МК или другой программатор). Тактовая частота порта SPI МК программатора при разомкнутом джампере J3 равна 187,5 кГц. Это позволяет программировать контроллеры с тактовой частотой примерно от 570 кГц для ATtiny/ATmega, 750 кГц для 90S и 7,5 МГц для 89S. Контроллеры программируются от 10 до 30 секунд (при использовании утилиты AVRProg v.1.4 из пакета AVR Studio) вместе с верификацией в зависимости от объема FLASH памяти и тактовой частоты. 

   На вывод LED разъема ISP выведен меандр с частотой 1 МГц для «оживления» МК, у которых были ошибочно запрограммированы фьюз-биты, отвечающие за тактирование. Сигнал генерируется постоянно и не зависит от режима работы программатора. Программатор тестировался с программами AVRProg v.1.4 (входит в пакет AVRStudio), ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP (ATMEL AVR Open Source Programmer). Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в «0») биты SPIEN, CKOPT, SUT0 и BODEN. Обычно микроконтроллеры , идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Остальные биты должны быть незапрограммированные (установлены в «1»). 

   Инструкция по установке и работе. Прошить контроллер. Подключить свежеиспеченный программатор к компьютеру через USB. Операционная система найдет новое устройство – AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к inf-файлу, в зависимости от установленной на вашем компьютере операционной системы. 

   На форуме находятся все файлы, а также печатная плата для нашего программатора avr. Здесь покажу технологию сборки USB программатора AVR и упаковки в корпус. Для начала скачиваем архив и делаем печатную плату.

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

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

   Если нет специальной измерительной аппаратуры, можно произвести проверку при помощи светодиода. Светодиод подключается анодом к контакту LED, катодом к любому контакту GND ISP-разъема. При подаче питания светодиод должен светится в «полнакала». При замыкании пинцетом ножек кварцевого генератора светодиод должен либо засветится в «полный накал», либо свечение должно отсутствовать. 

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

   Форум по usb программатору

   Форум по обсуждению материала ПРОГРАММАТОР AVR USB

Изготовление и настройка программатора USBASP SW19.ru

Здравствуйте, уважаемые коллеги SW19 и просто те, кому интересна электроника. 
Эта статья будет посвящена изготовлению программатора USBASP своими руками. Собрать его решил просто из спортивного интереса, так как детали давно лежали и заняться было не чем. Он предназначен для прошивки микроконтроллеров фирмы Atmel. Схема проста, как 3 копейки и требует только внимательности и аккуратности. Я не стал мудрствовать  и нашёл схему в интернете: 

  

По ней и будем собирать наш программатор. 
Там же брал и все файлы для изготовления программатора. Продолжим дальше.  Использовать будем микроконтроллер (далее МК) Atmega8 – 16PU, можно Atmega8A. 


  

Печатную плату я переделал под корпус, который был в наличии у меня. Заказывал его на Али. 
Вот ссылка, где брал:  http://ru.aliexpress.com/item/New-Plastic-Electronic-Project-Box-100x60x… 
Изготавливать печатную плату будем по технологии ЛУТ. Что это такое описывать тут не буду, так как в интернете полно статей на эту тему. Переносим рисунок печатной платы на текстолит. 
У меня получилось как- то так: 

Травим наше творение в хлорном железе:

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

Получаем такой результат:

Сверлим отверстия. Я сверлил моторчиком  с латунной цангой. Тоже брал с Али. Кому интересно, вот ссылка на сей девайс: 
http://ru.aliexpress.com/item/12V-Motor-0-5-3mm-Small-Electric-Drill-Bit…

Потом лудим обычным паяльником, предварительно покрыв нашу плату ЛТИ-120. 

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

Список деталей для нашего программатора: 



















МК   Atmega8 – 16PU1шт.
Панелька под МК DIP 281шт.
Кварцевый резонатор на 12 Мгц1шт.
Стабилитрон BZV85C3V6(1N4729A)2шт.
Резистор 10 Ком1шт.
Резистор 68 ом2шт.
Резистор 390ом2шт.
Резистор 270 Ком1шт.
Резистор 1,5 Ком1шт.
Конденсатор 18 пф2шт.
Конденсатор 100 нф1шт.
Конденсатор 10 мкф 16в1шт.
USB разъём  USBB-1J 1шт.
Разъём ISP  10 штырей1шт.
Джампер3шт.
Светодиод красный1шт.
Светодиод зелёный1шт.

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

Далее по возрастающей. Последними запаиваем разъёмы, панельку под МК, светодиоды, кварцевый резонатор.

В итоге получаем вот такой вот вид: 

Теперь прошьём наш МК. Мой компьютер не имеет LPT и COM портов, поэтому будем прошивать USB программатором. В моём случае это TL866CS, брат-близнец  нашего WizardProg 87. Брал его тоже на Али, но ссылка, к сожалению не сохранилась. 

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

Выбираем наш МК из списка. В данном случае это Atmega8A. 

Нажимаем на кнопочку «Размещение ИМС», для того, чтобы посмотреть, как установить наш МК в панель программатора: 

И устанавливаем наш микроконтроллер: 

Выбираем прошивку, которую будем записывать в память МК: 

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

Будьте внимательны при настройке фьюзов! В разных программаторах они могут быть инверсными! Это значит, что там где у меня стоит галочка, в Вашем может её и не быть! Это важно! Неправильная настройка фьюзов может привести к полному залочиванию МК! 
Далее прошиваем нашу Atmega8 – 16PU. 

Проверяем наш МК программатором на наличие ошибок после записи прошивки, так называемая варификация: 

Всё успешно прошилось. 

Теперь собираем наш программатор и проверяем. Подключаем его к ПК через кабель USB. 
Ставим драйвера.

У меня всё получилось с первого раза. Далее собираем всё в корпус. Где его взять – написано в самом начале статьи. И оформляем, чтобы было понятно, что куда подключать. 

Вид готового программатора, подключённого к ПК.

Ну вот и всё на сегодня, надеюсь было интересно и полезно. Желаю всем удачи в ремонтах и спасибо за внимание!!!
  
  
  
 

Универсальный usb программатор мк своими руками. Программаторы микроконтроллеров AVR. Собрать COM программатор не составит труда

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

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

Внимание! Несмотря на то, что складывается впечатление, что этот проект — для новичков, ничего подобного – проект довольно сложный! Имейте ввиду.

Конструкция

Мощность того блока питания, который я вытащил из-под кровати – 250Вт. Если я сделаю БП 5В/10А, то пропадает драгоценная моща! Не дело! Подымем напряжение до 25В, может сгодится, к примеру, для зарядки аккумуляторов – там нужно напряжение порядка 15В.

Для дальнейших действий нужно сначала найти схему на исходный блок. В принципе, все схемы БП известны и гуглятся. Что именно нужно гуглить – написано на плате.

Мне мою схему подкинул друг. Вот она. (Откроется в новом окне)

Да-да, нам придется лазить во всех этих кишках. В этом нам поможет даташит на TL494

Итак, первое, что нам нужно сделать – проверить, какое максимальное напряжение может выдать блок питания по шинам +12 и +5 вольт. Для этого удаляем предусмотрительно помещенную производителем перемычку обратной связи.

Резисторы R49-R51 подтянут плюсовой вход компаратора к земле. И, вуаля, у нас на выходе – максимальное напряжение.

Пытаемся стартовать блок питания. Ага, без компьютера не стартует. Дело в том, что его нужно включить, соединив вывод PS_ON с землей. PS_ON обычно подписан на плате, и он нам еще понадобится, поэтому не будем его вырезать. А вот непонятную схему на Q10, Q9 и Q8 отключим – она использует выходные напряжение и, после их вырезания не даст нашему БП запуститься. Мягкий старт у нас будет работать на резисторах R59, R60 и конденсаторе C28.

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

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

Итак, подучилось по +12В – 24В, а по +5В – 9.6В. Похоже, запас по напряжению ровно в 2 раза. Ну и прекрасно! Ограничим выходное напряжение нашего БП на уровне 20В, а выходной ток – на уровне 10А. Таким образом, получаем максимум 200Вт мощи.

С параметрами, вроде бы, определились.

Теперь нужно сделать управляющую электронику. Жестяной корпус БП меня не удовлетворил(и, как оказалось, зря) – он так и норовит поцарапать что-то, да еще и соединен с землей (это помешает мерить ток дешевыми операционниками).

В качестве корпуса, я выбрал Z-2W, конторы Maszczyk

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

После корпуса я сел за Corel Draw и прикинул, как должна выглядеть передняя панель:

Электроника

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

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

Фальш-панель :

На ней индикаторы, потенциометры, светодиод. Для того, чтобы не тащить кучу проводов к 7-сегментникам, я использовал сдвиговые регистры 74AC164. Почему AC, а не HC ? У HC максимальный суммарный ток всех ножек – 50мА, а у AC – по 25мА на каждую ножку. Ток индикаторов я выбрал 20мА, тоесть 74HC164 точно бы не хватило по току.

Управляющая электроника – тут все слегка посложнее.

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

Если кратко, то – U1A – диф. усилитель тока. При максимальном тока, на выходе получается 2.56В, что совпадает с опорным у АЦП контроллера.

U1B – собственно токовый компаратор – если ток превышает порог, заданный резисторами, tl494 “затыкается”

U2A – индикатор того, что БП работает в режиме ограничения тока.

U2B – компаратор напряжения.

U3A, U3B – повторители с переменников. Дело в том, что переменники относительно высокоомные, да еще и сопротивление их меняется. Это значительно усложнит компенсацию обратной связи. А вот если их привести к одному сопротивлению, то все становится значительно проще.

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

Контроллер работает на 8МГц от RC генератора (нужно поставить соответствующие фюзы)

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

Переделка выходной части

Выбрасываем все лишнее. Схема получается такой (кликабельно):

Синфазный дроссель я немного переделал – соединил последовательно обмотку которая для 12В и две обмотки для 5в, в итоге получилось около 100мкГн, что дофига. Еще я заменил конденсатор тремя включенными параллельно 1000мкФ/25В

После модификации, выход выглядит так:

Настройка

Запускаем. Офигиваем от количества шума!

300мВ! Пачки, похоже на возбуждение обратной связи. Тормозим ОС до предела, пачки не исчезают. Значит, дело не в ОС

Долго тыкавшись, я нашел, что причина такого шума – провод! О_о Простой двужильный двухметровый провод! Если подключить осциллограф до него, или включить конденсатор прямо на щуп осциллографа, пульсации уменьшаются до 20мВ! Это явление я толком не могу объяснить. Может, кто-то из вас, поделится? Теперь, понятно что делать – в питающейся схеме должен быть конденсатор, и конденсатор нужно повесить непосредственно на клеммы БП.

Кстати, насчет Y – конденсаторов. Китайцы сэкономили на них и не поставили. Итак, выходное напряжение без Y-конденсаторов

А теперь – с Y конденсатором:

Лучше? Несомненно! Более того, после установки Y – конденсаторов сразу-же перестал глючить измеритель тока!

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

Обратная связь.

Про нее я написал , читайте

Охлаждение

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

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

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

Откуда брать питание для вентилятора? Вот и я долго думал, но таки придумал. tl494 питается от источника напряжением 25В. Берем его (с перемычки J3 на схеме) и понижаем стабилизатором 7812.

Для продуваемости пришлось вырезать крышку под 120мм вентилятор, и прицепить соответствующую решетку, а сам вентилятор поставить на 80мм. Единственное место, где это можно было сделать – это верхняя крышка, а поэтому конструкция получилась очень плохая – с верху может упасть какая-то металлическая хрень и замкнуть внутренние цепи блока питания. Ставлю себе 2 балла. Не стоило уходить от корпуса блока питания! Не повторяйте моих ошибок!

Вентилятор никак не крепится. Его просто прижимает верхняя крышка. Так вот хорошо с размерами я попал.

Результаты

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

Я попытался описать подводные камни, на которые сам нарвался. Надеюсь, вы не повторите их! Удачи!

Рассказать в:
Регулируемый блок питания с компьютерного блока питания АТХ (АТХ- это с дежуркой) Имеется масса информации в интернете о переделке блока питания (БП) от компьютера тип АТ и АТХ. Но я решил выделить наиболее важную информацию и составить совою статью из всего, что нашел в интернете специально для сайта cxema.my1.ru В первую очередь смотрим на качество собранного БП «Китайцами)))». Нормальный БП должен выглядеть примерно так На что стоит обратить внимание, это на высоковольтную часть БП. Там должны стоять сглаживающие конденсаторы и дросселя (Они сглаживают импульсный выброс в сеть), так же на диодный мостик он должен быть не менее 2А и конденсаторы после моста (Я обычно ставлю по 680 мкФ/200В или 330 мкФ/200В исходя из востребованной мощности), если вы хотите получить с БП 300 Вт (30В/10А) то нужно ставить не меньше 600 мкФ. Естественно нужно обратить внимание на силовые ключи Q1-2 и демпферную цепь С8R4. Q1-2 обычно ставим MJE13007- MJE13009 (Есть статьи и о переделке схемы под полевые транзисторы). Демпферная цепь С8R4, я заметил, что при регулировке БП R4 этой цепи сильно греется, решилось подбором С8. Далее переделку БП нужно продолжать с внимательного изучения схемы самого БП (хотя схемы почти одинаковы, но все же стоит) от этого зависит вся последующая работа. Необходимо обратить особое внимание на несколько вещей в изучении схемы: система защиты (4-й вывод ШИМ-контроллера), Система Power Good (ее можно просто убрать), усилитель ошибок по току (15,16,3 выводы ШИМ), усилитель ошибок по напряжению (1,2,3 выводы ШИМ) и также выходная цепь БП (Тут нужно будет переделывать все). Рассмотрим по порядку каждый пункт. Системы защиты (4-й вывод) Схема взята из статьи Голубева drive2.ru
Это типичная схема (Хотя бывают и другие), что тут происходит. При увеличении нагрузки на инверторе свыше допустимой, увеличивается ширина импульсов на среднем выводе развязывающего трансформатора T2. Диод D1 детектирует их, и на конденсаторе C1 увеличивается отрицательное напряжение. Достигнув определённого уровня (примерно -11 В), оно открывает транзистор Q2 через резистор R3. Напряжение +5 В через открытый транзистор поступит на вывод 4 контроллера, и остановит работу его генератора импульсов. Из схемы выпаиваются все диоды и резисторы, подходящие от вторичных выпрямителей к базе Q1, и устанавливается стабилитрон D3 на напряжение 22 В (Или большего напряжения), например, КС522А, и резистор R8. В случае аварийного увеличения напряжения на выходе блока питания выше 22 В, стабилитрон пробьётся и откроет транзистор Q1. Тот в свою очередь откроет транзистор Q2, через который на вывод 4 контроллера поступит напряжение +5 В, и остановит работу его генератора импульсов. Если вам не нужна защита, то можно просто все выпаять и замкнуть вывод 4 на корпус через резистор (схема будет ниже). Система Power Good я обычно ее просто выпаиваю. Усилитель ошибок по току (15,16,3 выводы ШИМ) — это и есть регулировка выходного тока. Но не значит что на этом можно не переживать о защите от КЗ. Усилитель ошибок по напряжению (1,2,3 выводы ШИМ) — Это регулировка выходного напряжения. Об этих двух вещах и пойдет дальше речь т.к. одно из самых главных вещей в этом деле. И так регулировка напряжения. (Тут же схема защиты)
Эта схема составлена без регулировки тока. 14-й вывод ШИМ — это опорное напряжение. А выводы 2,1 это входа ОУ по напряжению. Вся регулировка осуществляется с помощью делителей напряжения. На вывод 2 мы подаём образцовое напряжение с 14-го вывода через делитель R5R6 по 3,3 кОм. Данный делитель рассчитан на напряжение 2,4В. Далее выходное напряжение со вторичной цепи нам нужно подать на первый вывод ШИМ и также через делитель, но уже через переменный. Переменный резистор R1 и постоянный R3. На моем БП вышла регулировка от 2-24 Вольт. Напряжение на выходе зависит еще и от силового трансформатора и выходной цепи, но об этом позже. Вернемся к нашей Шимке, настройка регулировки напряжения на этом не заканчивается. Нам нужно еще обратить внимание на 3 вывод ШИМ, это выход ОУ и ему нужно сделать ООС на 2 ногу для плавной регулировки и убрать шум, треск и прочий не приятный звук трансформатора. У меня она собрана на C4R3 и C1. Хотя за частую хватает и C4R3, но из-за множества разнообразия «китайских делателей», нужно иногда добавлять кондерчик обычно на 1мкф хватает, но иногда доходит и до 5мкф. Цепи C4R3 и C1 нужно подбирать так чтобы не было шума в тр-ре, но если все же он остается, то нужно обратить внимание на дроссель вторичной цепи, бывает нарушение сердечника, но об этом мы еще поговорим. Да о защите, я ее тут убрал и поставил резистор на 2 кОм R4. Теперь о регулировке тока В принципе регулировка тока, это тоже регулировка напряжения. С помощью делителя, но только тут уже изменяется опорное напряжение и идет слежение падения напряжения на амперметре (или шунте). В принципе нечего нового нет относительно регулировки напряжения нет, только С1 нужен обязательно и возможно последовательно ему нужно будет добавить резистор, но это уже зависит от ШИМ и Тр-ра. Общая схема регулировки работоспособна на 100% проверенная практике, если у вас схема не работает стабильно или не совсем правильно значит нужно: 1. Подобрать номиналы под Вашу ШИМ и тр-р, 2. Искать ошибки в сборке и дорабатывать. Опять же повторяюсь на практике показало, что китайские ШИМ и БП в целом реагируют на изменения в схемах по-разному. Все нужно настраивать методом подбора и расчётов. В БП АТХ питание ШИМ и разделительного трансформатора осуществляется с Дежурного питания оно может достегать 25 В и подается в цепь 12 вывода ШИМ. Многие считают что диод во вторичной цепи Силового ТР-РА идущий на 12 вывод нужно убирать. Я считаю, что лучше оставить эту цепь, это дает дополнительную уверенность сохранения силовых ключей при выходе их строя дежурного питания. Теперь о вторичной цепи Наилучшая схема переделки мне показалась С. Голубева (Driver2.ru)
Хотя вентилятор на пяти вольтовую обмотку не повесить, потому что там также будет изменяться напряжение, да и еще не нет обратной связи с ШИМ и поэтому да при нагрузке с током в 0,15А напряжение будет падать ощутимо. Теперь о самой схеме выходного напряжения. Менять распиновку тр-ра и ставить диодный мост нет смысла. Т.к. напряжение увеличиться, а мощность падает. Поэтому я предпочитаю такую схему, да и потом переделок меньше. Выпрямительные диоды D3 должны быть на ток не менее 10 А и обратное напряжение не менее 200 Вольт. Это могут быть STPR1020CT,F12C20.ER1602CT. Диод D4, это и есть (как я называю) вспомогательная цепь питания ШИМ и Защиты Vcc и Vdd. Индуктивность L1 кольцевой при желании можно оставить старый (Если конечно он работает нормально), но я перематываю тем же проводом + провод с пяти вольтовой цепи. Индуктивность L2 обычно оставляю без измерения. Конденсаторы C5C6 не стоит ставить номиналом более 2200 мкф нет смысла. Я обычно ставлю по 1000мкф и хватает вполне. Неполярные С4С7 можно при желании поднять до 1 мкф, но я также не увидел большой разницы. А вот резистор R5 не стоит ставить менее 300 Ом будет просто греться при напряжении более 10 В, но и не более 500 Ом. Этот резистор дает так сказать балансировку БП. Вот собственно и все самое главное в переделке БП. Акцентирую опять же внимание на том, что не все БП легко и просто поддаются переделке и настройке. Поэтому нужно внимательно изучать схему и информацию по переделке. Отдельно в архиве собраны схемы по переделке БП. Раздел:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программатор – это аппаратно-программное устройство, которое служит для считывания или записи информации в запоминающее устройство (внутреннюю микроконтроллеров). В случае если радиолюбителю нужно один раз запрограммировать микроконтроллерное устройство, можно воспользоваться обычным программатором, который подключается к COM- или LPT- порту. Например, самым простым программатором AVR является кабель из 6 и 4 резисторов (программатор PonyProg).

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

Подключаются такие программаторы к компьютеру с помощью специальной программы (которая тоже называется программатором). Она передает с , а устройство только записывает ее в память микросхемы. Программаторы могут подключаться через последовательный или параллельный порт, через USB-разъем и т.д. Современные программаторы подключаются, как правило, через USB.

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

Как подключить USB-программатор?

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

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

Как правило, программатор имеет два интерфейса – один для подключения микроконтроллера, второй для подключения к компьютеру. Для того чтобы подключить микроконтроллер, можно воспользоваться режимом последовательного программирования ISP. А к компьютеру данное устройство подключается через стандартный USB-разъем.

Для управления программатором нужно устанавливать специальные программы. Лучше всего пользоваться оконными приложениями. Например, для работы с устройством можно использовать программы ExtremeBurner, Khazama, avrguge и другие.

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

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

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

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

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

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

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


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

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


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

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


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

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


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



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


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


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


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

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

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

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

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

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

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


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

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


При подключении 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качиваний: 1252)

Всем удачи!

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

   Основой этого программатора является микроконтроллер ATTiny45. В качестве тактового генератора контроллера используется генератор системы ФАПЧ частотой 16,5 МГц, что позволило отказаться от применения уже привычного в данных схемах внешнего кварцевого резонатора. Резисторы R2, R3 токоограничительные, работают в паре со стабилитронами VD1, VD2 и служат для защиты компьютера от высокого напряжения (по стандарту не более 3,6 В).

   Стабилитроны могут быть заменены отечественными КС136 либо аналогичными импортными. Резистор R1 указывает компьютеру, что подключенное устройство работает на скорости LS, его номинал может изменяться в диапазоне 1,5 – 2,2 кОм. Резисторы R4-R7 служат для защиты выходов контроллера от короткого замыкания и согласования логических уровней в случае раздельного питания контроллера и программатора, их величина может изменяться от 270 до 560 Ом. Для соединения программатора и компьютера используется пятипиновое гнездо mini-USB (XS1). Это сделано для уменьшения размеров печатной платы, а также исходя из того, что кабель mini-USB имеется практически у каждого. Подключение программатора к программируемому контроллеру осуществляется при помощи 10-контактного разъема XS2, распиновка которого соответствует стандарту STK200/300.

   Программатор AVR собран на плате из фольгированного стеклотекстолита. Внешний вид дорожек платы и расположение деталей на ней показаны на фото. Скачать файл платы в LAY и прошивки МК можно тут. Для тех, кому сложно достать не слишком пока распространенный контроллер ATTiny45, автором была разработана схема на более широко используемом контроллере ATTiny2313.

   Схема отличается от предыдущей только наличием кварцевого резонатора ZQ1, частота которого должна равняться 12 МГц и конденсаторами C1 и C2, емкость которых может изменяться в пределах 18 – 24 пФ. И кроме того, в схеме вместо сложного в распайке гнезда mini-USB применено так называемое «принтерное» гнездо типа USB-B. Печатная плата для данной схемы разработана на обычных деталях, что несколько увеличило ее размеры, но позволило отказаться от сложных для пайки многими радиолюбителями smd-компонентами. 

   После программирования flash-памяти контроллера для ATTiny45 необходимо установить следующие конфигурационные биты: CKSEL3, CKSEL2, CKSEL1 (тактирование от схемы ФАПЧ), BODLEVEL0 (детектор пониженного напряжения на 1,8 В), RSTDSBL (поскольку количество выводов микроконтроллера невелико, то вывод RESET используется в качестве обычного порта ввода-вывода). Для ATTiny2313 необходимо запрограммировать только бит BODLEVEL0, а остальные сбросить.

   Чтоб запрограммировать контроллер в первый раз при отсутствии под рукой самого программатора, можно применить любую схему. Например простейший программатор, именуемый в народе «5 проводков», подключается к LPT-порту компьютера и состоит из всего 4 сопротивлений, но сейчас это порт является скорее архаизмом, чем нормой. Сам автор для первоначальной прошивки использовал программатор, представленный на рис. 7. Он подключается с СОМ-порту компьютера и имеет ряд панелек для установки различных микроконтроллеров, что позволяет с легкостью запрограммировать контроллер перед его монтажом в устройство. Управляется программатор от известной программы PonyProg. Небольшой нюанс. PonyProg не знает ни ATTiny2313, ни ATTiny45, поэтому выберите любой контроллер с объемом памяти не меньше, чем 4 кб, например, ATMega8. При прошивке программатор выдаст ошибку о неверном типе контроллера. Выберите «Ignore» и контроллер все равно будет прошит.

   Кроме того, поскольку прошивка контроллера ведется через интерфейс внутрисхемного программирования SPI, то возможно (и даже желательно для ATTiny45) прошивать его непосредственно в устройстве уже после распайки. Программирование можно осуществлять либо подпайкой к соответствующим выводам контроллеров проводков и дальнейшим их сопряжением с программатором, либо используя разъем XS2.

   При использовании для программирования разъема XS2 необходимо учесть следующий нюанс. При прошивке контроллера он выступает ведомым, и для него вывод MISO является выходом, а MOSI – входом. Когда же контроллер сам выступает в роли программатора, то он сам является ведущим, и входы MISO и MOSI меняются местами.

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

   При программировании контроллера ATTiny2313 сигнал сброса, подводимый к выводу RESET, формируется линией РВ0. В этом случае сигнал сброса от внешнего программатора необходимо подключать непосредственно к выводу RESET контроллера ATTiny2313 (вывод 1), подпаяв к нему дополнительный проводок. Можно обойтись и вовсе без него, но тогда необходимо перед подачей питания на контроллер замкнуть вывод RESET на землю, однако в данном случае возможны сбои, и этот вариант не рекомендуется для повторения.

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

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

   Если же по каким-то причинам автоопределение контроллера дает неверные результаты, то можно установить тип контроллера вручную при помощи выпадающего списка «Ручной выбор контроллера». При этом конфигурационные биты и биты защиты устанавливаются по умолчанию для данного типа контроллера, поэтому стоит быть внимательным, чтобы не ошибиться. Следует заметить, что номенклатура поддерживаемых контроллеров несколько отличается от таковой у программатора AVRDUDE [8]. Во-первых, MICROPROG не поддерживает контроллеры семейства Classic и контроллеры с объемом памяти больше 128 кБ. Во-вторых, им поддерживаются новые чипы, еще не включенные в список AVRDUDE. Кроме того, этот список будет постоянно обновляться автором по мере выхода новых контроллеров.

   Следующая, и одна из наиболее полезных особенностей данного программатора – это программное изменение частоты тактовых импульсов SCK. При этом имеется на выбор 5 фиксированных частот (1 МГц, 250 кГц, 50 кГц, 10 кГц, 2 кГц). Выбор частоты осуществляется из выпадающего списка «Частота тактового сигнала». По умолчанию при подключении программатора у него всегда устанавливается частота 1 МГц, поэтому будьте внимательны: если подключенный контроллер не определяется устройством, возможно, что для него установлена слишком высокая частота импульсов SCK. Попробуйте снизить ее и повторить попытку.

   Возможно, у кого-то возникнет вопрос, зачем нужна столь низкая частота, как 2 кГц. Автор однажды столкнулся со следующей проблемой. При тактировании контроллера ATtiny13 внутренним генератором частотой 128 кГц и запрограммированном фьюзе CKDIV8 реальная тактовая частота контроллера установилась на уровне 16 кГц. При этом как следует из инструкции к контроллерам AVR, частота импульсов SCK должна быть меньше тактовой как минимум в 2,5 раза, то есть на уровне 6 кГц. Минимальная же частота импульсов SCK для того же программатора USBasp составляет 8 кГц, чего как оказалось, недостаточно. Таким образом, абсолютно рабочий контроллер оказался негодным к употреблению, пока не был создан программатор MICROPROG, который таки смог вернуть его к жизни. Но вернемся к описанию.

   В поле «Идентификатор» указывается трехбайтовый шестнадцатеричный код, уникальный для каждого типа контроллера. Это поле доступно только для чтения.

   В поле «Калибровочные ячейки» указываются значения, занесенные заводом-изготовителем при калибровке внутреннего RC-генератора контроллера. Количество значений зависит от количества фиксированных тактовых частот микроконтроллера (для ATTiny13 таких значений два – для 4,8 МГц и для 9,6 МГц). Это поле также доступно только для чтения.

   В блоке «Конфигурационные ячейки» задаются конфигурационные биты, или фьюзы. Всего в микроконтроллерах AVR имеется три конфигурационных байта – старший (High Fuse, HF), младший (Low Fuse, LF) и дополнительный (Extended Fuse, EF). В представленной программе имеется двойная возможность задавать значения этих байтов.

 1. Побитно, устанавливая или снимая флажки с соответствующих битов (важно помнить, что установленный флажок сбрасывает соответствующий бит в 0)

 2. Побайтно, задавая сразу значение всего конфигурационного байта в правой части окна программы. Значение байта задается в шестнадцатеричном коде.

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

   Кнопка «Чтение» позволяет считать фьюзы из контроллера. Кнопка «Запись» – записать выбранные в программе фьюзы в контроллер. Кнопка «Верификация» сравнивает выбранные в программе фьюзы с теми, которые записаны в контроллер. Кнопка «По умолчанию» устанавливает фьюзы по умолчанию для данного типа контроллера согласно инструкции (при этом биты устанавливаются только в программе, для их записи в контроллер необходимо воспользоваться кнопкой «Запись»).

   В блоке «Ячейка защиты» задаются биты защиты. Их установка позволяет защитить программный код от несанкционированного чтения или записи. Все компоненты этого поля аналогичны таковым для блока «Конфигурационные ячейки».

   В блоке «Программирование» осуществляются операции с flash- и eeprom-памятью контроллера. Кнопка «Стирание кристалла» предназначена для стирания всех областей памяти, включая биты защиты, flash и eeprom (последняя не стирается при установленном бите EESAVE). При этом конфигурационные ячейки остаются без изменения.

   Под кнопкой расположено два почти идентичных подблока «Программирование FLASH» и «Программирование EEPROM». По нажатию на кнопку «Файл НЕХ» открывается диалоговое окно выбора файла с расширением *.hex. Имя выбранного файла и путь к нему отображаются в поле справа от кнопки. При этом поле является редактируемым, то есть путь можно прописать и вручную. 

   Кнопка «Чтение» позволяет считать flash-память контроллера в выбранный HEX-файл. По окончанию считывания на экране появится соответствующее сообщение. При этом в поле выбора файла можно указать имя несуществующего файла – он будет автоматически создан.

   Кнопка «Запись» позволяет записать выбранный HEX-файл в flash-память контроллера. По окончанию программирования на экране появится соответствующее сообщение. ВАЖНО!!! Перед выполнением команды «Запись Flash» автоматически осуществляется выполнение команды «Стирание кристалла».

   Кнопка «Верификация» позволяет сверить выбранный HEX-файл с содержимым flash-памяти микроконтроллера. По окончании процесса на экране появится сообщение об успешной верификации или об ошибке. Ошибка может быть вызвана установленными битами защиты или неверно выбранным для верификации файлом.

   Назначение кнопок с идентичными названиями в подблоке «Программирование EERPOM» аналогично таковым для подблока «Программирование FLASH» за исключением того, что все операции здесь относятся к области eeprom-памяти, а файлы имеют расширение *.eep. Автор: Сокол Сергей, Радио 2-2012.

   Форум по программаторам

Программатор USBasp для AVR контроллеров Arduino

USBasp S51&AVR — простой внутрисхемный USB-программатор для контроллеров серии S51 фирмы Atmel: AT89S51, AT89S52, AT89S53, AT89S8252.

 

У любителей Arduino приборчик USBasp тоже пользуется спросом, так как может загружать скетчи и прошивать ядро микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM, а также без проблем работает с программным обеспечением Arduino IDE.

 

Мозгом загрузчика USBasp служит микроконтроллер ATmega8. Так же есть варианты с ATmega88 или ATmega48. Собран он из минимума деталей, USB контроллер не нужен, поскольку имеется программный USB-драйвер.

Возможности программатора USBasp

 

  1. Совместим с Windows, Linux и Mac OS X.
  2. Поддержка контроллеров S51 и AVR.
  3. Питание от USB порта +5В, дополнительное не требуется.
  4. Прошивка контроллеров работающих от 5 или 3.3 В.
  5. Скорость передачи до 5 Кбайт/сек.
  6. Переключение SCK-джампером для прошивки низкоскоростных чипов < 1.5МГц.
  7. Сбрасываемый предохранитель от короткого замыкания.
  8. Стандартный IDC 10PIN интерфейс.

 

Драйвер к программатору USBasp

Windows USBasp-win-driver-x86-x64-ia64-v1.2.4

 

Программное обеспечение для USBasp

 

  • BASCOM-AVR — среда разработки, начиная с версии 1.11.9.6.поддерживает USBasp.
  • AVRDUDE 6.1 — консольная программа, начиная с версии 5.2 поддерживает USBasp.
  • Khazama AVR Programmer v1.7 — имеет графическую оболочку, совместима с Windows XP и Vista.
  • eXtreme Burner AVR 1.3 Beta — графическая оболочка.
  • Arduino IDE 1.0.6
Самодельный USBasp

 

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

 

Для самоделки можно выбрать управляющий микроконтроллер ATmega8, ATmega48 или ATvega88, но только без всяких индексов L, PU. Так как нам потребуется рабочая частота свыше 8 Мгц.

 

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

Устройство, собранное по этой схеме предназначено только для программирования 5-вольтовых контроллеров!

 

Красный светодиод показывает, что устройство подключено к USB-питанию.

Зеленый светодиод мигает, когда идет обращение к прошиваемому микроконтроллеру.

 

Элементы для сборки USBasp:

  • R1, R2 — 68 Ом;
  • R3 — 2.2 кОм;
  • R4, R5, R7 — 1 кОм;
  • R6 — 10 кОм;
  • C1 — электролит на 4.7 мкФ;
  • С3 — керамический конденсатор 100 нФ;
  • C4, C5 — керамические, неполярные конденсаторы 22пФ;
  • LED1 — красный светодиод на 20мА;
  • LED2 — зеленый светодиод на 20мА;
  • D1, D2 — стабилитроны на 3,6В;
  • IC1 — микроконтроллер ATmega8, ATmega48, ATmega88, без индексов L, PU;
  • Q1 — кварц 12 МГц, корпус HC49-S;
  • X1 — разъем USB, тип B;
  • X2 — разъем IDC-10;

 

Уставки джамперов

 

J1 — питание от USB-гнезда, либо внешнего источника.

J2 — установленная перемычка позволяет перепрошивать программатор.

J3 — установленная перемычка снижает частоту SCK синхросигнала с 375 кГц до 8 кГц для прошивки низкоскоростных чипов < 1.5 МГц.

 

Джампер J1 следует снимать при первом подключении к ПК собранного и прошитого программатора, поскольку компьютер должен определить новое устройство и установить драйвер для него.

 

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

 

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

 

Для работы программатора потребуется на Windows установить драйвер. Последнюю версию которого можно найти на сайте USBasp.

 

На операционные системы Linux и MacOS драйвер не требуется.

Вставьте собранный программатор в гнездо USB. Операционная система найдет новое оборудование и предложит установить драйвер для него. Выберите пункт: «Установка из указанного места», найдите папку со скачанным драйвером. Начните установку драйвера на Windows.

 

Прошивка самодельного USBasp

 

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

 

Запускайте программное обеспечение, например, AVRDUDE и не забудьте проверить правильность установки джампера J2.

Загружайте прошивку:
«bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex»
«bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex».

 

Для работы от внешнего кварца необходимо будет выставить фьюзы:

# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff

 

Воспользуйтесь для вставки фьюзов прогой Makefile с функцией «make fuses».

 

Печатная плата

 

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

Или сделайте свою трассировку печатной платы под установленный лично DIP переключатель вместо отдельных джамперов.

 

Программирование в Khazama

 

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


1 — загрузить в буфер прошивку для Flash памяти.
2 — загрузить в буфер прошивку для EPROM памяти.
3 — записать прошивку во Flash память.
4 — записать прошивку в EPROM память.
5 — прочитать Flash память.
6 — прочитать EPROM память.
7 — стереть микрочип.
8 — установить FUSE и LOCK биты.
9 — установить поверх всех окон.
В меню есть удобная кнопка Auto Program.

 

В Command > Program Options можно изменять настройки программки. В частности, можно задать набор операций, которые будут выполняться при нажатии на Auto Program. По умолчанию установлено стирание чипа и запись во флэш-память. Также можно выбрать запись в EEPROM, добавить верификацию (проверку записанных данных).

 

Программирование Flash памяти

 

Программирование EEPROM памяти

 

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

 

С помощью Khazama также удобно выставлять FUSE биты.

 

Автор: Виталий Петрович. Украина Лисичанск.


 

 

 

Arduino USB своими руками (DIY). Системный интегратор Самодельная ардуино на atmega8

Добрый день. С появлением Arduino робототехника, автоматизация и другие радиопродукты стали для нас более доступными. Раньше было сложно представить, что с такой простотой можно было писать прошивки для микроконтроллеров, с появлением arduino робототехникой могут заниматься даже дети. Простота платформы arduino позволяет забыть о побитовых операциях и регистрах avr, которые использовались повсеместно.Но поскольку платформа универсальна, микроконтроллер универсален. Например, atmel atmega328p предоставляется в arduino uno, что не требуется для простой обработки нажатий кнопок, и если вы сделаете партию устройств сразу, вам придется платить за неиспользованную мощность.

Но поскольку arduino ide распространяется бесплатно, любой может легко писать надстройки и библиотеки, часто они могут быть очень полезными. В этой статье пойдет речь о библиотеке плат на базе ATmega8, ATmega48, ATmega88, ATmega168 под названием Mini Core. Эта библиотека позволит вам писать скетчи arduino для более слабых микроконтроллеров, чем atmega328p, и это позволяет снизить стоимость устройства за счет рационального использования мощности.

Почему эти микроконтроллеры:

  1. Эти микроконтроллеры имеют одинаковые контакты и архитектуру и имеют минимальные отличия от atmega328p (заменяемые)
  2. Они дешевы и популярны (некоторые дешевле доллара)
  3. Все они имеют пакеты DIP и TQFP .

Эта библиотека поддерживает все индексы микросхем, кроме PB (т.е.е. A, P, PA), например, вам не следует использовать ATMEGA168PB-AU.

Микросхемы по характеристикам:

Atmeg328 atmega168 atmega88 atmega48 atmega8
Flash 32 кб 16 кб 8 кб 4 кб 8 кб
RAM 2 кб 1 кб 1 кб 512 b 1 кб
ПЗУ 1 кб 512 b 512 b 256 b 512 b
ШИМ каналов 6 6 6 6 3

Пора переходить от теории к практике, установить Mini Core, для установки нужна Arduino IDE версии 1.6.4 и выше. Если у вас нет Arduino или он старше, скачайте его из офиса. Сайт.

1. Для установки выполните следующие действия:

2. Запустите Arduino IDE

3. Откройте меню «Файл» ⇒ «Настройки».

4. После вышеуказанных операций закройте настройки и перейдите в меню. Откройте меню «Инструменты» ⇒ «Плата:« ……… »« ⇒ «Диспетчер плат …».

5. В менеджере досок выберите нашу библиотеку и нажмите «установить»:

Note … Если вы используете Arduino IDE 1.6.6, вам может потребоваться закрыть менеджер платы, а затем снова открыть его.

После установки в меню «Инструменты» ⇒ «Плата:« ……… »» появятся опции для плат с нашими микроконтроллерами.

Самый удобный вариант использования этих микроконтроллеров — взять arduino uno с микросхемой в дип-корпусе и заменить на нужный. Также можно собрать плату простой обвязкой:

Для тех кому нужна распиновка микросхем фото ниже:

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

Настройки тактовой частоты:

  • Внешний генератор 16 МГц (по умолчанию)
  • Внешний генератор 20 МГц
  • Внешний генератор 18,432 МГц *
  • Внешний генератор 12 МГц
  • Внешний генератор 8 МГц
  • Внутренний генератор 8 МГц **
  • Встроенный генератор, 1 МГц

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

  • У моего ноутбука нет COM-порта, поэтому версия с COM-портом мне не подходит
  • Версия USB использует очень дорогой FT232R IC

Ну вот, однажды я наткнулся на статью на Хабре, где использовали преобразователь AVR вместо FT232R (там схемы нет), а также аналогичную реализацию на Zelectro, но на микроконтроллере Atmega8. Последний был сделан на базе японского проекта. Это то, что вдохновило меня на создание собственной реализации Arduino.

И так, если зайти на сайт AVR-CDC и посмотреть последние изменения (в архиве с прошивкой, на сайте информации нет) то там реализованы линии Rx Tx, как и DTR, CTS, RTS не только на относительно дорогом ATMega8, но и на дешевом AtTiny2313. Последние строчки работают только на кварце на 16 или 20 МГц. Именно на основе этого чипа я решил построить преобразователь USB — UART.

  • AtTiny2313 прошивка для кварца 16 МГц —
  • USB-драйвер —
  • Биты предохранителя — H Предохранитель: CD; L Предохранитель: FF

Часть Arduino была взята с официального сайта с небольшими изменениями или без них.

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

Для работы программатора AVR910 в файле конфигурации программатора .. \ Arduino \ arduino-1.0.6 \ hardware \ arduino \ programmers.txt добавьте следующие строки:

Avr910.name = avr910 avr910.protocol = avr910 avr910 .communication = серийный avr910.speed = 115200

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

Ниже фото этой Ардуино в сборке от Павла!

Самодельный USB Arduino с программатором

Ну а теперь пора самому освоить платформу duino. Для начала разберемся, что нам может понадобиться. Для начала неплохо бы определиться, на каком основании мы будем делать свою копию отладочной платы.Чтобы упростить начальную задачу, я предлагаю использовать TTL-адаптер USB to (UART) для загрузки эскизов. Это в разы упростит нашу жизнь. Я лично буду использовать дешевый адаптер, заказанный в уже не существующем интернет-магазине, но все еще работающий.

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

Для ознакомления на официальном сайте найдем схемы различных платформ:

На мой взгляд схемы хорошие, но неплохо было бы посмотреть на уже проверенные реализации «самоделок», мне очень понравились 3 варианта:

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

Собственно сам МК atmega328P (в моем случае хотя 168 и 8 можно использовать)

Кварц 16 МГц

Конденсатор 22 пФ x 2

Резистор 10к

Кнопка сброса (любой, кстати, необязательный элемент)

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

Ну давайте разберемся, зачем нужны эти элементы.Кнопка позволяет перезапустить микроконтроллер, резистор R1 является подтягивающим резистором для кнопки. Кварц, C1 и C2 — внешние часы для контроллера.

Это необходимая и достаточная обвязка, но лично настоятельно рекомендую установить керамический конденсатор емкостью 100 нФ параллельно основному источнику питания микросхемы.

Что ж, наш минималистичный Duino готов. Чтобы упростить использование этого средства отладки, предлагаю наклеить на корпус наконечник с распиновкой «atmega».Моя версия реализована в Corel Draw:

Для начала построим схему нашего Duino на беспаечной макетной плате, вот что у меня получилось:

Для загрузки скетчей мы будем использовать переходник USB — TTL, в на фото мой уже изрядно потрепанный переходник на чипе CP2102:

Но перед загрузкой скетчей необходимо залить загрузчик в МК, иначе он не «поймет», что мы от него хотим. Способов масса, но мы воспользуемся самым простым.Воспользовавшись замечательным программатором USBasp:

Для начала подключим наш Duino к программатору, это очень просто, достаточно подключить контакты программатора к Duino:

GND — масса (22 фута)

MOSI — MOSI (d11)

5V — блок питания «+» (7 ножка)

Затем Arduino IDE -> Сервис -> «Запись загрузчика»:

В процессе записи загрузчика придется подождать около 2 минут. После этого мы можем получить различные «предупреждения» типа «не удается установить период SCK» — не пугайтесь и двигайтесь дальше.

Что ж, вот и мы готовы написать тестовый скетч «Blink» в нашем новоиспеченном Duino, но есть один момент, на котором я хотел бы остановиться. Как мы уже говорили, для записи скетчей используется последовательный порт, но в «обычной» жизни МК это цифровые порты 0 и 1. Все очень просто, загрузчик мы уже залили, он инициализирует запись новая прошивка при ее включении на несколько секунд, после этого Duino запускает выполнение программы, которая записана в его памяти.

Чтобы перевести Дуино в режим «прием», нужно перезапустить МК, для этого мы сделали специальную кнопку, но нажимать ее нужно строго в определенный момент, это нам совсем не подходит. К счастью, у адаптеров есть специальный вывод «RST», который вам просто нужно подключить к одной ноге МК, чтобы автоматически перезагрузить Duino перед загрузкой скетча. Подключение очень простое, (переходник — Duino):

GND — масса (22 фута)

RXD — подключение к TXD (3 ноги)

TXD — подключение к KXD (2 ноги)

5V — блок питания «+» (7 ножка)

Как видите, контакты приема / передачи соединены крест-накрест.И все бы хорошо, но есть одно «но»: адаптеров огромное множество, и для автоматической перезагрузки МК необходимо в разрыв цепи RST — перезагрузку (1 ножка) ввести конденсатор 100пФ. В некоторых переходниках он есть, а в некоторых — увы, нет. Тут просто нужно проверить, в моем экземпляре не было встроенного конденсатора. В результате схема стала немного «усложненной»:

Что ж, теперь вы можете загрузить скетч в память Дуино и попробовать провести несколько экспериментов =) (на фото добавлены светодиоды — индикаторы скетча загрузка):

(стр.С. Я написал такую ​​же статью на www.nnm.ru, решил синхронизировать версии).
Как-то (пару месяцев назад), просматривая новости в интернете, я наткнулся на очень лестные отзывы о мега-популярном проекте Arduino. Было написано, что почти хозяйки любят и могут с ним повозиться и делать с его помощью всякие интересные вещи. Так так. Почему бы и мне не попробовать, руки и мозги вроде бы есть … Однако ни финансы, ни природное любопытство не позволили мне купить готовую доску.С усами сделаем сами. Вот инструкция с оф. сайт: http://arduino.cc/ru/Main/ArduinoBoardSerialSingleSided3
Там вы найдете список деталей и чертежи пломбы …. Короче все необходимое для изготовления. Я сделал две такие доски и остался очень доволен.

Но есть одно но. В официальной версии блок на транзисторах выполнял роль преобразователя RS232 … и это приводило к нестабильному обмену информацией.
Но я не первый, кто сталкивается с такой проблемой.Вот вариант на реальном преобразователе MAX232
http://spiffie.org/electronics/archives/microcontrollers/Build%20a%20MaxSerial%20Freeduino.html
Стоит сделать.
Вот мой процесс реализации этой опции.
Собираем все в кучу Детали и разъемы — они стоят меньше 10 долларов.
Нам понадобится:
— кусок одностороннего стеклопластика (95х65мм)
— микроконтроллер ATmega8 (или ATmega168)
— микросхема MAX232 ( можно интегрировать ILX232N)
— 7805 (регулятор напряжения 5V)
— 4 светодиода (лучше разные цвета)
— кварц 16 Mhz
— кнопка (с четырьмя контактами)
— разъем COM-порт (мама) для пломбирования
— питание разъем (2.1мм)
— конденсатор 22пФ (маркировка 22 или 220) — 2 шт.
— конденсатор 0,1 мкФ (маркировка 104) — 3 шт.
— резистор 1к (0,125 Вт) — 5 шт.
— резистор 10к (0,125 Вт) — 1шт
— диод 1N4004 (или 1N4007) — 1шт.
— электролит. конденсатор 10мкФ х16В — 5 штук (минимум по высоте, иначе экраны не станут)
— электролит. конденсатор 100мкФ x16V — 2 штуки (тоже низкий)
— колодки для микросхем (16 ножек — 1 шт, 28 ножек узких — 1 шт), ну
, пара полосок пинов и тд.я мама.

Самое главное сделать пломбу. (готовый Word-овский файл для печати и ЛУТ).

Еще раз повторяю, ВСЕ зависит от качества печати!

Готовую (протравленную) плиту необходимо залудить. Если хотите красоты, воспользуйтесь сплавом Роза. Думаю, описание этого метода можно легко найти в Интернете. Что ж, вы можете сделать это по старинке с флюсом и припоем.

Для красоты и удобства можно применить (с той же бабкой) расположение элементов и надписи на лицевой стороне.

Осталось аккуратно спаять элементы. Сначала перемычки, затем пассивные элементы (резисторы, конденсаторы, кварц), затем светодиоды, разъемы, контактные площадки. Паяем все без «соплей» и «стека» 🙂

Вид со стороны пайки.

А от и результат. Моя версия далека от стандартной, но вполне работоспособная 🙂

Итак, 2/3 работы выполнено. Осталось «вдохнуть жизнь» — прошить плату загрузчиком. 🙂

Для этого нужно сделать небольшой программатор.
Вот схема:

А вот аппаратная реализация:

Скачайте ПО с официального сайта. Установить. Запускаем.

Идем по пути: -> ->

Подключаем программатор к Arduino, разъем к LPT, подаем питание на Arduino

Плата разработки ATMEGA8 anti-arduino-odurino

Одной из самых разрушительных вещей, повлиявших на популяризацию любительской радиоэлектроники, было массовое распространение Arduino (odurino).Это готовая плата с распаянным микроконтроллером и минимальной разводкой. Казалось бы, удобная и полезная вещь? Не спешите делать такой вывод.

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

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


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

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

Все очень просто. Если вы хотите заниматься электроникой, научитесь паять: соберите макетную плату с минимальным, но достаточным обвесом. Воспользуйтесь достоинствами Arduina и не используйте недостатки. Используйте провода с наконечниками для подключения периферийных устройств и не используйте Arduino ide.

В результате вы получите все основные преимущества Arduina практически без минусов.В качестве бонуса вы добавите к этому множество своих преимуществ. Если это лирическое вступление убедило вас, то давайте продолжим.

Итак, наша отладочная плата содержит:

  • микроконтроллер ATMEGA8
  • разъемы для графических и символьных дисплеев на популярных контроллерах SED1520 и HD44780 соответственно
  • каждый вывод микроконтроллера дублирован тремя выводами
  • есть вход- разъем для программирования популярного ICSP (ISP) USBASP
  • Линии +5 вольт и земля выведены на несколько выводов в разных местах платы
  • три разноцветных светодиода и одна кнопка, а также кнопка RESET
  • 7.Разъем питания 5-20 вольт и стабилизатор LDO
  • для графического дисплея имеется драйвер отрицательного напряжения с регулировкой на ICL7660
  • схемы АЦП питаются через фильтр
  • есть кварцевый резонатор, но его использование не обязательно
Как видите, набор более чем минимальный. Размер доски 10 * 10 см. На большой площади работать удобнее. Кстати, вы можете адаптировать все, что захотите, в соответствии со своими потребностями. Поскольку проект еще не завершен, он будет развиваться.Поэтому вы можете высказать свои комментарии и предложения по улучшению.

Вы можете писать программы на любом языке.

Схема v1.0b:


Нажмите для увеличения
Кнопка S1 — RESET, предназначена для сброса микроконтроллера. S2 при необходимости подключается к любому выводу. На плате версии 1.0b он подключается снизу платы двумя проводами к линиям VCC и GND. Перемычка JP6 CONTR должна быть замкнута, если для регулировки контрастности символьного дисплея требуется переменный резистор R6.Если на самом дисплее уже выставлена ​​контрастность с припаянными резисторами, то перемычка открывается. Перемычка JP5 PROG должна быть замкнута во время работы. При программировании открывается, при этом питание подается только на МК и только с разъема ICSP. Контрастность графического дисплея регулируется переменным резистором R7.

Печатная плата v1.0b.


Создание собственного USB-программатора

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

Схема

Оригинальное творение было создано Томасом Фишлем. Чтобы узнать больше, вы можете посетить его сайт. Я сделал несколько модификаций оригинала, чтобы было проще реализовать.
Взгляните на следующую схему:
Рис. Схема USBASP


Важные аспекты схемы:
  • Есть два варианта ATmega8, один — ATmega8L, а другой — ATmega8-16PU.Вы должны использовать ATmega8-16PU. Только это один поддерживает кристаллы с частотой 12 МГц.
  • ATmega8, используемый здесь, является Мастером (Подробнее подробности см. в главе 4). Он выполняет следующие задачи:
    • Связь с ПК через универсальный последовательный порт. Автобус (USB)
    • Выполнять операции на любой цели (Slave) микроконтроллер, использующий SPI (последовательный параллельный интерфейс) в соответствии с инструкциями ПК. Операции означают чтение, запись или стирание программной памяти (Flash) или данных. Память (EEPROM) и т. Д.
  • Главное устройство и все в этой схеме питаются от USB.
  • Сначала необходимо запрограммировать ATmega8. Нам нужно для записи прошивки USBASP во флеш-память. Для этой задачи вам понадобится еще один программист! Это может быть ваш старый параллельный / последовательный программатор или другой USBASP. программист. Если у вас его нет, сделайте это через друга. Это должно быть сделано только один раз.
  • Красный Светодиод горит, когда он подключен к ПК, зеленый светодиод мигает во время программирование деятельности.
  • X1 — кварцевый генератор. Вы должны подключить Кристалл 12 МГц с двумя конденсаторами 22p, как показано на рисунке.Вы должны подключиться это даже когда вы программируете ATmega8 на отдельной плате.
  • J3 — разъем SIL-6; это SPI интерфейс для программирования. Штифты описаны ниже,
    • Контакт 1: GND
    • Контакт 2: не подключен
    • Контакт 3: SCK
    • Контакт 4: MISO
    • Контакт 5: MOSI
    • Контакт 6: СБРОС
  • J1 — разъем USB; Я использовал тип B разъем в печатной плате.
  • JP3 — это перемычка с названием Slow SCK. USBASP имеет два режимы программирования, быстрый и медленный.Если эта перемычка подключена (короткая Схема), программатор работает в медленном режиме. Если его оставить открытым, он работает в быстром режиме.
  • Когда микроконтроллер работает на очень низкой частоте частота, например, 1 МГц или около того, он не сможет связаться, если программист работает в быстром режиме. В этом случае выберите медленный режим, закоротив джемпер. Однако скорость программирования можно регулировать и в AVRDUDE. Обычно мы оставляем эту перемычку замкнутой накоротко, чтобы избежать каких-либо проблем.

Сборка и настройка USBASP
Этого достаточно для обсуждения схемы.Используйте этот раздел как ваша ссылка, если у вас возникнут проблемы. В этом разделе рассказывается, как это сделать. шаг за шагом. Так что пристегните ремни безопасности!
  • Загрузите макет печатной платы. Я предоставил верхний шелковый и нижний медный слой в формате PDF. Вы можете напрямую распечатать их. Или вы можете сделать свой Собственный макет печатной платы из принципиальной схемы.
    • Нижний медный слой: он содержит дорожки, соединить разные части схемы. Нажмите сюда для того, чтобы скачать.
    • Top Silk Layer: это верх печатной платы. с описанием названий, номеров и ориентации деталей.Нажмите сюда для того, чтобы скачать.
  • Распечатайте эти два. Нижняя медь уже зеркально отражено, поэтому вам больше не нужно его зеркалировать. Вы должны предоставить эти два производителям печатных плат в соответствии с их требованиями. В Дакке вы следует распечатать его на кальке темно-черного цвета и хорошего качества. Лазеры или хорошие струйные принтеры подойдут. Помните, что не должно быть «Масштабирования». Никогда не используйте подгонку под размер бумаги или что-либо еще. Выберите для масштабирования страницы значение «Нет». в Adobe Reader или тип масштабирования «Нет» в Foxit Reader.Распечатайте их на двух отдельных Калька формата А4.
  • Передайте обе распечатки разработчикам печатных плат. и получите свою печатную плату.
Рис: Верхняя сторона печатной платы
Рис: Нижняя сторона печатной платы (медный слой)
  • Соберите все детали, перечисленные в списке деталей.
  • Припаяйте их к печатной плате. Не паять ATmega8 прямо на плате, вместо этого используйте базы.
  • Теперь запрограммируйте ATmega8. Вам нужен рабочий программист сделать так. Какой бы программист вы ни использовали, решать вам; просто сделай следующие две вещи,
    • Сначала подключите кварцевый осциллятор 12 МГц к два конденсатора 22 пФ с ATmega8 на отдельной макетной плате или в любом другом месте запрограммируйте это.
    • Теперь установите биты предохранителя для высокой частоты. (CKSEL) и высокое время запуска (SUT). Это важный шаг. Не тот предохранитель настройки сделают устройство не обнаруживаемым программистом или даже заблокируют его! Я даю вам настройку предохранителя тремя разными способами,

Биты предохранителя

SUT1

SUT0

CKSEL3

CKSEL2

CKSEL1

CKSEL0

Пони Прог

Не проверено

Проверено

Не проверено

Не проверено

Не проверено

Не проверено

Значение (AVRDUDE)

1

0

1

1

1

1

о В AVR, чтобы запрограммировать бит предохранителя, у вас есть для записи «0» и отмены программирования вы должны написать «1» для этого соответствующий бит.Если вы пишете с помощью Pony Prog, вам нужно проверить то, что вы хотите запрограммировать (0) и снимите отметку с бит, который вы хотите отменить программирование (1). если ты запись с использованием AVRDUDE , вы можете напрямую запрограммировать байт предохранителя, используя следующие команды,

  • -U lfuse: w: 0xef: m
  • -U hfuse: w: 0xc9: m

о Убедитесь, что у вас есть кристалл 12 МГц подключен, без него АРН не будет работать, поскольку предохранители настроены на использование внешний кристалл.

о Теперь запрограммируйте микроконтроллер, используя шестнадцатеричный файл прошивки. Нажмите здесь, чтобы скачать его.
  • После успешного программирования установите микроконтроллер на его базе печатной платы. Ваш новый USB-программатор готов.
Рис. Готовый программатор с подключенным кабелем ISP.
Модификации оригинальной схемы
  • Была возможность подавать питание 5В от Подключите USB к целевому микроконтроллеру с помощью шестипроводного кабеля ISP.Я использовал 5 линий в кабеле ISP и оставил одну неподключенной. Я здесь не подключал VCC. USBASP не имеет защиты от короткого замыкания, поэтому я не хочу рисковать своим компьютером. Ты необходимо использовать отдельный источник питания для цели.
  • Была возможность самостоятельного программирования. Это было для программирования сам мастер использует кабель, который мастер использует для программирования подчиненного устройства. Нам нужно запрограммировать мастер только один раз. Так, Я отключил его для простоты. Если вы хотите обновить или перепрограммировать прошивку, просто выньте ATmega8 из платы и запрограммируйте в отдельном месте.Этот задание всегда требует другого программиста, независимо от того, включено ли самопрограммирование или нет.



Список деталей

Товар Но.

Товар

Количество

Комментарий

1

ATmega8 — 16ПУ

1

Не использовать 8 вариантов ПУ

2

28 год основание

1

Также можно комбинировать две 14-контактные базы

3

Кристалл Осциллятор — 12 МГц

1

4

Конденсатор- около 22 пФ

2

5

Конденсатор- 100 нФ

1

6

Конденсатор- 4.7 мкФ

1

7

Зинер Диод- 3В6

2

8

Резистор 68 Ом

2

9

Резистор 2,2 кОм

1

10

Резистор 10 кОм

1

11

Резистор 1 кОм

2

Для светодиодов

12

ВЕЛ- Зеленый

1

13

ВЕЛ — Красный

1

14

6 штырьковый одинарный в линию (SIL) Socket / Base

1

Заголовок ISP

15

6 жильный кабель с разъемами SIL с обеих сторон

1

Кабель ISP

16

Джемпер / Отжим Переключатель / переключатель

1

Чтобы контролировать медленное Джемпер SCK.Вы можете делать это как хотите.

17

USB Разъем типа B

1

18

USB Кабель

1

Один конец типа B и другой конец Тип А. Этот тип кабеля используется для принтеров.

Установка
Вы должны дважды проверить пайку и соединения. перед подключением программатора к ПК.Любая ошибка может повредить микроконтроллер или даже ваш компьютер. Ищите короткие замыкания в линиях VCC и GND очень внимательно. Если обнаружено, исправьте это немедленно.

Вам понадобится libusb. Загрузите его отсюда. Распакуйте zip-файл.


Подключите usbasp к ПК через USB-порт. кабель. На экране должно появиться сообщение «Найдено новое оборудование». системный трей.

Запустится мастер нового оборудования. автоматически. Щелкните здесь C ancel и закройте окно.Теперь, вы увидите это сообщение.

Не волнуйся. Просто зайдите в «libusb-win32-bin-x.x.x.x» папка, которую вы только что извлекли. Здесь «x» будет заменен номерами версии.

Перейдите в «libusb-win32-bin-x.x.x.x \ bin» каталог.

Запустите INF Wizard . (Dbl Щелкните и откройте inf-wizard.exe ). Должно появиться следующее окно.

Щелкните Далее . В окне выбора устройства вы увидите список обнаруженных устройств.Выберите из списка usbasp .

Щелкните Далее . Окно конфигурации устройства должно выглядеть так: это.

Здесь ничего делать не нужно. Просто нажмите Next еще раз.


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

Просто создайте новую папку и сохраните в ней драйвер. Это сохранит ваши недавно созданные файлы драйверов для usbasp в этой папке.Сохраните папку в качестве резервной копии. Вы можете установить свой usbasp с помощью драйвера вы только что создали.

А пока установим драйвер прямо из INF. мастер на следующем шаге.


После сохранения файлов драйвера вы увидите следующее окно,

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

После завершения вы увидите это сообщение.

Чтобы проверить, правильно ли он установлен или нет, зайдите в диспетчер устройств (щелкнув правой кнопкой мыши Мой Компьютер-> Свойства-> Вкладка Оборудование-> Диспетчер устройств. Вы увидите устройство в libusb-win32 устройства категории.

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


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

В следующей главе я продемонстрирую, как программировать с AVRDUDE и AVR8 Burn-O-Mat, используя наш недавно созданный программатор usbasp.

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

Как программировать Arduino с помощью USBasp без загрузчика


Введение

Используя USBasp, мы можем загрузить программу непосредственно на плату Arduino Duemilanove или другой микроконтроллер AVR без предустановленного загрузчика программы.AVR USBasp — это внутрисхемный программатор USB, который можно использовать для программирования большинства контроллеров AVR ATmel. Он просто состоит из ATMega8 и пары пассивных компонентов, таких как резисторы, конденсаторы, светодиоды и т. Д. Программист использует драйвер USB, предназначенный только для прошивки, и специальный USB-контроллер не требуется. В этом руководстве мы покажем, как модифицировать программное обеспечение Arduino, чтобы вы могли использовать его для программирования микроконтроллеров AVR без предварительного программного загрузчика.

Как пользоваться

При использовании AVR USBasp нам понадобится ПК и плата контроллера Atmel AVR.USB-порт типа A AVR USBasp подключается к ПК, а 10 способов подключения программатора к плате микроконтроллера. После этого мы можем загрузить программу в микроконтроллер с ПК через AVR USBasp.

Существует множество проектов, в которых вы можете использовать этот программатор, на этом этапе мы покажем, как запрограммировать мигание светодиода с помощью этого программатора для загрузки программы с ПК на плату Arduino Duemilanove. Шаги приведены ниже:

1. Первым шагом является изменение программного обеспечения, которое нам нужно использовать, а именно программного обеспечения arduino.Программное обеспечение для Arduino можно загрузить на этом веб-сайте: http://arduino.cc/en/Main/Software. После того, как вы установили программное обеспечение arduino на свой компьютер, не открывайте программное обеспечение сначала. Перейдите к C :, щелкните «Инструменты»> «Управление папкой»> «Просмотр» и отметьте столбец «Показывать скрытые файлы и папки», затем нажмите «Применить» и «ОК».

После этого перейдите в C: \ Documents and Settings \ «user» \ Application Data \ Arduino. Откройте файл preferences.txt. Найдите предложение upload.using = bootloader и измените его на upload.используя = usbasp.

После замены сохраните и закройте. Затем откройте папку с программным обеспечением arduino, которое вы установили в начале. Откройте папку… \ hardware \ arduino. Затем откройте текстовый файл programmers.txt и добавьте еще 2 строки внизу последнего предложения в текстовом файле:
USBasp.name = USBasp
USBasp.protocol = usbasp

Последний шаг — сохранить и закрыть текстовый файл, затем снова открыть программное обеспечение Arduino «Arduino.exe», и вы можете написать в нем свою программу и загрузить ее в свой микроконтроллер с помощью AVR USBasp.

2. После модификации программного обеспечения мы теперь можем запрограммировать мигание светодиода на плате Arduino Duemilanove. (В процессе записи программы в микроконтроллер платы нам не нужно использовать в ней программу загрузчика. )

Во-первых, подключите AVR USBasp к плате Arduino Duemilanove. Разъемы перемычки между гнездом и гнездом не входят в комплект поставки AVR USBasp. Разъемы для перемычек «мама-мама» продаются в Cytron, вы можете посетить этот веб-сайт

Во-вторых, подключите AVR USBasp к USB-порту ПК.

В-третьих, откройте программу Arduino «Arduino.exe», чтобы загрузить программу на плату Arduino Duemilanove. Обычно, когда мы хотим запрограммировать программирование на плате Arduino, нам нужно сначала запрограммировать программирование загрузчика, но в этом случае мы используем программатор AVR USBasp, поэтому нам не нужно программировать программу загрузчика на плате Arduino. и напрямую запрограммируйте программирование светодиода в него. Вот несколько шагов, которые показывают, как использовать USBasp для программирования платы Arduino Duemilanove.

а. Откройте программу Arduino «Arduino.exe»

.

г. Затем нам нужно вызвать пример исходного кода, щелкнув Файлы> Примеры> Основы> Blink. Затем через несколько секунд появится исходный код мигания светодиода.

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

г. Это результат мигания светодиода на плате Arduino.

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

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

Артикулы:

1. Руководство пользователя AVR USBasp

51 AVR Программатор ATMEGA8 USB ASP USB ISP 10-контактный USB-программатор 3,3 В / 5 В с кабелем, основной чип: ATMega8A-AU

Описание:

Это программатор USBasp для микроконтроллеров Atmel AVR.Он просто состоит из ATMega8 и пары пассивных компонентов ATMega8 с рабочей частотой 12 МГц. Программатор использует USB-драйвер только для прошивки, специальный USB-контроллер не требуется, что делает его недорогим USB-программатором. USBasp Programmer — недорогой программатор на базе USB. Это программист ISP (системный программист), поэтому вы можете запрограммировать целевой микроконтроллер, не удаляя его с платы разработки целевого микроконтроллера. Этот программатор будет работать с широким спектром микроконтроллеров Atmel AVR и AT89Sxx.Они довольно компактные, но дизайн действительно элегантный. Интерфейс USB достигается за счет использования процессора atmega8, а все остальное делается в прошивке. Это недорогой программатор, разработанный для людей с ограниченным бюджетом. Поддерживаемое программное обеспечение: — Недорогое, простое в использовании, программатор будет работать с широким спектром микроконтроллеров Atmel AVR. Программист также может работать с разнообразным программным обеспечением. / P>

Спецификация:
  • Основной чип: ATMega8A-AU
  • Источник питания: 5 В и 3.3V

Характеристики:
  • Работает на нескольких платформах. Linux, Mac OS X и Windows протестированы.
  • Позволяет читать или записывать EEPROM микроконтроллера, прошивку, биты предохранителей и биты блокировки.
  • Скорость программирования до 5 КБ / сек.
  • Опция SCK с программным управлением для поддержки целей с низкой тактовой частотой (менее 1,5 МГц).
  • 6-контактная плата адаптера вместе с программатором для стандартных подключений ISP.
  • USB-разъем типа B для питания.
  • Два отдельных светодиода для индикации питания и состояния программатора.

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

51 Серия:

AT89S51, AT89S52, AT89S53, AT89S8252

Серия AVR:

ATTiny12 (L), ATTiny13 (V) ATTiny24 (V), ATTiny25 (V), ATTiny26 (L), ATTiny2313 (V), ATTiny44 (V), ATTiny45 (V), ATTiny84 (V), ATTiny85 (V), AT90S2313 (L), AT90S2323 (L), AT90S2343 (L), AT90S1200 (L), AT90S8515 (L), AT90S8535 (L), ATMEGA48 (V), ATMEGA8 (L), ATMEGA88 (V), ATMEGA8515 (L), ATMEGA8535 (L), ATMEGA16 (L), ATMEGA162 (V), ATMEGA163 (L), ATMEGA164 (V), ATMEGA165 (V), ATMEGA168 (V), ATMEGA169 (V), ATMEGA169P (V), ATMEGA32 (L), ATMEGA324 (V), ATMEGA325 ATMEGA3250 (V), ATMEGA329 (V), ATMEGA3290 (V), ATMEGA64 (L), ATMEGA640 (V), ATMEGA644 (V), ATMEGA645 (V), ATMEGA6450 (V), ATMEGA649 (V), ATMEGA6490 (V), ATMEGA6490 (V) ATMEGA128 (L), ATMEGA1280 (V), ATMEGA1281 (V), ATMEGA2560 (V), ATMEGA2561 (V), AT90CAN32, AT90CAN64, AT90CAN128, AT90PWM2 (B), AT90PWM3 (B) и т. Д.

В пакет включено:
  • 1 программатор USBasp
  • 1 10-контактный ленточный кабель для передачи данных

Программирование микроконтроллера AVR — Программатор USBASP — Робо Индия || Учебники || Изучите Arduino |

Руководство по использованию программы USBASP для записи шестнадцатеричного файла на микроконтроллер AVR.

Введение: Robo India USBASP Programmer.

USBasp — это встроенный USB-программатор для контроллеров Atmel AVR.Он просто состоит из ATMega8 и пары пассивных компонентов. Программатор использует USB-драйвер только для прошивки, специальный USB-контроллер не требуется, что делает его недорогим USB-программатором.

Важные особенности:

  • Работает на нескольких платформах. Linux, Mac OS X и Windows протестированы.
  • Перемычка для питания 5В.
  • Вывод заголовка для обеспечения удобного интерфейса для различных выводов заголовка ISP.
  • Опция SCK для поддержки целей с низкой тактовой частотой (<1.5 МГц).

Установка:

Установите USBASP как простое устройство USB.

Скачать: драйверы 32 и 64 бит

Вот замечательное руководство по установке USBASP на Windows 8. нажмите здесь

Загрузка шестнадцатеричного файла в микроконтроллер AVR:

Для передачи файла Hex в контроллер нам требуется программное обеспечение для доступа к USBASP. В Интернете доступно множество программного обеспечения, которое, как нам кажется, легко использовать со всеми функциями, — это Prog ISP .

Загрузить:

Примечание: устанавливать Prog ISP не нужно, просто разархивируйте файл и щелкните исполняемый файл progisp.exe , чтобы запустить программное обеспечение.

Установлено оборудование:

Подключите USBASP к плате микроконтроллера AVR с помощью 6-контактных разъемов, где 5 В является необязательным, если ваша плата уже запитана от какого-либо внешнего источника питания 5 В, снимите перемычку (vcc вкл. / Выкл.).

Поиск и устранение неисправностей:

Prog ISP покажет ошибку в случае:

  1. Поставка целевому контроллеру не предусмотрена.
  2. неправильное подключение к микроконтроллеру Target.
  3. USBASP не обнаружен.

Примечание: всегда держите перемычку (J1) подключенной.

Начало работы с Prog ISP:
  • Select Chip: Выберите микроконтроллер для загрузки файла Hex.
  • Загрузить Flash: Эта вкладка используется для выбора файла Hex. Щелкните эту вкладку, чтобы открыть окно обзора и выбрать файл Hex.
  • Окно задач: Выберите операцию, которую хотите завершить.основные операции, необходимые для записи шестнадцатеричного файла, показаны выше.
  • Авто: Щелкните эту вкладку, чтобы начать запись шестнадцатеричного файла вместе со всеми операциями, отмеченными в поле задачи.
  • Предохранитель: Эта вкладка используется для открытия окна Предохранитель , как показано ниже, где вы можете считывать или записывать низкие и высокие значения предохранителей.
Шаги для загрузки шестнадцатеричного файла:
  1. Установите USBASP Programmer.
  2. Подключите оборудование.
  3. Выбрать микроконтроллер в ProgISP.
  4. Загрузить шестнадцатеричный файл.
  5. Щелкните вкладку Авто, чтобы передать код.
Связанные руководства:

Загрузка загрузчика Arduino в микросхему AVR

Если у вас есть какие-либо вопросы, напишите нам по адресу [email protected]

Благодарности и приветы
Команда разработки контента
Robo India
http://roboindia.com

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

С развитием компьютерных технологий с каждым разом становится все меньше и меньше компьютеров, оснащенных портами 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 автоматически определяет тип микроконтроллера.Загрузите прошивку Atmega8_USB_prog.hex в память UniProf, откажитесь от подключения файла EEPROM.

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

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

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

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

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

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

Настройка ASCII:

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

Чтобы проверить соединение между USB-программатором и компьютером, дважды нажмите клавишу Enter в программе HyperTerminal. Если все в порядке, мы должны увидеть такую ​​картинку:

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

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

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

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

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

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

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

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

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

Как театр начинается с вешалки, так и программирование микроконтроллеров начинается с выбора хорошего программиста.Поскольку я начинаю осваивать микроконтроллеры ATMEL, мне пришлось досконально ознакомиться с тем, что предлагают производители. Они предлагают много интересного и вкусного, только по непомерным ценам. Например, платок с одним двадцатоногим микроконтроллером с парой резисторов и диодов в качестве обвязки подобен «самолету». Поэтому вопрос о самостоятельной сборке программатора. После долгого изучения опыта опытных радиолюбителей было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого является микроконтроллер Atmega8 (есть также варианты прошивки для atmega88 и atmega48).Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрного программатора, который всегда можно взять с собой, как флешку.

Автор этого программатора — немец Томас Фихль, его страница разработки со схемами, файлами печатных плат и драйверами.
После того, как было решено собрать миниатюрный программатор, то я перерисовал схему микроконтроллера Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в DIP корпусе):

При необходимости используется перемычка J1 для прошивки микроконтроллера с тактовой частотой ниже 1.5 МГц. Кстати, от этой перемычки можно избавиться и вовсе, поставив 25 ногу МК на землю. Тогда программатор всегда будет работать на пониженной частоте … Для себя заметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не тащу, а постоянно шью ею. Стабилитроны
D1 и D2 служат для согласования уровней между программатором и шиной USB, будут работать без них, но не на всех компьютерах.
Синий светодиод указывает на готовность к программированию схемы, красный горит во время программирования.В разъем IDC-06 выведены контакты для программирования, распиновка соответствует стандарту ATMEL для 6-контактного разъема ISP:

К этому разъему выведены контакты для питания программируемых устройств, вот он прямо с USB-порта компьютера, поэтому нужно быть осторожным и избегать коротких замыканий. Этот же разъем используется и для программирования управляющего микроконтроллера, для этого достаточно подключить пины Reset на разъеме и на микроне (см. Красную пунктирную линию на схеме).В авторской схеме это сделано перемычкой, но я не стал загромождать плату и убрал ее. Для одиночной прошивки достаточно простой перемычки. Доска получилась двухсторонней, размером 45х18 мм.

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

Прошивка микроконтроллера управления
Итак, после сборки устройства самое главное Осталось — прошить управляющий микроконтроллер.Для этих целей хорошо подходят друзья, у которых есть компьютеры с LPT портом 🙂 Простейший пятипроводной программатор на AVR
Микроконтроллер можно прошить с разъема программирования, подключив пины Reset микроконтроллера (29 футов) и разъем . Прошивки существуют для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, поскольку поддержка версии Atmega48 прекращена, а последняя версия прошивки датируется 2009 годом.Причем версии для 8-го и 88-го камней постоянно обновляются, и автор вроде бы планирует добавить в функционал внутрисхемный отладчик. Берем прошивку на немецкой странице. Для программы контроля наполнения в микроконтроллере я использовал программу PonyProg. При программировании необходимо запустить кристалл для работы от внешнего источника тактовой частоты на частоте 12 МГц. Скриншот программы с настройками предохранительных перемычек в PonyProg:

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

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

Сразу появится окошко с предупреждением о том, что у устанавливаемого драйвера нет цифровой подписи в маленьких:

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

Вот и все, теперь программатор готов к работе.

Khazama AVR Programmer
Для работы с программатором выбрал прошивальщик Khazama AVR Programmer. Замечательная программа с минималистичным интерфейсом.

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

Плавкие предохранители записываются в память МК, как нетрудно догадаться, после нажатия кнопки «Записать все». Кнопка «Сохранить» сохраняет текущую конфигурацию, а «Загрузить» возвращает сохраненную. По правде говоря, мне не удалось придумать практического применения этих кнопок. Кнопка Default предназначена для записи предохранителей стандартной конфигурации, например, микроконтроллеров, поставляемых с завода (обычно 1 МГц от внутреннего RC).
В целом за все время использования этого программатора показал себя с лучшей стороны по стабильности и скорости работы. Он без проблем работал как на старинном стационарном ПК, так и на новом ноутбуке.

Скачать файл печатной платы в SprintLayout можно использовать

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

В радиолюбительских журналах и в Интернете есть много схем программирования. Они различаются способом подключения к компьютеру: через LPT, COM, USB.Программаторы для порта LPT самые простые, для COM — чуть посложнее. Для программатора, подключенного к USB-порту, нужен либо микроконтроллер, либо специализированная микросхема, преобразователь USB — UART. Кроме того, разные программаторы предназначены для прошивки разных микроконтроллеров: AVR или PIC, при этом алгоритм программирования этих двух типов микроконтроллеров немного отличается. Поэтому естественно напрашивается желание собрать универсальный программатор для любых микроконтроллеров — AVR и PIC.


Оптимальной нам показалась следующая схема программатора. Он подключается к COM-порту компьютера и содержит хорошо известную микросхему MAX232, которая корректно работает с любым COM-портом (для разных компьютеров уровни портов могут значительно отличаться от стандартных), защищая его от случайного подключения или ошибок подключения. У программатора есть разъемы для разных корпусов микроконтроллеров, а также возможность внутрисхемного программирования ICSP, когда программатор подключается проводами к плате с микроконтроллером или непосредственно к ножкам микроконтроллера без установки его в розетку. .Программатор воспринимается программами как JDM, поэтому проблем с ПО не возникает. Можно порекомендовать программу IC-PROG 1.06B.


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

Вместо микросхемы 74LS00 можно поставить К555ЛА3 или КР1533ЛА3, транзисторы в принципе заменяемы на аналогичные.У этой схемы есть одна странность — номиналы токоограничивающих резисторов для светодиодов. Поскольку светодиоды подключены к разным участкам цепи, напряжения в этих участках также различаются, поэтому светодиоды светятся с разной яркостью. Чтобы это исправить, можно попробовать подобрать резисторы, в частности — уменьшить R4 и R7. Вместо KD523 можно использовать обычный 1N4148.

PCB.lay (для Sprint Layout) Электропроводка выполнена под резисторы SMD, остальные компоненты в обычном исполнении.

Внимание! На печатной плате неверно показана разводка MOSI и MISO в гнездо ATMEGA8, их нужно закинуть. Также у C7 и C9 есть перемычки — их нужно убрать.

Работа с IC-PROG

Вам необходимо скачать программу с официального сайта:

http://www.ic-prog.com/index1.htm

В каталоге программы должны быть следующие файлы:

icprog.exe — сама программа
icprog.sys — драйвер доступа к портам для XP

Вам нужно щелкнуть правой кнопкой мыши файл icprog.exe и выбрать «Свойства». На вкладке «совместимость» необходимо поставить галочку напротив «запускать в режиме совместимости» и выбрать Windows 2000.

Далее нужно зайти в меню «Настройки» и выбрать пункт «Программист». Тип программатора должен быть установлен на JDM и указывать COM-порт, к которому программатор физически подключен. Для очень быстрых компьютеров вы также можете установить задержку ввода-вывода. В этом же окне необходимо указать интерфейс «Прямой доступ к портам».Все флажки параметров сигнала должны быть сняты.

Далее нужно зайти в меню «Настройки» и выбрать пункт «Параметры», вкладку «Общие», где поставить галочку «Включить драйвер NT / 2000 / XP». Появится окно подтверждения установки драйвера, и программа перезапустится.

После этого программа готова к работе с программатором.

Как театр начинается с вешалки, так и программирование микроконтроллеров начинается с выбора хорошего программиста.Поскольку я начинаю осваивать микроконтроллеры компании ATMEL , то мне пришлось досконально ознакомиться с тем, что предлагают производители. Они предлагают много интересного и вкусного, только по непомерным ценам. Например, платок с одним двадцатоногим микроконтроллером с парой резисторов и диодов в качестве обвязки подобен «самолету». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения опыта опытных радиолюбителей было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого является микроконтроллер Atmega8 (также есть варианты прошивки для atmega88 и atmega48).Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флешку.

После того, как было решено собрать миниатюрный программатор, то я перерисовал схему микроконтроллера Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):

Перемычка J1 используется, если необходимо прошить микроконтроллер с тактовой частотой ниже 1.5 МГц. Кстати, от этой перемычки можно избавиться и вовсе, поставив 25 ногу МК на землю. Тогда программист всегда будет работать на более низкой частоте. Для себя заметил, что программирование на пониженной скорости на долю секунды дольше, и поэтому теперь перемычку не тяну, а постоянно шью ею. Стабилитроны
D1 и D2 служат для согласования уровней между программатором и шиной USB, без них он будет работать, но не на всех компьютерах.
Синий светодиод указывает на готовность к программированию схемы, красный горит во время программирования.В разъем IDC-06 выведены пины для программирования, распиновка соответствует стандарту ATMEL для 6-ти пинового разъема ISP:


К этому разъему выведены контакты для питания программируемых устройств, здесь берется непосредственно от USB-порта компьютера, поэтому нужно соблюдать осторожность и избегать коротких замыканий. Этот же разъем используется и для программирования управляющего микроконтроллера, для этого достаточно подключить пины Reset на разъеме и на микроне (см. Красную пунктирную линию на схеме).В авторской схеме это сделано перемычкой, но я не стал загромождать плату и убрал ее. Для одиночной прошивки достаточно простой перемычки. Доска получилась двухсторонней, размером 45х18 мм.


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


Микроконтроллер управления

Итак, после сборки устройства остается самое главное — прошить управляющий микроконтроллер.Для этих целей хорошо подходят друзья, у которых есть компьютеры с LPT портом 🙂 Простейший пятипроводной программатор для AVR
Микроконтроллер можно прошить через разъем для программирования, соединив контакты сброса микроконтроллера (29 футов) и разъем. Прошивки существуют для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, поскольку поддержка версии Atmega48 прекращена, а последняя версия прошивки датируется 2009 годом.Причем версии для 8-го и 88-го камней постоянно обновляются, и автор вроде бы планирует добавить в функционал внутрисхемный отладчик. Берем прошивку на немецкой странице. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо запустить кристалл для работы от внешнего источника тактовой частоты на частоте 12 МГц. Скриншот программы с настройками предохранительных перемычек в PonyProg:


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

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

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


Выбираем папку, где находятся дрова и нажимаем Далее


Мгновенно появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи для мягких:


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


Вот и все, теперь программист готов к работе.

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

Для работы с программатором выбрал прошивальщик Khazama AVR Programmer. Замечательная программа с минималистичным интерфейсом.


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


Предохранители записываются в память МК, как нетрудно догадаться, после нажатия кнопки «Записать все». Кнопка «Сохранить» сохраняет текущую конфигурацию, а «Загрузить» возвращает сохраненную. Правда, практического применения этих кнопок придумать не удалось. Кнопка Default предназначена для записи стандартной конфигурации предохранителей, например, микроконтроллеры поставляются с завода (обычно 1 МГц от внутреннего RC).
В целом за все время использования данного программатора он показал себя с лучшей стороны по стабильности и скорости работы. Он без проблем работал как на старинном стационарном ПК, так и на новом ноутбуке.

Скачать плату за файл в SprintLayout можно по ссылке

Как программировать микроконтроллер AVR Atmega16 с помощью программатора USBASP и Atmel Studio 7.0

Существует несколько способов программирования микроконтроллеров AVR. Мы программируем его с помощью USBASP v2.0 серийный программист. Для демонстрации мы будем использовать микроконтроллер ATmega16 и Atmel Studio. Протестируем программатор с помощью скетча мигания.

Ниже приведены шаги для записи кода в микросхемы Atmega с использованием USBASP JTAG и Atmel Studio:

  1. Установка драйвера USBASP.
  2. Загрузка и настройка Atmel Studio.
  3. Настройка внешнего набора инструментов в Atmel Studio, например WinAVR
  4. Настройка Atmega16 с осциллятором и одним светодиодом.
  5. Создание и загрузка эскиза в Atmega16

Обсудим подробно каждый шаг.Первым шагом будет установка драйвера USBASP в Windows 10. Тот же метод можно использовать для установки в другой версии Windows.

Шаг 1. Установка драйвера USBASP в Windows 10:

При использовании JTAG (USBASP) вам может потребоваться установить драйвер, если он не устанавливается автоматически. Если вы не установите драйвер, вы не сможете найти порт USBASP в Atmel Studio. Загрузите zip-файл USBASP по этой ссылке.

После загрузки драйвера выполните следующие действия.

1. Разархивируйте загруженный файл и храните его на рабочем столе (можно хранить где угодно).

2. Подключите модуль USBASP v2.0 к компьютеру. Если вы не знаете, как выглядит USBASP, вы можете увидеть картинку ниже.

3. Откройте диспетчер устройств.

4. Теперь вы можете найти подключенный USBASP Programmer.

5. Щелкните правой кнопкой мыши «USBasp» и выберите « Обновить драйвер ».

6.Выберите « Найдите на моем компьютере программный драйвер ».

7. Теперь найдите или просмотрите родительскую папку распакованного драйвера USBASP и выберите «Открыть».

8. Если он установлен успешно, вы увидите сообщение, подобное приведенному ниже, и вам не нужно выполнять дальнейшие инструкции.

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

Чтобы отключить подпись драйвера, выполните следующие шаги :

1. Чтобы отключить подпись драйвера, удерживайте клавишу Shift и, удерживая клавишу Shift, перезагрузите компьютер.

2. Нажмите Перезапустить на панели запуска, удерживая нажатой клавишу Shift.

3. Теперь ваш компьютер перезагружается, но не отпускайте клавишу Shift, пока не увидите « Дополнительные параметры » на синем экране.

4.Оставьте клавишу Shift и нажмите «Параметры запуска».

5. Нажмите «Устранение неполадок»

6. Выберите «Дополнительные параметры».

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

8. Щелкните по кнопке «Перезагрузить».

9.Подождите, пока снова не запустятся окна. После перезагрузки вы увидите множество вариантов.

10. Теперь это последний шаг по отключению подписи драйвера. Во многих вариантах в списке параметр 7 th — это «Отключить принудительное использование подписи драйверов ».

11. Чтобы выбрать эту опцию, вам нужно будет нажать кнопку с цифрой 7 на клавиатуре. Не путайте с кнопкой F7. Вам просто нужно нажать цифру 7 на вашем компьютере.

12.После выбора опции 7 th ваш компьютер перезагрузится. И вы успешно отключили подпись драйвера.

13. Теперь просто выполните шаги 1-8 выше, и драйвер USBASP будет успешно установлен.

Теперь, , мы завершили 1 этап программирования Atmega16 . Второй шаг включает настройку Atmel Studio 7.0 для загрузки скетча.

Шаг 2. Загрузка и установка Atmel Studio:

Следуйте инструкциям ниже:

1.Скачать Atmel Studio 7.0

2. Также вам нужно будет загрузить «WinAVR» в качестве внешней цепочки инструментов для загрузки скетча с помощью USBASP. Для скачивания используйте эту ссылку.

Теперь вам нужно создать проект «Blink» в Atmel Studio 7.0. Для этого выполните шаги.

3. Подключите USBASP v2.0 к USB-порту и оставьте его подключенным все время, пока вы не начнете с ним работать.

4. Откройте Atmel Studio.

5. Перейдите в «Файл», нажмите «Создать» и выберите «Проект».

6. Теперь назовите свой проект, выберите расположение проекта и выберите компилятор «GCC C Executable Project». Нажмите «ОК» и продолжайте.

7. Теперь вам будет предложено выбрать микроконтроллер. Выбирайте свое устройство, в нашем случае это Atmega16A. Выберите и нажмите «ОК». Вы также можете запрограммировать другие микросхемы Atmega, такие как Atmega8, Atmega32 и т. Д., Используя тот же программатор USBASP AVR.

8.Теперь ваш файл main.c создан, в котором вы можете написать свой код. Но подождите и следуйте небольшим инструкциям, чтобы закончить.

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

Шаг 3. Настройка внешней инструментальной цепочки WinAVR в Atmel Studio

1. Перейдите в «Инструменты» и выберите «Внешние инструменты».

2. Вам будет предложено окно, в котором вам нужно будет добавить имя вашей инструментальной цепочки.

3. В поле «Заголовок» введите имя вашей инструментальной цепочки. Это может быть все, что вы хотите назвать. В моем случае я выбрал «USBasp». Установите флажок «Использовать окно вывода» и снимите флажок «Запрашивать аргументы», как показано на снимке экрана ниже.

4. Теперь введите «Command». Это будет ваш путь «avrdude.exe». Вы получите это в установленном пути WinAvr. Просто найдите «WinAVR-20100110» на диске «C» или там, где установлен WinAvr.

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

    

6. По этой ссылке вы можете найти больше аргументов.

7. Введите указанный выше аргумент в раздел аргументов. Оставьте «Исходный каталог» как есть.

8. После заполнения всех данных просто «Применить» и нажмите «ОК».

У вас есть , успешно созданная внешняя цепочка инструментов для загрузки эскиза .После создания набора инструментов мы протестируем, загрузив программу «blink.c». Вы можете найти файл main.c в конце руководства. Теперь скопируйте main.c в студию Atmel.

Шаг 4: Настройка Atmega16 с осциллятором и одним светодиодом

Подключите кварцевый генератор и светодиод к Atmega16. Схема подключения мигающего светодиода с Atmega16 , запрограммированного с помощью USB-программатора Atmega, приведена ниже:

Также вам нужно будет подключить микроконтроллер и USBASP, как указано в схеме ниже:

Шаг 5: Создание и загрузка эскиза в Atmega16

1.Сохраните файл main.c.

2. Подключите один светодиод к контакту PORTA0 Atmega16, как показано на рисунке выше.

3. Перейдите в «Build» и затем выберите «Build Blink».

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

5. Теперь перейдите в «Инструменты» и выберите созданную внешнюю цепочку инструментов. В моем случае это «USBasp». Нажмите здесь.

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

7. Теперь вы видите, что светодиод начинает мигать. И вы успешно загрузили программу мигания с помощью USBASP v2.0 и Atmel Studio 7.0. Вы можете использовать этот метод и загружать другие скетчи с помощью USBASB.

/> .

alexxlab

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

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