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 вольт
- Указание работы программатора с помощью светодиода
Перед началом работы, стоит ознакомиться с последовательностью всех выполняемых действий, а именно:
- Выбор схемы/рисунка печатной платы
- Перенос рисунка печатной платы на фольгированный стеклотекстолит
- Травление печатной платы в растворе хлорного железа
- Сверление отверстий
- Монтаж элементов (пайка)
- Программирование Atmaga8 программатора
- Подключение программатора к компьютеру
- Установка драйверов – Windows XP, Windows 7
- Выбор программы с поддержкой 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 436)
Оригинал статьи
Цифровой мультиметр AN8009
Большой ЖК-дисплей с подсветкой, 9999 отсчетов, измерение TrueRMS…
Обзор программатора USBAsp v.2.0 – RobotChip
Сегодня расскажу, о недорогим и очень простом программаторе USBAsp v.2.0 для микроконтроллеров AVR (основанный на дизайне Томаса Фишла), с его помощью можно прошивать контроллеры AVR по интерфейсу ISP (не выпаивая его с платы), а самое главное, можно прошить загрузочный сектор на контроллерах Arduino.
Технические параметры► Напряжение питания: 5 В, DC
► Интерфейс: USB 2.0
► Программирование/ чтение: Atmel (AVR)
► Габариты: 70 мм x 18 мм x 10 мм
► Поддержка операционных систем: Windows XP / 7 / 8 / 8.1 / 10.
Программатор USBAsp распространяется и открытым исходным кодом, так что при желании можно изготовить самому, скачав печатную плату и прошивку с сайта Thomas, из-за этого в различных интернет магазинах существует различные варианты программатора с одинаковым функционалом. В моем случае буду рассказывать о USBAsp V2.0 китайского производителя LC Technelogy.
Программатор собран на синий печатной плате, слева расположен USB-разъем необходимый для подключения к компьютеру. В центре располагается контроллер ATmega8A, рядом установлен кварцевый резонатор на 12 МГц и электрическая обвязка (резисторы, конденсаторы). Справа расположен 10-контактный разъем (два ряда, по пять выводов, шагом 2.54 мм), обеспечивающий обмен данными с прошиваемым микроконтроллером (интерфейс ISP). В комплекте поставляется кабель, с каждой стороны которого, установлен разъем IDC (10 выводов), для простоты прошивки некоторых плат (например Arduino), советую приобрести адаптер-переходник с 10-pin на 6-pin. Назначение выводов программатора USBAsp можно посмотреть на рисунке ниже, вид на стороне программатора.
Назначение выводов:
► 1 – MOSI
► 2 – VCC
► 3, 8, 10 – GND
► 4 – TXD
► 5 – RESET
► 6 – RXD
► 7 – SCK
► 9 – MISO
Световая индикация
► Красный светодиод G — Включен
► Красный светодиод R — Обмен данными
Перемычки
► JP1 — POWER, управляет напряжением на разъеме ISP VCC (вывод 2), можно установить на + 3.3В, + 5В или вовсе убрать перемычку, если программируемое устройство, имеет собственный источник питания.
► JP2 — SERVICE, обновления прошивки USBasp.
► JP3 — SLOW, программирования на низких скоростях, если программируемое устройство, работает на частоте ниже 1.5 МГц, SCK (вывод 7) уменьшит частоту с 375 кГц до 8 кГц.
Принципиальная схема программатора USBAsp V2.0 можно посмотреть на рисунке ниже.
Список поддерживаемых AVR микроконтроллеров:
► Mega Series: ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535,
► Classic Series: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
► Can Series: AT90CAN128
► PWN Series: AT90PWM2, AT90PWM3Установка драйвера USBAsp на Windows 8/10
Подключаем программатор к USB порту на компьютере, если все нормально, на плате загорится красный светодиод. Далее операционная система начнет поиск драйвера
Так как, в операционной системе нету необходимого драйвера, в «Диспетчере устройств» появится устройство «USBAsp» с восклицательным знаком.
Скачиваем архив с цифровой подписью, разархивируем и запускаем «InstallDriver. exe»
Драйвер установлен, в «Диспетчере устройств» пропадет восклицательный знак с «USBAsp».
Установка драйвера на Windows XP и Windows 7 аналогичная, программатор готов к работе.
Программа для USBAsp V2.0Программу разработал «Боднар Сергей», работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe».
В качестве примера, прошью китайскую плату Arduino UNO R3 в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры» и выбираем ATmega328P.
Далее, необходимо выбрать прошивку, в строке «Flash» нажимаем «. . .», переходим в папку «C:\Program Files\Arduino\hardware\arduino\avr\bootloaders\atmega» и выбираем «ATmegaBOOT_168_atmega328.hex», жмем «Открыть»
Подключаем программатор к плате «Arduino UNO R3», и нажимаем кнопку «Программирование».
В конце, выйдет диалоговое окно, о удачном окончании программировании.
Ссылки
Скачать драйвер для программатора USBASP v2.0 (LC Technology, ATMEL)
Скачать программу AVRDUDE_PROG v.3.3
Купить на Aliexpress
Программатор USBASP v2.0 (LC Technology, ATMEL)
Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)
Купить в Самаре и области
Программатор USBASP v2.0 (LC Technology, ATMEL)
Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)
Миниатюрный USB программатор для AVR микроконтроллеров / Хабр
Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):
Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:
На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.
Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно
Прошивка управляющего микроконтроллера
Итак, после сборки устройства осталось самое важное — прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом 🙂 Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:
После прошивки должен загореться светодиод подключенный к 23 ноге микроконтроллера. Это будет верный признак того, что программатор прошит удачно и готов к работе.
Установка драйвера
Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:
Выбираем папку где лежат дрова и жмем Далее
Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:
Забиваем на предупреждение и продолжаем установку, после небольшой паузы появится окно, сообщающее об успешном окончании операции установки драйвера
Все, теперь программатор готов к работе.
Khazama AVR Programmer
Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer. Замечательная программка, с минималистичным интерфейсом.
Она работает со всеми ходовыми микроконтроллерами AVR, позволяет прошивать flash и eeprom, смотреть содержимое памяти, стирать чип, а также менять конфигурацию фьюз-битов. В общем, вполне стандартный набор. Настройка фьюзов осуществляется выбором источника тактирования из выпадающего списка, таким образом, вероятность залочить кристалл по ошибке резко снижается. Фьюзы можно менять и расстановкой галок в нижнем поле, при этом нельзя расставить галки на несуществующую конфигурацию, и это тоже большой плюс в плане безопасности.
Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.
Скачать файл печатной платы в SprintLayout можно по этой ссылке
Ну вроде все, если возникнут вопросы, постараюсь ответить.
описание USBASP драйвера, инструкция по настройке своими руками в AvrDude Prog, Atmel Studio и Khazama AVR Programmer, обновление проши
В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.
Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание: ссылка
Список поддерживаемых микроконтроллеров
ATmega серия ATmega8 ATmega48 ATmega88 ATmega168 ATmega328ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535
Tiny серия ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313
Серия Classic AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535
CAN серияAT90CAN128
PWM серияAT90PWM2 AT90PWM3Внешний видКомплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.
Культура исполнения и вправду хромает, мне в глаза сразу бросились криво припаянные гребёнки. Везде где только можно — имеются следы флюса, причём с окислами, по всей видимости, программаторы давно валялись на складе, а сборка их производилась с присущей китайцам быстротой.
Некоторые отверстия не целиком заполнены припоем
SMD-элементы тоже криво припаяны
Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл
Размеры платы несколько больше USB-TTL-конвертера на CP2102
Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.
JP1 — замыкается в случае обновления прошивки самого программатораПрограмматор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Установка драйверовЧтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows1) Скачать драйвера, распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».
3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»
4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»
5) «Всё равно установить этот драйвер»
6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены
Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.
При этом периодически будет выпадать такая ошибка, закрыв окно, программа продолжит работу.
Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер
Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *. hex — если его не писать, то она сохранится как просто файл без расширения.
Скачиваю прошивку для программатора с этой странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.
Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.
Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.
Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано, какие из них установлены, а какие нет.
Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно:
Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.
AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.
Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.
Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать здесь.
AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.
Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3
2) Программный: отредактировать файл «programm. ini» в папке с программой AVRDUDE PROG 3.3
Внести туда четыре строчки кода и сохранить. (взято отсюда)
progisp=jtag2pdiportprog=COM1portenabled=1[UsbaspSpeed]
progisp=Usbasp -B 3
portprog=usb
portenabled=0
Примечание. Здесь применён ключ “-B”, который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах
После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.
Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.
Программатор с заводской прошивкой нормально работает с ATtiny13, если не считать постоянно появляющихся окон с ошибкой, о чём раннее уже рассказывал.
Но с программатором на новой прошивке уже появляется иная ошибка с невозможностью прочесть сигнатуру (цифровую подпись) контроллера.
Но стоит замкнуть перемычку JP3, и можно спокойно работать
Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.
Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:то загрузив код на Attiny13, светодиод будет мигать очень медленно?#define f_cpu 9600000
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally [CKDIV8=0] — это включенный предделитель частоты, который делит эти 9. 6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.
Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.
Интеграция программатора в Atmel Studio 7 Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.
Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.
На верхней панели инструментов выбрать «Tools» — «External Tools…»
Откроется небольшое окно, нажать «Add»
В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.
Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой
Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию
Конфигурация для Atmega168
-p m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите здесь — также там найдёте описания ключей AVRDUDE.
Конфигурация для ATtiny13
-p t13 -c usbasp -B 3 -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
Здесь можно заметить уже два изменения: помимо «t13», добавился уже знакомый ключ “-B” со значением «3» для снижения скорости программированияПосле заполнения полей нажать «Apply» и «ОК». Окно закроется
Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.
Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…»
Откроется следующее окно:
Перейти во вкладку «Commands» — нажать кнопку «Add Command…»
Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»
«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».
Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.
При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».
И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.
Минусом khazam’ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником):
Как рекомендует выставить разработчик:
HFUSE=0xc9
LFUSE=0xef
Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF.
Если всё сходится, можно нажимать «программирование»
ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя._____________________________________Выводы Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.
Список ссылок
1) Описание USBASP
2) AVRDUDE PROG 3.3 (форум)
3) Khazama AVR Programmer 1.7
4) Китайская стоковая прошивка (10кб)
5) Архив с прошивками для USBASP и драйверами для Windows — сайт создателя проекта
USB программатор своими руками на ATmega8
Предлагаем Вам схему USB программатора на микроконтроллере ATmega8. Этот USB программатор Вы можете собрать своими руками за несколько минут на макетной плате Breadboard Half (BREADBOARD – 456 HOLES) размером 82х59 мм. На этой плате хватит места и для программируемых микроконтроллеров в корпусах до DIP-28.
Этим USB программатором можно программировать микроконтроллеры AVR ATmega и ATtiny (другие программировать не пробовал). Этот программатор заметит Вам плату Arduino, он более удобен для экспериментов с различными микроконтроллерами и микропрограммами для них (скетчами). USB программатор работает под управлением микропрограммы ArduinoISP.
Минимальный набор деталей для программатора
- Микроконтроллер ATmega8 (ATmega8A-PU, ATmega8L-PU) 1шт
- Макетая плата Breadboard Half (BREADBOARD – 456 HOLES) размером 82х59 мм 1шт
- Интерфейс USB-UART (подойдет USB-DATA кабель от старого сотового телефона) 1шт
Остальные детали, которые вы увидите на схеме для работы универсального, самодельного, простого программатора не существенны.
О подключении пробников, бузер можно подключить на линию MISO и слушать как общаются между собой микроконтроллеры. Светодиод можно подключить к 15 ножке микроконтроллера ATmega8, если схема собрана правильно и в Atmega8 залит скетч ArduinoISP, светодиод будет плавно менять яркость свечения.
Прежде чем воспользоваться самодельным программатором, необходимо загрузить в микроконтроллер программатора микропрограмму ArduinoISP из примеров к программе Arduino IDE. А еще раньше, необходимо настроить микроконтроллер ATmega8 на работу на частоте 8 МГц без внешнего кварцевого резонатора.
Мы здесь, приведем последовательность действий по прошивке микроконтроллера ATmega8 с помощью платы Arduino UNO и программы Arduino IDE. Возможно, так же, воспользоваться каким нибудь другим методом.
1. Добавьте в программе Arduino в список поддерживаемых устройств микроконтроллер ATmega8 без bootloader с тактовой частотой 8МГц. Внесите изменения в файл sketchbook/hardware/boards. txt, добавив в него следующую секцию:
############################################################## a8noboot_8MHz.name=ATmega8 (no boot 8 MHz int) a8noboot_8MHz.upload.maximum_size=8192 a8noboot_8MHz.bootloader.low_fuses=0xa4 a8noboot_8MHz.bootloader.high_fuses=0xdc a8noboot_8MHz.build.mcu=atmega8 a8noboot_8MHz.build.f_cpu=8000000L a8noboot_8MHz.build.core=arduino a8noboot_8MHz.build.variant=standard ##############################################################
Уточнить размещение папки sketchbook можно в программе Arduino в меню / . Если в папке sketchbook нет папки hardware, создайте ее и создайте файл boards.txt
2. Подключите микроконтроллер ATmega8 к плате Arduino UNO как описано в Программатор для ATmega8A на Arduino с ArduinoISP.
3. В программе Arduino выберите / / и / . Далее загрузите в микроконтроллер ATmega8 программу ArduinoISP / / и .
4. Соберите программатор.
Для программатора Вам понадобится интерфейс USB-UART. Вы можете воспользоваться кабелем от старого сотового телефона, как описано в этой статье Подбор USB-DATA кабеля вместо USB-UART модуля для самодельного Arduino. Что на мой взгляд, очень удобно. Но вместо этого кабеля Ваш программатор можно подключить к компьютеру с помощью платы преобразователя USB-UART.
На фотографии программируется микроконтроллер ATtiny84.
Как подключить AVR микроконтроллер к программатору
Научимся искать информацию по разным моделям AVR микроконтроллеров, разберемся c чтением PDF документов в операционной системе Linux. Узнаем как подключить микроконтроллер к программатору используя интерфейс ISP при помощи нескольких проводников.
Содержание:
- Несколько рекомендаций
- Чтение PDF документов в Linux
- Подключение AVR микроконтроллера к программатору
- Заключение
Несколько рекомендаций
Чтобы правильно подключить микросхему-микроконтроллер к программатору нужно разобраться где у него и какие выводы. Для получения исчерпывающей информации о интересующем нас микроконтроллере качаем на официальном сайте даташит (datasheet) на интересующий нас чип – Даташиты по микроконтроллерам ATMEL.
На первой страничке даташита приводится подробное описание возможностей микроконтроллера, а далее приведена распиновка микросхем под каждый из типов корпусов. Каждый даташит по AVR чипу содержит массу подробной информации на английском языке, к примеру даташит на микроконтроллер ATmega8 содержит 326 страниц!
Не знаете английского? – старайтесь понемногу изучать, без него сейчас очень трудно в современном мире радиоэлектроники и компьютерной техники, это универсальный международный язык. А пока что, если не знаете что означает какое-то слово или предложение – переведите его через сервис машинных переводов translate.google.com.
Чтение PDF документов в Linux
Как правило, все даташиты на микросхемы поставляются в формате PDF (Portable Document Format) – формат электронных документов для использования на разных платформах, разработан фирмой Adobe Systems.
Под Windows есть множество разных программ для чтения и работы с документами формата PDF. В операционной системе Linux формат PDF тоже имеет отличную программную поддержку.
Программы в Linux что умеют читать PDF:
- Okular – универсальная и мощная программа для просмотра документов, входит в окружение рабочего стола KDE;
- Qpdfview – простая и легковесная программа для просмотра документов в формате PDF, DjVu и PS;
- Evince (Document Viewer) – очень быстрый и легковесный просмотрщик документов PostScript (PS), EPS, DJVU, DVI, PDF;
- Xpdf – высокопроизводительный просмотрщик PDF-файлов.
Какую программу выбрать для просмотра PDF под Linux? – очень хорошо справляются со своими задачами программы Okular и Evince.
Если у вас установлена рабочая среда KDE то скорее всего что программа Okular уже присутствует в системе. Если Okular не установлен то исправить это можно командой:
sudo apt-get install okular okular-extra-backends
Если же у вас рабочая среда отличная от KDE – GNOME, XFCE, UNITY то более экономичным решением будет установить Evince, поскольку установка в данных средах программы Okular потребует некоторые компоненты от рабочей среды KDE.
Рис. 1. Универсальный просмотрщик документов Evince под Linux – средство для листания PDF документов по микроконтроллерам.
Просмотрщик документов Evince очень хорошо открывает огромные документы и справляется иногда с такими что не под силу прочитать для Okular. Установка Evince в Linux:
sudo apt-get install evince
Думаю что у вас теперь не возникнет проблем с чтением документов в формате PDF под ОС GNU Linux .
Подключение AVR микроконтроллера к программатору
Выше было рассказано что для подключения микроконтроллера к программатору нужно соединить выводы ISP: VCC, GND, MISO, MOSI, SCK, RST. Выводы с данными названиями присутствуют у всех микроконтроллеров, так что даташит нам в помощь.
Рис. 2. Распиновка микроконтроллера ATmega8 и подключение его к ISP (USB ASP).
У программатора USB ASP на коннекторе ISP предусмотрено напряжение +5В (VCC), так что для программирования чипа можно воспользоваться питанием от программатора, а вернее от USB порта к которому он подключен.
В рассмотреных раньше программаторах, что используют COM и LPT порты, нет вывода VCC, а это значит что с использованием этих программаторов на выводы GND (-) и VCC (+) микроконтроллера нужно подать напряжение питания 5В от внешнего источника.
Подключения микроконтроллера к программатору USB ASP на беспаечной макетной панели очень просто реализовать при помощи перемычек (проводники со штырьками на двух концах).
Рис. 3. Подключение к ISP коннектору программатора USB ASP на беспаечной макетной панели.
Рис. 4. Программатор USBASP подключен к микроконтроллеру ATmega8 (увеличение рисунка по клику).
Приведенного на рисунке выше подключения уже достаточно чтобы записать прошивку в микроконтроллер. По умолчанию в микроконтроллере ATmega8 используется внутренняя RC-цепочка что задает частоту тактового генератора, поэтому мы не устанавливали внешний кварц и конденсаторов.
Заключение
Как видите, нет ничего сложного в подключении микроконтроллера к программатору используя интерфейс ISP. Главное найти даташит под нужный микроконтроллер и разобраться с его ножками, а там останется подсоединить несколько проводков и… готово!
В следующей статье рассмотрим программное обеспечение для работы с AVR микроконтроллерами под ОС GNU Linux, а также кратко рассмотрим разные среды для разработки и написания кода.
Начало цикла статей: Программирование AVR микроконтроллеров в Linux на языках Asembler и C.
Топ-10 лучших программаторов и дебаггеров с Алиэкспресс
В жизни любого радиолюбителя наступает момент, когда собранный своими руками программатор хочется заменить на что-то купленное и с бОльшими возможностями. Или расширить номенклатуру совместимых кристаллов. На Алиэкспресс можно найти огромный ассортимент универсальных программаторов и готовые адаптеры для установки микросхем памяти и контроллеров. В подборке будут интересные модели для AVR (ATMega/ATTiny), для PIC, STM8/STM32, для EEPROM, для Zigbee контроллеров и адаптеры.
С другими полезными обзорами и списками выгодных покупок вы можете ознакомиться по ссылке.
Внутрисхемный отладчик CC Debugger за $7.65
Все больше становится доступного программного обеспечения, с помощью которого можно настраивать по себя различные модули и устройства. А конкретно, CC-Debugger может использоваться для программирования и отладки систем на базе 8051, например, модулей CC2531, на базе которых производятся гаджеты для умного дома и «интернета вещей». Работает с программным обеспечением IAR и SmartRF Studio.
Недорогой USB Zigbee трансмитер-снифер СС2531
Хороший пример использования предыдущего отладчика CC-Debugger — это заливка адаптированной прошивки в компактный USB донгл для сети Zigbee. С помощью модифицированного Zigbee трансмиттера можно привязывать устройства в свою сеть, создавать собственные Zigbee-мосты, анализировать протоколы датчиков и так далее.
Универсальный программатор AVR USBASP
Один из лучших программаторов для AVR — это классический USBASP, компактный и универсальный программатор, для загрузки программного обеспечения через интерфейс ISP. В комплекте есть кабель для загрузки через ISP на 10 контактов. Подходит не только для семейства ATMEGA8, но и для новых ATMEGA128. Работает в Win7.
Дешевый ПРОГРАММАТОР AVR USBASP
А это еще один вариант USB ISP программатора для AVR (семейства ATMega и ATTiny). В отличие от предыдущего имеет выбор питания кристалла (5V или 3.3V джампером), а также в два раза меньшую стоимость. Интерфейс для программирования ISP, но есть смысл воспользоваться отдельным адаптером с ISP10 на ISP6 для удобства работы с компактными отладочными платами Arduino.
Универсальный программатор Ch441A
Устройство представляет собой полноценный uart-мост и эмулятор последовательного порта. Предназначен для прошивки микросхем памяти (24 EEPROM и 25 SPI flash 8pin/16pin) и микроконтроллеров по spi (AVR, PIC, Singlechip STC). Подходит для восстановления флэш-памяти BIOS USB. Для работы с контроллерами Атмел используется программное обеспечение AVR Ch441A или AVRDUDE
Программатор-отладчик ST-LINK
Для работы с устройствами от STMicroelectronics рекомендую использовать программатор ST LINK. По ссылке версия ST-Link V2, который подходит для чипов семейств STM8 и STM32. Удобен для загрузки встроенного программного обеспечения на контроллер прямо в составе схемы, а также для отладки работы и поиска ошибок. В комплекте есть 4-pin кабель. Цена смешная — полтора бакса.
Программатор и SWD адаптер J-Link
А вот если нужен адаптер посерьезнее, то есть смысл посмотреть недорогой программатор SWD, который совместим со всеми функциями J-Link. В данной модели интерфейс упрощен до четырех линий: VCC, SWDIO, SWCLK, GND. Но, по сравнению с обычными, этот вариант быстрый и эффективный. Подключается через MicroUSB, корпуса, увы, не предусмотрено. Цена всего 2 бакса.
Программаторы PICKIT версий 2/3/3.5
Один из лучших USB программаторов для PICmicro контроллеров и ключей KeeLOQ производства компании Microchip Technology. В лоте на выбор есть модели: PICKIT3, PICKIT2 или PICKIT 3,5. Лучше брать последние версии устройства. В комплекте идет плата расширения с ZIF-сокетом (PIC ICD2). Полный схемотехнический аналог фирменного программатора PICKIT 3 компании Microchip.
Универсальный USB SPI программатор EZP2019
Новейшая версия универсального USB программатора EZP2019 с высокоскоростным интерфейсом SPI с большим набором адаптеров для EEPROM, клипсами и диском с программным обеспечением. Этот вариант несколько лучше дешевого программатора Ch441A. Является усовершенствованной версией программаторов EZPO2010/EZP2013. В комплекте есть все необходимое для работы.
Есть еще один хороший вариант — универсальный программатор TL866II, но он не поместился в текст статьи, о нем будет позже.
Программирование ATmega8 с использованием Arduino IDE
«Я написал свой код для платы Arduino UNO. Можно ли загрузить мой скетч на микроконтроллер AVR, кроме ATmega328? Думаю, это самый частый вопрос любителей Arduino. Это может иметь разные причины, например:
- Использование более дешевого микроконтроллера AVR
- Требуется микроконтроллер AVR с большим или даже меньшим количеством контактов, чем у ATmega328
- У вас есть все виды AVR, кроме ATmega328: D
В этом руководстве вы будете узнайте, как программировать ATmega8 с помощью Arduino IDE.Он не ограничивается только ATmega8 и может быть распространен на другие ядра, доступные на GitHub MCUDude. Он состоит из двух частей. В первой части описывается установка загрузчика Arduino на ATmega8. Во второй части показано, как программировать ATmega8 с использованием Arduino IDE и преобразователя USB в TTL.
Часть первая: Установка загрузчика ArduinoВ этой части мы добавляем поддержку ATmega8 в Arduino IDE. Затем мы установили макет и подключили ATmega8 к плате Arduino UNO.
Шаг первый: Добавление поддержки ATmega8 в Arduino IDE с помощью Board ManagerВ репозитории MCUDude на GitHub доступны различные типы ядер.MiniCore используется для микроконтроллера ATmega8. В этом ядре поддерживаются следующие микроконтроллеры:
- ATmega8
- ATmega48
- ATmega88
- ATmega168
- ATmega328
Чтобы установить MiniCore в IDE Arduino, выполните следующие действия.
- В меню File щелкните Preferences .
- Теперь в URL-адресах менеджера дополнительных плат введите следующий URL-адрес:
https: //mcudude.github.io / MiniCore / package_MCUdude_MiniCore_index.json
- Перейдите в меню Tools и затем выберите Board > Boards Manager
- В окне Boards Manager найдите MiniCore и установите последнюю версию.
Вышеупомянутые шаги показаны здесь графически:
Распиновка ATmega8 показана на следующем рисунке.
Шаг второй: Программирование Arduino как ISP (внутрисистемное программирование)Чтобы записать загрузчик Arduino, нам нужно сделать наш Arduino UNO как ISP.Во встроенных примерах Arduino IDE есть эскиз под названием ArduinoISP . Выполните следующие действия, чтобы запрограммировать Arduino UNO в качестве интернет-провайдера.
- Открыть файл > Примеры > 11.ArduinoISP > ArduinoISP
- Загрузите этот эскиз на свой Arduino UNO.
- Подключите Arduino к ATmega8, как показано ниже.
Arduino ———- ATmega8
SCK / контакт 13 ———- SCK / PB5
MISO / контакт 12 ——– –MISO / PB4
MOSI / контакт 11 ———- MOSI / PB3
SSN / контакт 10 ———- СБРОС
- Перейти к инструментам > Board и выберите ATmega8 .Вы также можете выбрать тип часов и частоту в меню Инструменты .
- Выберите тип программатора в Tools > Программист: как « Arduino как ISP ».
- Теперь в меню Tools щелкните Burn Bootloader .
Если операция прошла успешно, отображается сообщение « Выполнено запись загрузчика ». Поздравляю! Вы сделали это.
Часть вторая: Программирование ATmega8 с использованием Arduino IDE и преобразователя USB в TTLЗдесь у нас есть ATmega8 с загрузчиком Arduino.Как вы знаете, на всех платах Arduino есть преобразователь USB в TTL. Он действует как мост между микроконтроллером и Arduino IDE. Мы используем модуль преобразователя USB в TTL Ch440 для загрузки скетча в ATmega8.
Шаг четвертый: Настройка подключенийПодключите компоненты, как показано ниже.
Ch440 ———- ATmega8
VCC ———- VCC
GND ———- GND
Tx — ——- RX / PD0
Rx ———- Tx / PD1
Шаг пятый: Загрузка эскиза в ATmega8Нажмите и удерживайте кнопку сброса.Теперь нажмите на загрузку в IDE. Удерживайте кнопку, пока в строке состояния IDE не появится надпись «Выгрузка…». Отпустите кнопку после начала процесса загрузки. Это потому, что микроконтроллер должен находиться в состоянии СБРОС, когда начинается процесс загрузки.
Примечание. Если процесс завершился неудачно, установите конденсатор емкостью 100 нФ на Vcc и GND микроконтроллера как можно ближе.
Примечание. Некоторые модули преобразователя USB в TTL имеют вывод с именем DTR. Если у вас тоже есть этот вывод, вы можете подключить его к выводу RESET ATmega8, и нет необходимости использовать кнопку для ручного сброса микроконтроллера.
Как программировать микроконтроллеры AVR, дешево и просто: 4 шага
- Подключите программатор Usbasp, Windows может не распознать драйвер, в этом случае загрузите файл usbasp.2011-05-28.tar.gz с http: / /www.fischl.de/usbasp/.
- Откройте папку usbasp.2011-05-28 \ bin \ win-driver \ libusb_1.2.4.0 и запустите 32- или 64-битный установщик в соответствии с вашей системой
- Перейдите в диспетчер устройств и выберите «Обновить вручную», выберите usbasp .2011-05-28 и проверьте параметр include subfolders.
После этого вам понадобится программное обеспечение, которое может взаимодействовать с Usbasp, есть много, я перечислю следующее, основываясь на своем опыте:
o AVRdude: используйте это, если вам абсолютно нравится интерфейс командной строки, это программное обеспечение может вызываться некоторыми продвинутыми IDE, такими как Eclipse и т. д.
o PonyProg: программист последовательного устройства, используйте его, если у вас все еще есть последовательный порт и вы хотите построить дополнительное оборудование. Преимущество этой установки в том, что вам не понадобится оборудование Usbasp!
o Khazama: он выполняет задачу, но постоянно выдает окна с ошибками, и вы почти не слышите о состоянии задач, которые вы заказываете, пользовательский интерфейс очень неудобен, не может считывать биты предохранителей
o eXtreme Burner: нет имеет только приятный пользовательский интерфейс и выполняет задачи, он быстро отображает состояние задач !, плохая сторона в том, что для загрузки вы должны поделиться им в своем Facebook или другой социальной сети.(Раньше этого не было, но для меня этого достаточно.) Также я обнаружил, что из-за некоторой ошибки он загружал только до 10 КБ кода на Atmega128.
o ProgISP: это китайское программное обеспечение, которое обычно поставляется с USBISP, как показано ранее, оно поддерживает практически любой микроконтроллер AVR и имеет хороший пользовательский интерфейс, оно позволяет вам записывать и читать из памяти ROM, вставлять биты и EEPROM, он информирует вас об ошибках и т. Д., Вы можете скачать его здесь http: //www.electrodragon.com / w / ProgISP
(Единственная проблема с ProgISP заключается в том, что некоторые определения битов предохранителей могут показаться поврежденными, чтобы решить эту проблему, вам нужно найти файлы XML и стереть некоторые поля, однако я скоро загрузю репозиторий с фиксированным XML файлов.)
При таком подходе мы устанавливаем ProgISP и проверяем, распознается ли Usbasp, это можно быстро сделать, открыв ProgISP, выбрав соответствующий чип и нажав кнопку Прочитать биты подписи, должно появиться окно ошибки (см. изображение выше)
- Если он говорит, что программист не может быть найден, то вам следует переустановить драйвер или, возможно, ваш программист мертв.
- Если он говорит об ошибке включения микросхемы, значит, ваш программатор успешно распознан, и вы готовы к следующему шагу. (Появляется сообщение об ошибке включения микросхемы, поскольку микроконтроллер не подключен)
Все микроконтроллеры Atmega можно программировать через интерфейс ISP, который состоит из 6 строк tMOSI, MISO, SCK, RESET, VCC, GND.Подключите эти линии от вашего микроконтроллера к вашему программатору. (Взгляните на третье изображение на этом этапе, светодиод, подключенный к PD5, не является обязательным, но мы будем использовать его для тестирования нашего кода)
Если вы подключили его правильно, нажмите снова прочитать байты подписи, и вы должны получить подобное сообщение в консоли ProISP:
Идентификатор чтения успешно (01.09.2015 13:28:03)
О компании Программатор AVR
АРН Внутрисхемный последовательный программатор
АРН Розетка PCB
|
|
|
|
Программирование ATmega8 с помощью AVR-USBASP | Случайные коды
ATmega8 с усовершенствованной виртуальной RISC-архитектурой представляет собой микроконтроллер с 28-контактным DIP-корпусом, совместимым с макетной платой.Этот пост предназначен, чтобы помочь новичкам программировать микросхемы ATmega8 с помощью USBASP.
USBASP – это последовательный программатор с последовательным периферийным интерфейсом для программирования. Программатор состоит из 10-контактного стандартного последовательного разъема для подключения к целевой плате для программирования. USBASP состоит из микросхемы ATmega8, которую можно подключить через порт USB в качестве ПРОГРАММАТОРА ELEMENTZ AVR, предоставив отсюда подходящий драйвер.
Целевая распиновка выглядит следующим образом
Описание распиновки следующее.
Нетто | Описание | Соединительный штифт- ATMEGA8 |
MOSI | Главный выход, подчиненный вход | 6 |
MISO | Главный выход, подчиненный вход | 7 |
SCK | Последовательные часы | 8 |
TRST | Сброс цели | 9 |
TVCC | Целевой VCC | 10 |
ЗЕМЛЯ | Земля | 11 |
Подключение выполняется следующим образом.
После подключения программатора USBASP к USB-порту в первый раз пользователь должен найти файл драйвера по указанной выше ссылке. После успешной установки диспетчер устройств должен указать устройство как « ELEMENTZ AVR-USB PROGRAMMER ».
Затем подключите программатор AVR к плате проекта. Совместимую доску проекта можно приобрести по этой ссылке. Для других плат подключите 10-контактный разъем, используя указанную выше распиновку.
Для программирования вашей IC AVRDUDE требуется графический интерфейс, который можно загрузить по этой ссылке.
Откройте графический интерфейс AVRDUDE. Убедитесь, что конфигурация выполнена правильно, как показано на рисунке ниже.
Для работы внешних кварцевых генераторов необходимо изменить настройки предохранителей. Щелкните вкладку предохранителей и укажите настройки низкого и высокого уровня предохранителей, выберите запись и нажмите «Выполнить».
Вот некоторые популярные настройки предохранителя.
Низкий предохранитель | Верхний предохранитель | Описание |
E1 | D9 | Factory Default – работает с внутренним RC-генератором 1 МГц |
E4 | D9 | Работает с внутренним RC-генератором 8 МГц |
FF | D9 | Работает с внешним кварцевым генератором 8-16 МГц |
Программа может быть загружена во флэш-память, указав шестнадцатеричный файл во вкладке Flash.Выберите кнопку записи и нажмите «Выполнить».
Другие ресурсы и ссылки.
1) Elementz AVR- драйвер USBASP – ссылка
2) AVRDUDE GUI – ссылка
3) Руководство пользователя USBASP – ссылка
4) Плата проекта ATMEGA 8 – ссылка
5) Продукт USBASP Ebay – ссылка
Как это:
Нравится Загрузка …
| usbasp_single_side.t3001.zip Томас Фишль, Односторонняя печатная плата, TARGET 3001! файл макета Размер: 90×40 мм (оптимизирован для корпуса Hammond 1591ATBU) | |
| lv_usbasp.tar.gz Павел Шрамовский (11/2007) С Низковольтный интерфейс . Односторонняя печатная плата, файлы макета EAGLE, некоторые компоненты SMD | |
| Автор: Бернхард Валле, Двусторонняя печатная плата, файлы компоновки EAGLE, список деталей с номерами для заказа для Reichelt.de и Conrad.de Размер: оптимизирован для корпуса Hammond 1591ATBU | |
| http: // thomaspfeifer.net / atmel_usb_programmer.htm Томас Пфайфер, Односторонняя печатная плата, файлы макета PDF, компоненты SMD | |
| Томаш Островски Односторонняя печатная плата, файлы макета PDF и EPS, только четыре части 0805 SMD, остальные дискретные компоненты | |
| USBasp_CH.застежка-молния Автор: Кристиан Хейгемейр, Односторонняя печатная плата, с некоторыми компонентами SMD 0805, PDF-файлы С дополнительными кнопками сброса и отключения мишени | |
| USBasp.sch,
USBasp.pcb ComponentSide.pdf, TopSide.pdf, Schematics.pdf по Журов Павел Односторонняя печатная плата, формат P-CAD 2002 и файлы PDF Крестовина TXD и RXD добавлены для разъема ISP | |
| usbasp_gr.rar автор: J.A. de Groot Плата односторонняя (формат EAGLE), имеет размеры 3 на 8 см и использует только обычные компоненты. | |
| usbasb_mg.zip Маттиас Гёрнер, Плата односторонняя, формат орла, с файлами PS / PDF интегрированные разъемы для целевых микросхем ATmega8 и ATmega32 | |
| Тарбол с макетом Автор: Ханнес Остлунд, Двусторонняя печатная плата, компоненты SMD, очень маленькие | |
| Сергей Богданцев (01/2010) 3.Версия 3V, только ATMega48. Односторонняя печатная плата, формат макета ExpressPCB + плата разъемов для различных AVR. Без будущего последовательного интерфейса чип изначально должен быть запрограммирован другим программатором. | |
| Eaglefiles (sch / brd) и дизайн корпуса САПР (dxf) Ганса Хафнера, HTL Mössingerstrasse-Klagenfurt, Österreich, hans.hafner (at) htl-klu (dot) at (01/2010) Корпус, фрезерованный на ЧПУ (доступен файл DXF), макет Eagle, всего несколько деталей для поверхностного монтажа | |
| Различные версии USBasp: простая в сборке версия без smd, smd и очень маленький USBasp Свен Хедин (01/2011) Доступны файлы Eagle. | |
| Программатор USB Key AVR Фабио Бальтиери (09/2011) Очень маленький USB-ключ, как и габариты. Детали SMD. | |
| Программатор AVR ISP Ярослав Вадель (04/2012) Маленький программист.Детали SMD. | |
| Целевой проект и PDF-файлы (макет / схемы) Мариус Шефер (09/2013) | |
| tinyUSBboard с USBasp-совместимой прошивкой Стефан Барвольф (04/2014) | |
| USBasp на макетной плате с разъемом для дочерних плат контроллеров. от Фабиана Хаммеля (11/2018) | |
| Тьяарт ван Асвеген разработал SMD-плату: файлы DIP TRACE и GERBER. Тьяарт ван Асвеген (09/2019) | |
| Многофункциональный (например,грамм. различные уровни напряжения, встроенный преобразователь USB в последовательный порт, разъем USB-C) Конструкция, совместимая с USBasp.
AVR Programmer Github project. Брайан Пепин (12/2019) | |
| USBasp с разъемом ZIF и компонентами со сквозным отверстием.
Дизайн KiCad на Github Бруно (04/2020) | |
| Плата USBasp с дополнительным 6-контактным разъемом и выбираемым целевым источником питания (3.3 В / выкл. / 5,0 В). Марти Э. (10/2020) | |
| Джон включил в комплект универсальную розетку на 40 контактов, на которую можно установить устройства с 8, 14, 20 и 28 контактами.
Он также добавил универсальный кварцевый генератор с выходами 1, 2, 4, 8 и 16 МГц для синхронизации микросхем.
Также имеется стандартный 6-контактный разъем ICSP и пользовательский светодиод, подключенный к контакту MOSI. от Джона П. (11/2020) |
Программист микроконтроллера ATmega8
Программист микроконтроллера ATmega8Программатор микроконтроллеров ATmega8
В этом проекте описывается, как создать простой программатор для однокристальных микроконтроллеров Atmel ATmega8. Это следует считать программистом “хобби”, поскольку он не использует переменную Vcc и использует “Последовательный Алгоритм программирования.”ATmega8 может быть настроен (с помощью программируемых предохранителей) на отключение последовательного Режим программирования. После отключения требуется параллельный программатор для повторного включения предохранителя последовательного программирования.
Аппаратное обеспечение программатора состоит из 28-контактного разъема для ATmega8 и 14-контактного разъема для подключения к
SBC2 на борту 65C22. Обратите внимание, что это может быть адаптировано для использования с любым 65C22. ATmega8 использует
5 контактов для последовательного программирования (в дополнение к Vcc и Gnd):
ATmega8 (DIP28) SBC2 65C22 (DIP40)
Контакт порта Описание функции J1 PIN PORT PB5 19 (sck) сдвиг часов 5 11 PB1 PB4 18 (MISO) вывод данных 3 12 PB2 Вход данных PB3 17 (MOSI) 4 10 PB0 PC6 1 (/ RES) / Сброс 9 16 PB6 PB6 9 (CLK IN) Внешние часы 10 17 PB7
Atmega8 требует наличия действующего тактового сигнала во время программирования.Если предохранители настроены на использование внешний источник синхронизации, тогда он должен быть предоставлен. Я решил использовать выход таймера 1 65C22. через PB7 для питания часов. Это гарантирует, что действительные часы всегда присутствуют. Поэтому мы будем используйте порт B 65C22 для доступа к программатору.
Этот программатор также должен работать с другими процессорами семейства Atmel.
Вот схема программатора:
Программирование ATmega8 осуществляется путем помещения детали в RESET и применения последовательных команд и данных к данные на выводе при тактировании вывода sck .Данные, считанные с детали, синхронизируются вывод данных pin.
Есть команды для чтения и записи памяти программ, памяти EEPROM и области конфигурации. (байты предохранения, биты блокировки, байты подписи и байты калибровки). Поскольку инструменты разработки AVR создают Выходной файл в формате Intel-Hex, я решил включить модифицированную версию “Intel Hex” Росса Арчера. Загрузчик », который обеспечивает беспроблемную работу.
Вот исходный код для программиста:
; ================================================= ====================== ; | ; SSSSSSS BBBBBB сообщества 222222 | ; S S B B C C 2 2 | ; SS B B C 2 | ; SSSS BBBBBBB C ======== 2 | ; SS B B C 2 | ; S S B B C C 2 | ; SSSSSSS BBBBBBB 0000-00-00C 22222222 | ; | ; ================================================= ====================== ; // ********************************************** ******************* // ; // Процедура программирования ATMega8 с использованием 5 строк из 65C22 VIA // ; // Автор: Дэрил Риктор (c) 19 декабря 2003 г. http: // 65c02.tripod.com/ // ; // ********************************************** ******************* // ; ; ЧЕРЕЗ - ФУНКЦИЯ - ATMega8 ; PB0 - MISO - PB4 (выход данных ATM8) ; PB1 - MOSI - PB3 (данные ATM8 в) ; PB2 - SCK - PB5 ; PB6 - / СБРОС - PC6 ; PB7 - вход OSC - PB6 (системные часы) ; ; Это программист-хобби, использующий алгоритм последовательного программирования LV. ; ; Данные программы загружаются от 1000 до 2FFF (16 бит, lo, hi)) ; Данные EEPROM загружаются от 3000 до 31FF (8 бит) ; Биты блокировки памяти загружаются по цене 3200 долларов (6 бит) ; Байт предохранителя загружен по цене 3201 долл. США (8 бит) ; Загружен старший байт предохранителя @ # 3202 (8 бит) ; Во время циклов сравнения данные, считанные с ATMega8, сохраняются здесь: ; Данные программы загружаются в $ 4000 - $ 5FFF (16 бит, lo, hi)) ; Данные EEPROM загружаются от 6000 до 61FF (8 бит) ; Биты блокировки памяти загружаются по цене 6200 долларов (6 бит) ; Байт предохранителя загружен по цене 6201 долл. США (8 бит) ; Загружен старший байт предохранителя @ # 6202 (8 бит) ; Байты подписи и калибровки хранятся по цене от 6203 до 6209 долларов (только чтение) ; $ 6203 MsgUnknownRecType ldx # загрузка не удалась jsr Print1Byte; распечатать это jsr print_cr jmp HdwRecs ; Мы достигли рекордного уровня HdEr2 jsr GetHex; получить контрольную сумму clc adc chksum; Добавить предыдущее значение накопителя контрольной суммы beq HdEr3; контрольная сумма = 0 означает, что все в порядке! lda #> MsgBadRecChksum ldx #MsgUploadFail ldx #MsgUploadOK ldx # 255 PrintStrAXX1 pla Тай rts ; ; Сообщения контрольной суммы ; MsgUnknownRecType .байт CR, LF, CR, LF .byte "Неизвестный тип записи $" .byte 0; завершать каждую строку нулем MsgBadRecChksum .byte CR, LF, CR, LF .byte "Неверная контрольная сумма записи!" .byte 0; Null-terminate MsgUploadFail .byte CR, LF, CR, LF .byte "Ошибка загрузки", CR, LF .byte "Прерывание!" .byte 0; завершать каждую строку нулем или сбой и сжечь MsgUploadOK .byte CR, LF, CR, LF .byte "Загрузка прошла успешно!" .байт 0 ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} %%%%%%%%%%%%%%%%%%%%%%%%%%%% ; КОНЕЦ ПРОГРАММЫ ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} %%%%%%%%%%%%%%%%%%%%%%%%%%%%
Вся информация предоставлена на условиях “как есть” и защищена авторским правом 2003. Программатор atmega8
– купить программатор atmega8 с бесплатной доставкой на AliExpress
Отличные новости !!! Вы попали в нужное место для программиста atmega8.К настоящему времени вы уже знаете, что все, что вы ищете, вы обязательно найдете на AliExpress. У нас буквально есть тысячи отличных продуктов во всех товарных категориях. Ищете ли вы товары высокого класса или дешевые и недорогие оптовые закупки, мы гарантируем, что он есть на AliExpress.
Вы найдете официальные магазины торговых марок наряду с небольшими независимыми продавцами со скидками, каждый из которых предлагает быструю доставку и надежные, а также удобные и безопасные способы оплаты, независимо от того, сколько вы решите потратить.
AliExpress никогда не уступит по выбору, качеству и цене. Каждый день вы найдете новые онлайн-предложения, скидки в магазинах и возможность сэкономить еще больше, собирая купоны. Но вам, возможно, придется действовать быстро, поскольку этот лучший программист atmega8 собирается в кратчайшие сроки стать одним из самых востребованных бестселлеров. Подумайте, как вам будут завидовать друзья, когда вы скажете им, что приобрели программатор atmega8 на AliExpress.Благодаря самым низким ценам в Интернете, дешевым тарифам на доставку и возможности получения на месте вы можете еще больше сэкономить.
Если вы все еще не уверены в программисте atmega8 и думаете о выборе аналогичного продукта, AliExpress – отличное место для сравнения цен и продавцов. Мы поможем вам решить, стоит ли доплачивать за высококлассную версию или вы получаете столь же выгодную сделку, приобретая более дешевую вещь.И, если вы просто хотите побаловать себя и потратиться на самую дорогую версию, AliExpress всегда позаботится о том, чтобы вы могли получить лучшую цену за свои деньги, даже сообщая вам, когда вам будет лучше дождаться начала рекламной акции. и ожидаемая экономия.AliExpress гордится тем, что у вас всегда есть осознанный выбор при покупке в одном из сотен магазинов и продавцов на нашей платформе. Реальные покупатели оценивают качество обслуживания, цену и качество каждого магазина и продавца.Кроме того, вы можете узнать рейтинги магазина или отдельных продавцов, а также сравнить цены, доставку и скидки на один и тот же продукт, прочитав комментарии и отзывы, оставленные пользователями. Каждая покупка имеет звездный рейтинг и часто имеет комментарии, оставленные предыдущими клиентами, описывающими их опыт транзакций, поэтому вы можете покупать с уверенностью каждый раз.