Отладочная плата для устройств на мк atmega8/48/88/168/328

alex-day › Блог › Arduino без Arduino: работаем с микроконтроллерами напрямую

Если вспомнить историю создания Arduino ( www.drive2.ru/b/2520138/ ), то Arduino стало популярно благодаря трем вещам, составляющим ее основу: Среды программирования Arduino IDE ( на самом деле это среда языка Processing), Языка программирования Wiring (На самом деле такого языка не существует — то что мы видим это самый обычный С, дополненный большим числом библиотек) и Плат Arduino.
Я уже писал ранее, что без каждой из этих трех составляющих можно обойтись и приводил пример того, как можно обойтись без знания С — www.drive2.ru/b/2729013/. Как отказаться от Arduino IDE написано здесь — www.visualmicro.com/page/…what_is_visual_micro.html, а сегодня я хотел бы написать о том, как отказаться от «плат Arduino».
Итак, что же собой представляет плата, получившая такой коммерческий успех?

Как можно увидеть на плате находятся микроконтроллер AtMega 168 или 328, микросхема питания — DA1, контроллер виртуального com порта — DD1 и кварц 16 МГц — Q1. В общем то на первый взгляд ничего лишнего, но это только на первый: Используемая микросхема питания позволяет питать плату от напряжения от 5 до 12В или кратковременно до 30В, т.е. для авто с его 14,5В не пригодна и нужно делать свой источник питания. Контроллер СОМ порта используется в основном только для заливки программ и не является обязательным (в плате Arduino Pro Micro и ей подобных он отсутствует). Кварц, несомненно, позволяет точно работать с временем, но если погрешность в несколько милисикунд для вас не критична, то можно вспомнить о том, что микроконтроллеры фирмы Atmel, к которым относится и Atmega168/328, содержат внутренний кварц и могут отсчитывать такты сами себе.
Так что же эта плата лишняя? В общем то да. В большинстве случаев без нее действительно можно обойтись и сейчас мы поговорим как.

Поддержка средой программирования
Находим где у вас установлена Arduino и открываем папочку hardware
По умолчанию это здесь — C:Program FilesArduinohardwarearduinoavr
В эту папку мы будем распаковывать архивы с библиотеками, которые будем качать отсюда:
1) Для микроконтроллеров
ATmega8, ATmega8A,
ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB
ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB
ATmega328, ATmega328P, ATmega328PB
ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB

качаем ATmega8 Series (8/48/88/168/328) отсюда — github.com/sleemanj/optib…ob/master/dists/README.md
См. отдельную статью О бедном AtMega замолвите слово
Данные библиотеки позволяют запустить МК на 3 частотах: 1MHz, 8MHz или 16MHz (Для работы требуется внешний кварц 16МГц).
Тут необходимо понимать, что внешний кварц увеличивает быстродействие и стабильность работы (1 миллисекунда выполнения программы всегда будет равняться 1 миллисекунде реального времени), но увеличивает, пусть и ненамного, стоимость конструкции и снижает надежность за счет большего числа деталей. Лично мое мнение, что для большинства конструкций, проектируемых для автомобиля, можно смело обойтись и встроенным кварцем. Для схем зажигания, тахометра можно использовать внешний кварц, подключенный по схеме ниже, но дешевле взять готовую платку типа Arduino Pro Micro.
Достаточно ценное замечание от alexfrance
Был печальный опыт при использовании внутреннего генератора МК тини2313. На морозе при -20 контроллеры зависали, глючили. Установка внешнего кварца помогла. Поскольку внутренний генератор представляет из себя RC цепь, то он очень термозависим

2) Микроконтроллеры Attiny13 (А)
Библиотеки и файлы для поддержки «Тинек» можно скачать по ссылочке выше, а можно взять версию от разработчика — sourceforge.net/projects/ard-core13/files/
Скачанный файл также кладем в папку hardware

3) Для микроконтроллеров
ATtiny84, ATtiny44, ATtiny24,
ATtiny85, ATtiny45, ATtiny25,
ATtiny2313, ATtiny4313

ссылка для скачивания -code.google.com/p/arduino-tiny/
После распаковки заходим в папку tiny и переименовываем файл C:Program FilesArduinohardwaretinyavrProspective Boards.txt в C:Program FilesArduinohardwaretinyavrBoards.txt

После всех скачиваний и распаковок получим папку hardware с таким содержимым

