Схема программатора для atmega8
Поиск новых сообщений в разделах Все новые сообщения Компьютерный форум Электроника и самоделки Софт и программы Общетематический. Нужна схема программаторов для Atmega8, Atmega16 и Atmega Возможность программировать 3В и 5В схемы Светодиодная индикация режимов работы. Данный дивайс можно легко перепрошить и заставить работать как STK или AVR , либо при надобности превратить в виртуальный компорт. С поставленной задачей должен справится любой AVR программатор.
Поиск данных по Вашему запросу:
Схема программатора для atmega8
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
Содержание:
- Программатор AVR своими руками
- Primary Menu
- Программатор atmega8, attiny2313 своими руками
- USB программатор своими руками на микроконтроллере Atmega8.
Схема - Please turn JavaScript on and reload the page.
- Схема USB программатора на Atmega8 своими руками
- Делаем простой USB программатор USBTinyISP
- Делаем COM программатор для AVR микроконтроллеров.
- USBasp программатор микроконтроллеров AVR на Atmega8 своими руками
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: ДОКТОР AVR! 🚑 Лечим микроконтроллеры
Программатор AVR своими руками
Данной информации вполне хватит чтобы прошить большинство моделей AVR микроконтроллеров не только в Linux, но и в других ОС. Для того чтобы записать программу в AVR микроконтроллер вам понадобится программатор. Программатор — это небольшая электронная схема, которая позволяет подключить микроконтроллер к одному из портов компьютера COM, LPT, USB для последующего считывания и записи прошивки программирования.
Существует достаточно много разнообразных конструкций программаторов для AVR микроконтроллеров, которые подключаются к разным портам компьютера. Наиболее надежный и удобный вариант — это программатор что подключается к USB-порту, поскольку в новых настольных компьютерах и ноутбуках уже не устанавливают COM и LPT порты.
В готовых устройствах программатор подключается к микроконтроллеру посредством интерфейса ISP In System Programming — интерфейс внутрисистемного программирования. ISP интерфейс представляет собою несколько проводников по которым поступает тактовый сигнал и данные для связки программатора с микроконтроллером. Как правило ISP интерфейс размещают на платах в виде десяти или шести штырьков, к которым посредством подходящего коннектора через шлейф подключается программатор.
Для внутрисхемного программирования микроконтроллера достаточно всего 4 пина, поскольку питание микроконтроллера может осуществляться от самой схемы где он установлен. Как подключить программатор к микросхеме-микроконтроллеру AVR если он не впаян в схему? Такое устройство есть сейчас в продаже во многих отечественных и зарубежных интернет-магазинах, так что с покупкой проблем не должно возникнуть.
Данный программатор безопасен в использовании, имеет небольшие размеры и поддерживается большинством программ для прошивки микроконтроллеров AVR. Для Linux никаких драйверов устанавливать не нужно, после подключения программатора к USB порту устройство сразу же определится и будет готово к использованию. Ниже приведу распиновку коннекторов программатора USB ISP — она нам потом пригодится при подключении к микроконтроллеру. К тому же в интернете достаточно много ресурсов по данному свободному программатору, есть много готовых разводок печатных плат, в том числе и в программе SprintLayout, поэтому подробно в данной статье останавливаться на этом не будем.
Этот программатор еще называют «программатором Громова», в честь того кто придумал эту схему, создателя программы Algorithm Builder графическая среда для программирования AVR под Windows используя алгоритмический язык — Г.
Для сборки такого программатора потребуется минимум деталей — 3 диода, 7 резисторов, разъем DB-9 или DB в зависимости от того какой ответный разъем установлен у вас в компьютере и коннектор ISP для подключения к микроконтроллеру или же просто несколько проводников к чипу. Диоды в схеме можно использовать любые маломощные. Как мы знаем, LPT порт компьютера предназначен для подключения локального принтера Local Printer Port , но тем не менее его часто используют для подключения различных устройств и самоделок.
В данном случаем мы можем его использовать для программирования AVR микроконтроллеров, собрав для данной цели очень простую схему что приведена ниже. Как видим, схема еще проще чем в варианте с программатором Громова , здесь нам нужны всего лишь 4 маломощных резистора и разъем папа, со штырьками для подключения к LPT порту компьютера.
Все детали и соединения можно разместить в корпусе LPT-разъема, а для подключения к микроконтроллеру вывести шлейф с коннектором под ISP-интерфейс или же просто необходимые проводники для подключения к микро-чипу. В качестве источника питания микроконтроллера можно использовать батарейки или блок питания со стабилизатором, это будет наиболее безопасно как для порта компьютера, так и для чипа. О том как использовать источники питания для AVR микроконтроллера мы уже рассматривали.
Программа UniProf Windows — avr-programming-uniprofjun Будьте предельно внимательны и осторожны при сборке и использовании программаторов с использованием COM или LPT порта компьютера, простой ошибкой можно запросто подпалить эти порты. Для нормальной работы таких программаторов нужно стараться использовать по возможности максимально короткие проводники от разъема к схеме программатора и микроконтроллеру.
Микропроцессор компьютера желательно чтобы имел частоту не более ГГц, а в качестве ОС для программирования чипов желательно использовать Win или WinXP.
В следующей статье мы разберемся как подключить разные модели AVR микроконтроллеров к программатору, узнаем где брать информацию о распиновке микроконтроллеров. Спасибо, Автор! Очень помогла ваша статья. ISP интерфейс на плате. Программатор с использованием COM-порта Этот программатор еще называют «программатором Громова», в честь того кто придумал эту схему, создателя программы Algorithm Builder графическая среда для программирования AVR под Windows используя алгоритмический язык — Г.
Программатор с использованием LPT-порта Как мы знаем, LPT порт компьютера предназначен для подключения локального принтера Local Printer Port , но тем не менее его часто используют для подключения различных устройств и самоделок. Расположение пинов для разъемов LPT-порта. Программное обеспечение и заметки Подключив COM или LPT программатор к микроконтроллеру нужно не забыть подать питание на сам микрочип.
Комментарии к публикации 1 : 1 vibpelm 17 Ноябрь
Primary Menu
С развитием компьютерной техники, с каждым разом становится все меньше и меньше компьютеров оснащенных COM и LPT портами. Это в свою очередь вызывает затруднения, в частности у радиолюбителей, связанные с сопряжением средств программирования микроконтроллеров с персональным компьютером. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK v2. USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита по технологии ЛУТ.
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый . Соединение согласно схеме ниже.
Программатор atmega8, attiny2313 своими руками
Данный программатор не нуждается в первичном программировании — протравил печатную плату, спаял и пользуйся. Автор данного устройства указан в конце статьи, а здесь приведу небольшую выдержку из руководства, чтоб было понятнее, о чём речь: правильный USB-программатор — вещь, фактически, универсальная. Его можно воткнуть в любой современный компьютер и без проблем перешить нужный микроконтроллер с любым объемом FLASH-памяти на довольно высокой скорости. Который не глючит при переходе от одного ПК к другому или смене ОС. Правильный — это такой, драйвера на который есть для любой современной широко используемой версии ОС, и эти дрова неглючные. Каждый определит еще с десяток критериев правильности для себя лично, но вышеперечисленные — основные, без соблюдения которых нормально работать с микроконтроллером невозможно будет в принципе. Условно их можно разделить на две большие группы. Первая группа включает в себя программаторы, построенные на основе микроконтроллеров в частности, AVR. Двое из знакомых, одаренных сиими дывайсами, в восторге.
USB программатор своими руками на микроконтроллере Atmega8. Схема
Самый простой вариант программатора для AVR это пять проводков, припаиваемых к порту контроллера и втыкаемых в LPT порт. Не спорю, можно и так. Но я все же не рекомендую этот способ. Даже схему подключения давать не буду — если надо будет сам найдешь.
Описание программатора.
Please turn JavaScript on and reload the page.
Данной информации вполне хватит чтобы прошить большинство моделей AVR микроконтроллеров не только в Linux, но и в других ОС. Для того чтобы записать программу в AVR микроконтроллер вам понадобится программатор. Программатор — это небольшая электронная схема, которая позволяет подключить микроконтроллер к одному из портов компьютера COM, LPT, USB для последующего считывания и записи прошивки программирования. Существует достаточно много разнообразных конструкций программаторов для AVR микроконтроллеров, которые подключаются к разным портам компьютера. Наиболее надежный и удобный вариант — это программатор что подключается к USB-порту, поскольку в новых настольных компьютерах и ноутбуках уже не устанавливают COM и LPT порты.
Схема USB программатора на Atmega8 своими руками
Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Миниатюрный USB программатор для AVR микроконтроллеров Программирование микроконтроллеров Из песочницы Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам.
Схема USB программатора для микроконтроллеров AVR, выполнена на микроконтроллере Atmega8. Схема очень надежная и имеет одну очень.
Делаем простой USB программатор USBTinyISP
Схема программатора для atmega8
На этой плате хватит места и для программируемых микроконтроллеров в корпусах до DIP Этот программатор заметит Вам плату Arduino, он более удобен для экспериментов с различными микроконтроллерами и микропрограммами для них скетчами. Остальные детали, которые вы увидите на схеме для работы универсального, самодельного, простого программатора не существенны.
Делаем COM программатор для AVR микроконтроллеров.
ВИДЕО ПО ТЕМЕ: лекция 341. Atmega8 прошивка ПЗУ
Как-то на днях делал переходник для своего программатора AVR я ошибся с распиновкой выводов и заметил когда уже протравил печатку, и тогда решил найти распиновку, и опубликовать у себя на сайте что-бы не забывать :. В данной работе описывается конструкция параллельного программатора, единственной задачей которого является восстановление значений фьюзов микроконтроллера «по умолчанию», то есть записанных на заводе. К достоинствам прибора следует отнести его простоту, автономность независимость от ПК , а также возможность постоянно модернизировать и усовершенствовать, в зависимости от поставленных задач. Недостатком является, пожалуй, необходимость задействования достаточно большого количества линий связи с микроконтроллером, но иначе нельзя, ведь это — параллельное программирование. Поиск схем параллельного программатора по интернету и в печати не дал практически ничего, что удовлетворяло бы заданным условиям простоты и повторяемости.
Схема программатора приведена на рисунке ниже. Предохранитель F1 служит для защиты линий питания порта USB от случайного замыкания по цепям питания программатора.
USBasp программатор микроконтроллеров AVR на Atmega8 своими руками
В конце поста размещена ссылка с необходимой документацией для изготовления программатора USBasp своими руками. Программатор USBasp, благодаря своей простоте в изготовлении и использовании недорогих и широкодоступных элементов, стал очень популярным среди радиолюбителей. Его параметры работы не уступают профессиональным и дорогим программаторам микроконтроллеров AVR. Перед началом работы, стоит ознакомиться с последовательностью всех выполняемых действий, а именно:. Существует много версий USBasp программатора, но все они основаны на главной схеме, автором которой является Thomas Fischl. Прошивка микроконтроллера программатора также является его авторством.
Вот продолжение эпопеи по прошивке МК, разбираем подключение программатора. Самый простой и доступный способ прошить микроконтроллер Atmel, например ATtiny13 или ATmega8, это собрать собственными силами программатор stk Очень хорошо и подробно об этом написано здесь и еще здесь.
USB программатор для микроконтроллеров AVR (AVRDUDE)
Опубликовано автором Moldik
Программатор построен на дешевом микроконтроллере ATtiny45 работает с USB портом и очень прост в использовании.
Схема:
Резисторы R2 и R3 в сочетании с D1 и D2 обеспечивают максимальное напряжение на 3,6 В, а не 5 В, поскольку напряжение +5 В на шине вызывает ошибки SYNC. Резисторы R4… R6 защищают запрограммированную цепь от повреждения, если она питается от напряжения ниже 5 В.
Джампер JP1 необходим для безопасного подключения микроконтроллера, отключает шину питания от программируемого чипа на момент установки.
реклама
Микроконтроллер должен быть запрограммирован в режиме высокого напряжения, потому что нулевая линия работает как типичный ввод / вывод. Тем не менее, вы можете сделать иначе. Большинство программ не позволяют отключать линию RST в режиме SPI, но, например, AvrDude предлагает эту возможность. Используя оверлей Burn-OMat, вы можете переключить линию RST в режим ввода-вывода, только чтобы включить режим эксперта.
Настройка AVR Studio для работы с USB-крошечным программатором AVR:
В меню «Инструменты» выберите «Настроить…».
В открывшемся окне «Команда» выберите вкладку «Инструменты».
Мы указываем на иконку «Новый» или нажимаем клавишу «Вставить».
Вводим имя программатора, например «USBtiny».
В окне «Команда» мы указываем путь к «avrdude» (например: C: WinAVR-20100110binavrdude. exe).
В окне аргументов мы указываем параметры: «-p m168 -c usbtinyp -P usb -U flash: w:» файл. hex: a -U flash: v: «.hex file: a», где «m168» — тип процессора.
В «Начальном каталоге» введите путь к файлу (обратите внимание на последний символ «»).
Мы подтверждаем изменения кнопкой «Закрыть».
Чтобы запрограммировать микроконтроллер, выберите имя нашего программатора в меню «Инструменты» (в данном примере это «USBtiny»).Настройка Bascom для работы с USB-крошечным программатором AVR:
В меню выберите «Опции / Программатор».
Выберите «Внешний программист» из выпадающего списка.
На вкладке «Другое» (в нижней части окна) мы указываем путь к «avrdude».
В окне параметров введите «avrdude» -p m168 -c usbtiny -U flash: w: «{FILE}»: a -U flash: где «m168» — это тип процессора.Программирование с помощью клавиши F4 или значка «Программируемый чип».
ПОДДЕРЖИВАЕМЫЕ МИКРОКОНТРОЛЛЕРЫ И ИХ КОДЫ
ATmega128 — m128
ATmega1280 — m1280
ATmega1281 — m1281
ATmega16 — m16
ATmega162 — M162
ATmega164 — m164ATmega168 — M168
ATmega169 — m169
ATmega2560 — m2560
ATmega2561 — m2561
ATmega32 — m32
ATmega324 — m324
ATmega328 — m328
ATmega329 — m329
ATmega3290 — m3290
ATmega48 — m48
ATmega64 — m64
ATmega640 — M640
ATmega644 — m644
ATmega649 — m649
ATmega6490 — m6490
ATmega8 — m8
ATmega8515 — m8515
ATmega8535 — m8535
ATmega88 — M88
ATtiny12 — t12
ATtiny13 — t13
ATtiny15 — t15
ATtiny2313 — t2313
ATtiny25 — t25
ATtiny26 — T26
Attiny45 — t45
ATtiny85 — T85
Можно купить и готовый подобный программатор:
AVR, Микроконтроллеры
программатор
Создайте автономную схему Atmega8 – Блог Nirzaree
Предположим, у вас есть плата Arduino, и вы хотите запустить код независимо от другой пустой микросхемы Atmega, которая у вас есть (потому что вы не хотите размещать свою UNO в каком-то месте, где она не нужна). b запрограммирован снова.. n запрограммированная IC жвачка подходит d работа хорошо.. ).. тогда как вы относитесь к кодированию?
Что ж, судя по руководствам на сайте Arduino, на данный момент у вас не должно быть проблем, если ваша плата не UNO (=> если ваша плата старше) .. Но теперь Uno становится более распространенным arduino платформа .. и у меня тоже есть Uno, поэтому я попытался запустить свой AtMega8 (28-контактный DIP), запрограммировав его через UNO .. и это сработало .. 😀
Вот как это сделать..
Слева мой UNO с Atmega328.
ниже показан atmega8, который я извлек из старой платы avr. ты не понял.. 😉 )
Но процедура немного сложна, поэтому давайте запачкаем руки. .
Шаг 1: Загрузите код ArduinoISP на ваш UNO
Подключите ваш UNO к вашему компьютеру через USB-кабель и перейдите к File -> Примеры -> ArduinoISP и загрузите этот скетч.
Шаг 2: Запишите загрузчик
Подключите Atmega (в моем случае Atmega8) к UNO через макетную плату, как показано на рисунке.
Итак, что вам нужно:
A -16 МГц кристалл
2 Ceramic Caps (18 PF или 22 PF или 33 PF)
A 10K OHMS Refortor
9002 FERIEи макет.
(улучшенная версия этого мультфильма доступна на http://arduino.cc/en/Tutorial/ArduinoISP)
- Затем получите более старую версию Arduino IDE (22 работает и доступна на http:/ /arduino.cc/hu/Main/Software (старые версии IDE) ) Не знаю, почему это не работает с новой IDE..
- , затем записываете загрузчик в 2 этапа:
Далее,
- Загрузчик должен быть сожжен через минуту. . Когда на экране появится сообщение о том, что загрузчик загружен… это половина работы! 🙂
Шаг 3: Запишите Blink-код на новый Atmega8
Вытащите Atmega328 из вашего UNO и подключите Atmega8 (b будьте осторожны с сопоставлением контактов (держите выемку Atmega8 на нижней стороне УНО ))
Теперь перейдите к Файл – Примеры – Основы – Blink
Затем перейдите к Инструменты — Плата – NG или старше с Atmega8
Нажмите Загрузить.
Когда код загружен, вы можете проверить его прямо здесь, так как на контакте 13 UNO есть светодиод, который должен начать мигать.
Минимальные соединения, необходимые для Atmega8, показаны на рисунке.
к этому подключите светодиод + резистор 220 Ом на контакт 18 микросхемы (соответствует 13 контакту UNO). После этого он должен начать мигать.
Если он мигает, это означает, что с питанием, сбросом и цепью кристалла все в порядке. . 🙂 Браво!
Шаг 5 и последний: припаяйте схему на печатной плате. Плата припаяна =)
Счастливого творчества.. 🙂
полезных ссылок в сети :
http://arduino.cc/en/Tutorial/ArduinoISP
http://arduino.cc/en/Hacking/PinMapping168
http://arduino.cc/hu/Hacking/Bootloader
http://arduino.cc/forum/index.php?topic=92925.0
Нравится:
Нравится Загрузка…
Программирование AVR 02: Аппаратное обеспечение
Возможно, вы сможете написать самое красноречивое код в истории встроенных систем, но без возможности запустить его на оборудовании он будет бесполезен. В этой части обучающей серии мы:
- Ознакомьтесь с некоторыми из доступных опций программатора AVR
- Разместите микроконтроллер на макетной плате и подключите его к блоку питания и программатору.
- Используйте программное обеспечение для программирования, чтобы отправить пример кода на микроконтроллер
Если вы пропустили часть 1, найдите несколько минут, чтобы просмотреть эту часть руководства, а затем присоединяйтесь к нам после перерыва.
Дорожная карта серии:
- Программирование AVR 01: Введение
- Программирование AVR 02: Аппаратное обеспечение
- Программирование AVR 03: Чтение и компиляция кода
- Программирование AVR 04: Запись кода
Программаторы
Как я уже говорил, если вы хотите получить это на чипе, вам нужен программатор. Вариантов огромное количество, но я расскажу о самых простых и недорогих. Мы сосредоточены на внутрисистемном программировании (ISP), что означает, что вы можете программировать чип, не удаляя его из схемы.
Кабель DAPA
Прямой параллельный доступ к AVR или кабель DAPA — невероятно простой и дешевый метод программирования. Вы можете построить его очень быстро, заплатив несколько долларов за детали, но удобство сопряжено с несколькими подводными камнями. Во-первых, на вашем компьютере должен быть параллельный порт; то, чего нет у современных ноутбуков и некоторых современных настольных компьютеров. Но если у вас есть старый компьютер, на котором он есть, это поможет вам быстро начать программирование.
Фактически, первый прототип AVR, который я сделал, был с одним из этих кабелей. То есть, пока я не обнаружил еще один глюк. Это запрограммирует только низкоскоростные чипы. Если вы попытаетесь запустить часы чипа на полной скорости (путем изменения настроек предохранителя… подробнее в части 3), вы больше не сможете использовать кабель DAPA для связи с ним. Также существует возможность повреждения параллельного порта или, что еще хуже, если вы сделаете что-то не так. Но если вы все равно хотите пойти на это, вот как я построил свой.
Он подключается к компьютеру с помощью разъема DB25. Как вы можете видеть на схеме, я использовал резисторы на 1 кОм на контактах Reset, SCK, MISO и MOSI для защиты по току. Я не использовал резистор на выводе заземления. Я использовал кусок ленточного кабеля, припаяв один конец к каждой из пяти сигнальных линий, показанных на схеме. На другом конце ленточного кабеля я использовал корпус разъема с шестью слотами, заполнив один из них заглушкой, чтобы можно было отслеживать сигналы. Его легко подключить к штырьковому разъему или к перемычкам, как показано выше. Оглядываясь назад, возможно, было бы лучше использовать разъем IDC 2 × 3 и маршрутизировать сигналы с использованием стандарта AVR ISP (из AVR: In-System Programming PDF). Если вы пойдете по этому пути, скорее всего, вы скоро обновитесь, так что не мучайтесь над деталями дизайна.
Arduino
Было бы упущением пропустить использование Arduino в качестве программатора. Они вездесущи среди встраиваемых систем, и если у вас их еще нет, вы можете попытаться найти кого-нибудь, кто одолжит вам их ненадолго. Все, что требуется, — это написать скетч программатора AVR на Arduino и установить соединения для программирования. Мы рассмотрим этот метод позже в посте.
USBtinyISP
USBtinyISP — это внутрисистемный программатор, основанный на ATtiny2313, который использует соединение USB (посмотрите, откуда взялось это название?). Это неплохой выбор для вашего первого программиста. Если вы уверены в своих силах, вы можете собрать схему самостоятельно и использовать кабель DAPA, чтобы установить прошивку для программирования на чип. Или вы можете просто купить его у Adafruit Industries. Но если вы думаете, что серьезно относитесь к разработке AVR, вам следует подумать о том, чтобы выложить дополнительные деньги на профессионального программиста.
Профессиональные программисты
Программисты Ateml являются золотым стандартом. Они предлагают то, чего нет ни в одном другом оборудовании, которое мы рассмотрели, — возможность восстановить испорченный чип. Если вы хотите использовать контакт сброса в качестве ввода-вывода, вам нужно будет использовать высоковольтное параллельное программирование для связи с вашим чипом. Даже если вы не решите сделать это, в какой-то момент вы облажаетесь, и вам нужно будет восстанавливать процесс, что поможет компенсировать дополнительные расходы на профессионального программиста. Можно использовать Arduino для параллельного программирования высокого напряжения, чтобы восстановить ваш AVR, но это сам по себе еще один хак.
Мы используем AVR Dragon практически для всего. Но STK500 — очень популярная плата, даже несмотря на то, что для ее использования необходим последовательный порт. Он имеет разъемы для чипов, кнопки и светодиоды для встроенного прототипирования. Dragon оставляет опции открытыми с незаполненными сокетами и использует USB-соединение.
Если вы в этом надолго, ничто не заменит ни один из этих вариантов.
Мы должны хотя бы упомянуть MKII, программатор, который предлагает ISP так же, как USBtinyISP, но также предоставляет JTAG, провод отладки и некоторые другие. У нас нет опыта работы с этим устройством, поэтому вам придется провести собственное исследование, если вы хотите узнать больше. Что касается других программистов, используйте Google или проверьте комментарии к этому сообщению, поскольку люди обычно не любят держать в секрете свой предпочтительный выбор программиста.
Загрузчик
Загрузчик на самом деле не программатор, а способ его использования. Загрузчик — это набор кода, который уже находится на вашем микропроцессоре. Он обрабатывает основной ввод и вывод, необходимые для записи вашего кода в память чипа. Плохая новость заключается в том, что они занимают место для программирования, но вам не придется покупать аппаратный программатор.
Программирование чипа с загрузчиком на нем выходит за рамки этого руководства. Но научиться это делать не сложно. Фактически, именно так можно запрограммировать Arduino без отдельного аппаратного программатора.
Установка нашей тестовой схемы
Хватит разговоров, давайте что-нибудь построим! Нам нужны четыре вещи: микроконтроллер, что-то для его питания, какой-то способ его программирования и что-то, чтобы показать нам, что он работает.
Оборудование:
- Макет без пайки
- Проволочные перемычки
- Микроконтроллер ATmega168
- 78L05 регулятор напряжения
- Электролитический конденсатор 100 мкФ
- Электролитический конденсатор 10 мкФ
- Светодиод
- Резистор 180 Ом (подойдет любой резистор от 180 до 330 Ом)
- Программатор (мы покажем и DAPA, и Arduino)
Что мы делаем
Короче говоря, мы собираемся мигать светодиодом в качестве нашей первой встроенной программы. Для этого требуется несколько компонентов: источник питания, сам микроконтроллер, светодиод и его токоограничивающий резистор.
Блок питания состоит из регулятора напряжения, который принимает входное напряжение выше 7В и выдает постоянное напряжение 5В. Для корректной работы этой схемы требуется два фильтрующих конденсатора. Конденсаторы действуют как резервуары для хранения, поглощая небольшие колебания на шине питания, чтобы обеспечить стабильный источник электроэнергии, чтобы обеспечить безопасность и работоспособность нашего микроконтроллера.
В качестве выхода мы будем использовать светодиод. Мы должны включить резистор, чтобы ограничить количество тока, который будет течь, когда программное обеспечение зажжет его. Без этого токоограничивающего резистора ток будет протекать на уровнях, небезопасных для светодиода, микроконтроллера или того и другого.
Схема цепи
Выше приведена схема, которую мы используем в качестве примера. Схема простого стабилизатора на 5 В с использованием линейного регулятора LM7805 и двух фильтрующих конденсаторов показана слева и отделена от остальных пунктирной рамкой. Если у вас уже есть регулируемый источник питания 5 В, сэкономьте время и используйте его.
Вы также можете заметить, что микросхема на схеме обозначена как AVR-MEGA8. Используемый нами ATmega168 совместим по выводам с ATmega8. Это означает, что вы можете поменять местами один на другой, и все 28 контактов будут там, где они должны быть, так что это не вызовет проблем.
Рекомендуется добавить несколько компонентов, которых здесь нет. Для развязки должно быть два конденсатора по 0,1 мкФ; они отфильтровывают колебания на шинах питания, называемые шумом. Один между VCC и GND, другой между AVCC и AGND (как можно ближе к контактам). На контакте сброса также должен быть подтягивающий резистор, который позволяет невероятно небольшому количеству тока просачиваться на контакт на уровне 5 В. Это микросхема от случайного сброса, когда она плавает (не подключена, поэтому нет четкого значения 0 или 5 В). Я опустил эти части для простоты, и это не должно быть проблемой с этим простым проектом. Но по мере того, как ваши проекты становятся все более сложными, пренебрежение этими соображениями вернется к вам.
Схема, собранная на макетной плате
Я начал сборку схемы с добавления регулятора напряжения на макетную плату. Затем подключите заземляющую ножку к шине заземления в верхней части макетной платы, а выходную ножку — к шине напряжения на макетной плате. Я также добавил два провода, которые я в конечном итоге подключу к положительной и отрицательной клеммам 9-вольтовой батареи.
Важно прочитать техническое описание вашего регулятора напряжения (пример: LM7805), чтобы выяснить, какой вывод является входным, заземленным и выходным. Ваш регулятор может отличаться от моего, так как они поставляются в разных упаковках. На изображении выше входной провод находится слева, земля — посередине, а выходной — справа.
Теперь я завершил блок питания, добавив конденсатор 100 мкФ между входной ветвью и заземляющей ветвью стабилизатора и конденсатор 10 мкФ между выходной ветвью и заземляющей ветвью. Обратите особое внимание на эти конденсаторы, один вывод должен быть помечен как отрицательный (полоса со знаком минус) на корпусе каждого конденсатора. Перед добавлением микроконтроллера было бы неплохо проверить выходное напряжение с помощью мультиметра. Слишком много сока может разрушить ваш новый чип.
Убедившись, что у меня есть стабильный источник 5 В, затем отключив аккумулятор, я добавил микроконтроллер ATmega168 на плату. Обратите внимание, что ямочка указывает налево. Это важно, так как стандартная ориентация и нумерация выводов корпуса DIP показывают, что контакт 1 теперь находится в левом нижнем углу, что позволяет нам легко найти другие нужные нам выводы.
К микросхеме также подключено питание и земля. Контакт 7 (VCC) и контакт 20 (AVCC) были подключены к 5V. Контакт 8 (GND) и контакт 22 (AGND) подключены к земле.
Последним шагом является подключение светодиода к выходу 0 на порту D. Наша схема говорит нам, что мы хотим подключить положительный вывод светодиода к выводу 2 на ATmega168, а отрицательный вывод должен быть подключен к незанятому ряд на макетной плате (убедитесь, что вы не присоединяете его к контакту 1). Светодиоды обычно имеют небольшую выемку, сплющенную на одной стороне пластикового корпуса, чтобы обозначить отрицательную ножку устройства. Последняя часть головоломки — соединить отрицательную сторону светодиода с землей с помощью нашего резистора.
На изображении выше я подключил 9-вольтовую батарею, но ничего не произошло. Это потому, что на чипе еще нет прошивки, чтобы светодиод мигал. Нам нужно будет исправить это на следующем шаге.
Программирование нашей тестовой схемыЕще раз проверьте все соединения и приступим к программированию микроконтроллера.
Подключение к программатору
Всего шесть подключений для программирования нашего чипа:
- Напряжение
- Заземление
- Мастер в ведомом выходе (MISO)
- Главный выход Ведомый вход (MOSI)
- Сброс (RST)
- Ведомые часы (SCK)
Это справедливо для любого программиста, использующего внутрисистемное программирование. Есть даже стандартизированный 6-контактный разъем, который я проектирую в большинстве своих схем, чтобы вы могли легко повторно подключить программатор к печатной плате и обновить прошивку в будущем. Но в этом примере мы просто используем несколько перемычек для соединения. Одна вещь, о которой следует помнить, это использовать только один источник напряжения при программировании. Вы должны либо отключить питание вашей схемы во время программирования, либо не подключаться к линии напряжения на вашем программаторе.
Подключение Arduino в качестве программатора
Использовать Arduino в качестве программатора очень просто. Первое, что вам нужно сделать, это открыть среду разработки Arduino, а затем открыть пример программного обеспечения: ArduinoISP.pde (в папке examples/ArduinoISP). Прошейте его на Arduino обычным способом. Теперь следуйте инструкциям по нацеливанию AVR на макетную плату (внизу этой страницы). Важно: Выберите один источник питания. То есть либо подключите напряжение на плате Arduino к макетной плате, либо подключите аккумулятор к источнику питания, который мы подключили. Выполнение обоих действий может привести к повреждению вашего оборудования.
Вот как мой выглядел после подключения.
Теперь, когда все готово к работе, переходите к следующему разделу: Прошивка прошивки с помощью AVRdude.
Подключение с помощью кабеля DAPA
В зависимости от того, как вы сконструировали кабель DAPA, сделать пять необходимых подключений будет достаточно просто. Обратите внимание, что кабель DAPA не имеет подключения по напряжению. Целевой процессор должен иметь собственный источник питания (например, источник питания, который мы построили на макетной плате) во время программирования. Вот как выглядит мой кабель DAPA после подключения.
Если вы не уверены в правильности подключения, вернитесь назад и сравните конструкцию кабеля DAPA со схемой. Сопоставьте наши пять соединений: MISO, MOSI, RST, SCK и GND.
Прошивка прошивки с помощью AVRdude
Если вы выполняли домашнее задание из части 1 этой серии, у вас уже должны быть установлены инструменты кросс-компилятора. Сначала загрузите пакет прошивки и перейдите в этот каталог в оболочке или в командной строке. Следующие команды можно использовать в системах Linux и OSX для программирования чипа.
Arduino как программатор:
avrdude -P usb -b 19200 -c avrisp -p m168 -U flash:w:main.hex
DAPA как программатор:
avrdude -P /dev/parport0 -c dapa -p m168 -U flash:w:main.hex
AVR Dragon в качестве программатора:
avrdude -P usb -c dragon_isp -p m168 -U flash:w:main.hex
USBtinyISP в качестве программатора:
avrdude -P usb -c usbtiny -p m168 -U flash:w:main.hex
Вы можете получить помощь от программы AVRdude, выполнив:
avrdude -h
Это распечатает список доступных команд, или вы можете прочитать онлайн-документацию. Пользователям Windows потребуется изменить часть /dev/* команды , чтобы она соответствовала вашему соединению. Вы должны найти страницу Windows онлайн-руководства особенно полезной для этого. Стандартные имена портов Windows включают com0, com1 и т. д. для последовательных портов и lpt0, lpt1 и т. д. для параллельных портов.
Что касается других флагов, используемых в приведенных выше командах программирования:
При использовании Arduino в качестве программатора ISP вы должны указать скорость, используя ‘-b’. Это значение установлено в скетче Arduino и по умолчанию должно быть 19200.
Вам всегда нужно будет указывать какой чип подключен к программатору. Здесь я использовал «-p m168» для нашего ATmega168. Получите список всех совместимых микропроцессоров, набрав
avrdude -p ?
То же самое верно для указания программатора. Вы можете изменить «-p» на «-c» в приведенной выше команде, чтобы получить список программистов.
Последний параметр в командах, которые мы использовали, говорит программисту записать (это «w») файл «main.hex» во флэш-память. Часть команды используется для многих вещей, включая изменение фьюз-битов на микросхеме. Об этом я расскажу в третьей части серии.
Отладка
В этот момент ваш светодиод должен мигать довольно счастливо. Что это такое? Это не? Время начать настоящее обучение. Вот список для начала:
- Вы успешно запрограммировали чип? Вы должны получить сообщение: «258 байт флэш-памяти проверено» и «avrdude готово. Спасибо.»
- Если у вас возникла ошибка во время программирования, сначала проверьте, подается ли питание на ваш чип.
- Попробуйте еще раз ввести команду программирования, используя «-v» вместо «flash:w:main.hex». Это просто попытается поговорить с чипом, а не писать в него, и очень удобно при работе с программными ошибками .
- Перепроверьте соединения для программирования, чтобы убедиться, что правильные сигналы подключены к нужным контактам
- Убедитесь, что у вас правильный порт на компьютере и что у вас есть разрешение на использование этого порта. Пользователи Linux могут попробовать обратиться к чипу с флагом -v как ROOT, чтобы узнать, есть ли проблема с правами доступа.