А запустив Arduino IDE увидим:

Подключение микроконтроллера
Прошить программы в МК можно 2 различными способами:
1) Классический вариант — прошивка при помощи программатора
Тут все просто: покупаем любой программатор из списка поддерживаемых

и вперед
Наиболее распространенным является USBasp, он производится активно китайцами, его несложно сделать и самому. В Украине могу порекомендовать производителя с таким наборчиком (увы, снят уже с производства, ребята делают только плату адаптора) — fix.org.ua/index.php/%D0%…%D1%80%D0%BE%D0%BC-detail

Прошивать им просто: проставил драйвера, вставил МК в нужный слот, выбрал программатор из списка (СОМ выбирать не нужно), указал микроконтроллер и его частоту и лей программу.
Вторым по популярности является USBtinyISP. В продаже я их не видел, а как его сделать самостоятельно подробно рассказано здесь — robocraft.ru/blog/2948.html
Профессиональные программаторы типа STK500 (Эх была у меня такая плата на предыдущей работе, классная вещь) явно не входят в рамки этой статьи. Поэтому идем дальше.

2) Прошивка при помощи заводской платы Arduino
Следует отметить, что далеко не все платы Arduino подходят для сего действия
Возьмите свою плату и проверьте перед тем как пытаться. Расположение выводов интерфейса SPI должно быть следующим:

Если совпадает, то все ок, если нет, то лучше найти другую плату
Итак, последовательность действий:
а) Готовим плату. Для этого подключаем плату Arduino к компу, выбираем пункт меню Файл->Образцы-> ArduinoISP

и «вгружаем» код на плату. Все мы превратили нашу плату в программатор.
б) Подключаем. Схема подключения простая: нужно подключить выводы интерфейса SPI платы к соответствующим им выводам интерфейса SPI микроконтроллера, а вывод Reset микроконтроллера к 10 пину платы (или 53 для плат на основе mega1280 и 2560). На схеме ниже пример подключения Attiny13 (Attiny85 и Attiny45 аналогично, остальные МК смотрим распиновку) к плате на основе микроконтроллера Atmega 168/328

У меня получилось как то так:

Заливаем загрузчик. А нужно ли?
Итак сначало определимся что такое загрузчик и зачем это нужно.
Установка загрузчика дает возможность напрямую, через последовательный порт прошивать микроконтроллер (только имеющие аппаратный последовательный порт).Например так прошиваются пустые ATMEGA328P, которые потом можно использовать вместо установленной штатно микросхемы на Arduino UNO и устанавливать далее на самодельные платы.
Т.е. на ту же Attiny13 заливать загрузчик просто не имеет смысла — у нее нет аппаратного порта (выводов Тх, Dx), хотя некоторые «умельцы», пишущие обучающие статьи это делают (см UPD ниже). А вот для Atmega8 это можно сделать — она при этом потеряет 1кБайт из 8 своей памяти, но зато залить прошивку уже можно будет не через SPI, а подключив ее к адаптору СОМ порта (как это сделать рассказано здесь — www.drive2.ru/b/2642464/ на примере Arduino Pro Mini, смотрим раздел «Подключаемся»).

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

Если считаете, что вам это нужно, то устанавливаем микроконтроллер в программатор (подключаем к плате-программатору) и нажимаем «Записать загрузчик»

Прошивка программ
а) Пишем программу. Тут все как обычно, нужно только учесть, что для Attiny поддерживаются не все возможности «языка Arduino», а только
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogReference(INTERNAL) / (EXTERNAL)
shiftOut()
pulseIn()
analogWrite()
millis()
micros()
delay()
delayMicroseconds()

б) Прошиваем.
Если мы используем плату Ардуино, то выбираем в качестве программатора «Arduino as ISP», в разделе «платы» наш микроконтроллер и частоту на которой он будет в дальнейшем работать, в разделе «порт» виртуальный СОМ нашей платы-программатора и нажимаем «вгрузить».
Вариант записи через программатор описан здесь — О бедном AtMega замолвите слово

в) проверяем работоспособность. Тут есть некоторые разногласия что делать с ногой RESET. Кто-то считает, что в процессе работы ее можно оставлять в воздухе, кто-то, что ее нужно подтянуть через резистор 10 кОм к питанию. Работает и так и так, тут больше вопрос религии 🙂

Читайте также  Новая платформа разработки на базе облачной технологии для веб-сервисов amazon

Отладочную плату делаем сами. Часть 2 (Вариант с ATmega8).

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

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

В качестве основы возьмём AVR-микроконтроллер ATmega8. Это достаточно мощный микроконтроллер с большим объёмом памяти и разнообразной периферией. Можно также применить и любой другой микроконтроллер. С примером использования микроконтроллера ATtiny2313 на этой отладочной плате можно ознакомиться в другом варианте этого текста по ссылке: Отладочную плату делаем сами. Часть 2 (Вариант с ATtiny2313).

Как всегда, первым делом после выбора детали, нужно ознакомиться с расположением её выводов и основными характеристиками. Вся нужная информация для ATmega8 содержится в её справочном листке. Помните, почти все выводы микроконтроллера могут иметь несколько функций. Эти функции можно выбирать при написании программы для µC. И на это следует обращать внимание уже на этапе составления принципиальной схемы. Кроме того, уже в процессе составления схемы удобно использовать условное обозначение деталей с «живой» распиновкой, то есть, при обозначении детали на схеме, чертить выводы так, как они расположены на самом деле. Тогда размещение компонентов и на схеме, и на плате будет происходить проще, понятнее и с меньшим количеством ошибок. (Почти во всех редакторах схем есть возможность нарисовать своё собственное условное обозначение детали.)

Кварцевый резонатор Q1 с конденсаторами С1 и С2 образуют источник тактового сигнала для микрооконтроллера µC1. Это очень чувствительная к помехам часть схемы, поэтому проводники для нее следует выбирать минимальной длины, а к проводнику между С1, С2 и восьмой ножкой µC1 (утолщённая линия на схеме) ничего больше не присоединять. Резистор R1 и конденсатор С3 образуют цепочку сброса для микроконтроллера. Резисторы R2-R5 необходимы для ограничения тока через свтодиоды LED1-LED4. В цепи питания стоит блокировочный конденесатор С4. В качестве источника питания будем использовать стабилизатор, собранный в первой части статьи. (Список всех возможных замен в схеме расположен в конце этой страницы.)

Проводники для программирования следует подключить к одноимённым проводникам программатора. Эти проводники удобно подключить к ответной части разъёма имеющегося программатора с помощью стандартной вилки для установки на плату IDC-10MS (Рис. 3). Точное расположение выводов на этой вилке необходимо обязательно сверить с имеющимся программатором!

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

Проводники питания лучше всего взять какого-то другого цвета; для плюсового провода можно взять красный, для минуса — синий или чёрный цвет. При разведении соединяющих проводников с обратной стороны платы не забываем о «зеркальности»!
Ровненько установить светодиоды можно следующим образом: продев небольшую полоску картона между выводами светодиодов, установить их в отверстия платы, с обратной стороны отрезать лишнюю длину выводов и запаять их. После пайки ножек полоску картона можно вынуть, Рис. 6.

Перед включением ещё раз проверим правильность соединений, а самое главное — правильность разводки проводников питания к микроконтроллеру!
Если при подключении питания зелёный сигнальный светодиод в схеме стабилизатора светится и ничего не нагревается, значит схема собрана правильно.
Теперь можно себя поздравить, мы только что получили собранную своими руками настоящую отладочную плату!
Сразу же загрузим в микроконтроллер простейшую программу мигания светодиодами: mega8_4leds_1.zip. После загрузки прошивки в микроконтроллер светодиоды начнут поочерёдно мигать. Время свечения и пауз будет приблизительно равно одной секунде:

Видео 1. Работа тестовой прошивки.

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

Возможные замены в схеме с микроконтроллером ATmega8 Рис. 2:

  • Кварцевый резонатор Q1 можно применить на частоту от 2 до 8 Мегагерц. Тестовая прошивка (мигание светодиодами) будет работать медленнее или быстрее.
  • Конденсаторы С1 и С2 должны быть одинаковой емкости от 18 пФ до 27 пФ.
  • Ёмкость конденсаторов С3 и С4 может быть от 0,01мкФ до 0,5 мкФ.
  • Резистор R1 может быть заменён на другой, сопротивлением от 10 до 50 кОм.
  • Токоограничительные резисторы R2-R5 могут иметь сопротивление от 680 Ом до 1 кОм.
  • Светодиоды LED1-LED4 могут быть любого цвета и размера.
  • Основной микроконтроллер может иметь следующие обозначения: ATmega8L-8PU, ATmega8-16PU. Главное, чтобы он был в корпусе DIP или PDIP.

Дополнения:

Смелых и Удачных Экспериментов.

Отладочная плата для ATmega48/88/168

Это многосторонняя отладочная плата для микроконтроллеров AVR ATmega48/88/168. Она отлично подходит для отладки программ, т.к. имеет огромное количество встроенных периферийных элементов. Микроконтроллеры ATmega48/88/168 имеют много полезных свойств: I/O, Таймеры , PWM генераторы, ADC, RS232, TWI, SPI, Аналоговый компаратор, Осциллятор, EEPROM. К тому же, они очень просты в использовании. Именно поэтому, автор решил разработать отладочную плату для них.

ATmega AVR микроконтроллер DIP28 Отладочная плата разработана для ATmega48 (4КБ памяти), АTmega88 (8КБ), ATmega168 (16КБ).

Новые модели ATmega48P/88P/168P или ATmega328P (32КБ) тоже поддерживаются. Внешний кварц Х1 устанавливается в гнездо, поэтому заменить его не составит труда. Также предусмотрена возможность использования внутреннего осциллятора, в таком случае можно будет использовать выводы PB6 и PB7, предназначенные для внешнего кварца. Сброс микроконтроллера — кнопка S1.

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

5 В питание

Может быть использовано как переменное, так и постоянное питание. Источник питания может быть подключен к 2.5мм разъему или спец. разъему (см. Screw Terminals). Питание включается/выключается переключателем SW1. Напряжение стабилизирует IO 7805. При включенном питании горит красный светодиод.

4 светодиода

Четыре зеленых светодиода подключены к порту D.

Четыре кнопки подключены к порты В.

Пьезо динамик подключается к выводу PB1 через JMP5.

ADC Микроконтроллер имеет встроенный 10-битный аналого-цифровой преобразователь.

Потенциометр

Сенсоры температуры

К микроконтроллеры можно подключать сенсоры с двух типов: с аналоговым или PWM выходом. Аналоговый — к PC0 (ADC0) через JMP10. PWM к PB0 через JMP11.

Использован последовательный интерфейс ( ИС — MAX232 ).

Конфигурация I/O выводов микроконтроллера

Вы сможете переключать соединения между RS232 и I/O выводами микроконтроллера.

Крепежный терминал

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

Внутрисхемное программирование

В отладочной плате предусмотрен внутрисхемный программатор. Микроконтроллер программируется через RS232 порт используя Pony Prog или AVDdude программатор. Что бы избежать интерференции сигналов рекомендуется отключить аналоговые переключатели 4066 ( вручную — SW2, автоматически — при включенном сбросе ( используя JMP13 )).

Крепежные отверстия

На печатной плате есть крепежные отверстия диаметром 3.2 mm.

Читайте также  Индикация места ключа (часть1)

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

Скачать печатную плату в формате PDF или в формате EPS

Скачать печатную плату в формате PDF

Перевод: Ale)(ander, по заказу РадиоЛоцман

Отладочная плата для устройств на МК Atmega8/48/88/168/328

Многие устройства в моих статьях строятся на основе отладочных плат. Сегодня поговорим об отладочной плате для микроконтроллеров Atmega8/48/88/168/328. Все они в DIP корпусе имеют 28 выводов и одинаковое их расположение, поэтому без проблем можно одну отладочную плату использовать для любого из вышеперечисленных микроконтроллеров. Возможности этой отладочной платы позволяют также установить, например, bootloader для arduino и использовать эту плату как arduino.


Общий вид готовой отладочной платы

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

Данная отладочная плата состоит из следующего набора элементов. Место для микроконтроллера в отладочной плате использовано с применением разъема для корпуса DIP-28. Применение такого разъема, в народе именуемого «кроватка» позволит в случае чего быстро заменить микроконтроллер на плате. Удобно, если по неопытности случайно залочить микроконтроллер, удобно его извлечь и «вылечить» при помощи другой схемы или просто быстро сменить тип используемого микроконтроллера.

Также для быстрой смены кварцевого резонатора использован разъем. Так как эта отладочная плата, могут возникать ситуации, когда необходимо перезапускать микроконтроллер. Для этой цели на плате предусмотрена кнопка S1 — при замыкании на землю вывода PC6, происходит рестарт или reset используемого микроконтроллера. Резистор R6 подтягивает плюс питания к этому выводу для предотвращения самопроизвольного перезапуска. Данная макетная плата имеет простое исполнение, поэтому добавил два модуля для светодиодов (по три светодиода в каждом модуле). Токоограничительные резисторы для светодиодов подобраны таким образом, что для каждого модуля можно использовать RGB светодиоды — удовлетворено условие баланса белого. Падение напряжения на красных светодиодах чуть меньше, чем у зеленых и синих, поэтому резисторы R1 и R5 имеют сопротивление 180 Ом. Кроме того, резисторы в анодах светодиодов ограничивают ток на уровне примерно 18 — 20 мА для максимальной яркости. каждый светодиод соединяется с портом микроконтроллера через перемычки (джемперы) 1 — 6. Также, благодаря штырьковым соединениям, при помощи проводка о двух концов с соответствующими разъемами типа «мама» можно соединять светодиоды с любыми другими выводами микроконтроллера. Таким образом, макетка позволит отлаживать многие простые задачи без особых телодвижений, соответствуя своей простоте относительно всеобъемлющих отладочных плат, содержащих все нужные и не нужные модули для отладки любых задач. Следуя данной концепции, на плате возможно два варианта питания — 5 вольт от USB порта через программатор и 3,3 вольта через три выпрямительных диода (P-N переход диода способствует падению напряжения примерно на 0,5 — 0,6 вольт в зависимости от применяемого типа, диоды Шоттки имеют несколько меньшее падение на переходе — порядка 0,2 вольта, их лучше не использовать). Данные режимы питания выбираются путем установки перемычек (джемперов) 7 или 10. При желании можно немного изменить печатную плату и поставить стабилизатор напряжения на 3,3 вольта, например микросхему AMS1117. Резистор R10 ограничивает ток питания отладочной платы. Его можно или убрать, или заменить на меньший или больший номинал в пределах необходимого, или просто заменить резистором номинала 0 Ом. Резистор R9 был установлен в основном с целью только подключения LCD дисплея для регулировки контраста экранчика. Однако, этот функционал не ограничивается только LCD — дисплеем, резистор можно использовать в любых других необходимых целях. И, наконец, АЦП микроконтроллера. Как правило он питается от основного напряжения через дроссель для большей стабильности напряжения и более правильных показаний. Также АЦП имеет канал опорного напряжения. Оно организовано микросхемой управляемого стабилитрона TL431 — он стабилизирует напряжение до 2,5 вольт в соответствии с подключением выводов как на схеме, и оно подается на вывод AREF. Но не всегда нужно именно 2,5 вольта опорного напряжения. Поэтому на плате организованы перемычки 8 и 9 для возможности подключения 5 вольт на вывод опорного напряжения, то есть взять его от вывода AVCC — питания АЦП.

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

Все выводы микроконтроллера дублируются штырьками. Тут все понятно — для возможности подключения к выводам используемого микроконтроллера на отладочной плате каких-то своих модулей, схем или устройств. Штырьковые контакты питания +5 вольт и 0 вольт имеются по 5 штук на плате. Специально для программирования на печатной плате предусмотрен стандартный 10 пиновый разъем для программаторов AVR, например USBasp или AVRdoper или других.

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

А вот так выглядит отладочная плата со стороны пайки:

Надеюсь аккуратность порадует Ваш профессиональный глаз.

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

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

Вот что необходимо для прошивки микроконтроллера atmega8 — fuse биты:

К статье прилагается печатная плата, нарисованная в Sprint Layout, также простая прошивка для микроконтроллера ATmega8, моргающая светодиодом для оценки работоспособности платы и просто для того чтобы данная схема не была просто железякой. Также для данной прошивки прилагается файл Proteus и исходник программного кода в AVRstudio 4. Небольшое видео для демонстрации. Ну, а при желании Вы всегда можете загрузить самостоятельно в микроконтроллер bootloader для arduino и использовать эту плату как arduino Uno или Nano. Сам я особо не любитель arduino, поэтому не делал на это большого акцента.

Простая отладочная плата для устройств AVR ATMega48/88/168 с часовым кварцем.

Данная отладочная плата для устройств на микроконтроллере AVR ATMega48/88/168 с часами реального времени (часовым кварцем).

Как и предыдущие отладочные платы данная плата всего лишь заготовка будущего устройства. На плату установлены штырьки для подключения питания, программатора и часовой кварц. Часовой кварц «вешается» на ножки для подключения обычного кварца, поэтому микроконтроллер должен работать от внутреннего задающего генератора. По умолчанию, с завода ATMega48/88/168 поставляется с включенным внутренним генератором, поэтому если работа микроконтроллера не планируется с часовым кварцем, его можно не устанавливать. Разъем питания продублирован на случай подключения к плате программатора с питанием от схемы (на один разъем подаем питание, с другого питаем программатор).

Для изготовления отладочной платы устройств на ATMega48/88/168 нам нужно:

Собираем отладочную плату по рисунку:

1 припаиваем панельку под микросхему, штырьки и кварц (как на рисунке);
2 проводками делаем перемычки;
3 перемычками-«соплями» соединяем штырьки и ножки панельки (места пайки обведены зеленым).

Наша отладочная плата готова!

Заключение.

— Ставим метки на GND, SCK для правильного подключения питания и программатора;

— Для более надежной работы в условиях повышенных помех очень желательно дополнить схему, подтягивающим к питанию ножку сброса, резистором (внутренний подтягивающий резистор имеет сопротивление около 10 кОм – этого бывает мало) и фильтрующим керамическим конденсатором на ножках питания (в пределах 0.1 мкФ). Кроме того, если планируется использование внутреннего АЦП, для увеличения точности преобразования на ножку 21 AREF (источник опорного напряжения) нужно поставить фильтрующий конденсатор (Схема с рекомендуемыми «добавками» и с обычным кварцем).

— По схеме выбранного устройства на отладочную плату допаиваем остальные детали (как вариант можно допаять штырьки к каждой ножке микроконтроллера для подключения других плат и периферии);

-Теперь вставляем в панельку микроконтроллер и при помощи программатора, сделанного нами ранее, прошиваем ATMega48/88/168 нужной прошивкой.

Читайте также  Синтез цифровых схем

Простая отладочная плата для устройств AVR ATMega48/88/168 с часовым кварцем. : 3 комментария

В файле «Схема с рекомендуемыми «добавками» и с обычным кварцем» не перепутаны ли номиналы конденсаторов на ножках 7 и 8 .
Потом , то что на AREF-е электролитический конденсатор в 1 мкФ , а не
керамический в 0.1 мкФ на ножках 20 и 22 , так ли важно .
Еще AVCC связывают с VCC через резистор в 100 Ом , далее LC-фильтр для питания 47 мкГн .
Все это может быть больше касается ATMega8 , а на ATMega48/88/168 это
не столь важно . Если что то поправьте .

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

Номиналы конденсаторов по питанию не столь важны — главное один электролит, один керамика, тоже касательно и AREF.
Если нужна большая точность замеров АЦП, то можно и фильтр прикрутить к AVCC (еще лучше — вообще запитать от отдельного источника).
Часовой кварц лучше припаивать к земле — меньше будет ловить помехи, больше будет точность.

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

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

Arduino ATmega8: микроконтроллер для начинающих

Микроконтроллеры – отличная основа для большого количества устройств. По сути своей они напоминают компьютер: постоянная память; оперативная память; вычислительное ядро; тактовая частота.

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

Родилась Arduino ATmega8, на основе которой можно собрать очень удобное и простое устройство.

Arduino NG — вариант платы Arduino на микроконтроллере ATmega8

С этими платами от Ардуино вы получаете целый ряд преимуществ:

  • готовая разведенная печатная плата со всеми необходимыми компонентами и разъёмами;
  • микроконтроллеры Atmega;
  • возможность программировать без программаторов – через ЮСБ порт;
  • питание от любого источника 5-20 вольт;
  • простой язык программирования и возможность использования чистой C AVR без переделок платы и прошивки.

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

  • Частота ATmega8: 0-16 МГц
  • Напряжение ATmega8: 5 В
  • Частота ATmega8L: 0-8 МГц
  • Частоат ATmega8A: 0-16 МГц

В реальности почти все микроконтроллеры при рабочем напряжении в 5 вольт работают с частотой 16 мегагерц, если участвует внешний кварцевый резонатор. Если брать внутренний генератор, то частоты составят: 8, 4, 2 и 1 МГц.

Распиновка Arduino ATmega8

Ниже приводим распиновку атмега8, которую можно также найти на официальном сайте производителя:

Добавление устройств АТмега

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

Вносим следующие изменения в файл hardware/arduino/boards.txt:

Таким образом, если мы перейдем в меню Сервис → Плата, то увидим устройства:

  • ATmega8 (optiboot 16MHz ext)
  • ATmega8 (optiboot 8 MHz int)
  • ATmega8 (optiboot 1 MHz int)
  • ATmega8 (no boot 8 MHz int)

Платы Arduino

Ардуино продаётся во множестве вариантов; главное, что объединяет платы, – это концепция готового изделия. Вам не нужно травить плату и паять все её компоненты, вы получаете готовое к работе изделие. Можно собирать любые устройства, не используя паяльник. Все соединения в базовом варианте выполняются с помощью макетной платы и перемычек.

Плата Arduino Nano – полный аналог большего собрата, но в гораздо меньших размерах, версия arduino atmega168 была самой популярной и недорогой, но её сменила другая модель – arduino atmega328, стоимость которой аналогична, а возможности больше.

Следующей важной деталью является печатная плата. Разведена и запаяна на заводе, позволяет избежать проблем с её созданием, травлением и пайкой. Качество платы зависит от производителя конкретного экземпляра, но, в основном, оно на высоком уровне. Питание платы осуществляется с помощью пары линейных стабилизаторов, типа L7805, или других LDO стабилизаторов напряжения.

Клеммная колодка – отличный способ сделать надёжное разъёмное соединение и быстро выполнить изменения в схеме прототипов ваших устройств. Для тех, кому не хватает стандартных разъёмов, есть более крупные и мощные платы, например, на atmega2560, у которой доступно полсотни портов для работы с периферией.

На фото изображена плата Arduino Mega 2560. На её основе можно собрать довольно сложного робота, систему умного дома или 3d-принтер на ардуино.

Не стоит думать, что младшие версии слабы, например, микроконтроллер atmega328, на котором построены модели Uno, nano, mini и другие, имеет вдвое больше памяти по сравнению с 168 моделью – 2 кб ОЗУ и 32 кб Flash памяти. Это позволяет записывать более сложные программы в память микроконтроллера.

Проекты на основе Arduino ATmega

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

Пример 1

Можно сделать тестер с 11 функциями на микроконтроллере atmega32.

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

  1. Прозвонка цепи с возможностью измерять падение напряжения на переходе диода.
  2. Омметр.
  3. Измеритель ёмкости.
  4. Измерение активного сопротивления конденсатора или ESR.
  5. Определение индуктивности.
  6. Возможность счёта импульсов.
  7. Измерение частоты – пригодится в диагностике, например, для проверки ШИМ источника питания.
  8. Генератор импульсов – тоже полезен в ремонте.
  9. Логический анализатор позволит просмотреть содержимое пачек цифровых сигналов.
  10. Тестер стабилитронов.

Пример 2

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

Пример 3

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

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

  1. Arduino uno или atmega
  2. Tft дисплей 5 дюйма.
  3. Небольшой набор обвязки.

Или его упрощенный аналог на плате Nano и дисплее от nokia 5110.

Такой осциллографический пробник станет полезным для автоэлектрика и мастера по ремонту радиоэлектронной аппаратуры.

Пример 4

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

На фото приведен пример реализации такой системы и ввода данных с клавиатуры.

Цветомузыка на микроконтроллере Arduino ATmega8

Для школьной дискотеки можно собрать ЦМУ на 6 каналов.

Транзисторы VT1-VT6 нужно подобрать с учетом мощности ваших светодиодов. Это силовые компоненты – они нужны, потому что мощности микроконтроллера не хватит, чтобы запустить мощные лампы или светодиоды.

Если вы хотите коммутировать сетевое напряжение и собрать цветомузыку на лампах накаливания, вместо них нужно установить симисторы и драйвер. Дополнить каждый канал ЦМУ вот такой конструкцией:

Ардуино своими руками

Atmega2560 – хоть и мощный и продвинутый контроллер, но проще и быстрее собрать первую плату на atmega8 или 168.

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

DA1 – это стабилизатор напряжения L7805. В качестве основы можно использовать целый ряд avr микросхем, которые вы найдете, например, серии, arduino atmega32 или собрать arduino atmega16. Для этого нужно использовать разные загрузчики, но для каждого из МК нужно найти свой.

Можно поступить еще проще, и собрать всё на беспаечной макетной плате, как это показано здесь, на примере 328-й атмеги.

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