RoboZone.SU
Универсальный контроллер (ATmega128) под Wiring
Wiring — открытая и бесплатная среда программирования, основанная на Processing. Тем кто знаком со средой Arduino, освоить Wiring будет легко и просто — принцип программирования, интерфейс и синтаксис практически одинаковые. Контроллер под Wiring базируется на ATmega128. В этом материале мы выкладываем свой вариант контроллера для работы с Wiring.
По сравнению с оригинальной схемой контроллера имеются незначительные отличия, но функционал полностью идентичен. Сама схема проста — микроконтроллер ATmega 128 с обвязкой, линейный стабилизатор LM1117-5.0 и микросхема USB-UART — FT232RL для соединения контроллера с компьютером. В схеме реализован программный сброс (необходим для заливки прошивки из-под Wiring).
Программное обеспечение, прошивку, описание языка и прочую необходимую информацию можно взять с официального сайта проекта — Wiring . Если имеются сложности с английским языком — воспользуйтесь он-лайн переводчиками (к примеру переводчик google).
Печатная плата довольно сложная для повторения, но при должной аккуратности все реально сделать ЛУТом в домашних условиях. Все элементы в SMD исполнении. Дополнительные трудности при монтаже добавит FT232RL, так как имеет мелкий шаг ножек, что так же при аккуратной пайке проблемой не является.
Схема в формате sPlan 6.0 и разводка печатной платы под ЛУТ в формате SprintLayout 5.0 вы можете скачать ниже.
Вы не можете скачивать файлы с нашего сервера
ATmega128 + Arduino IDE
ATmega128, ATmega128L представляют собой 8-разрядные AVR-микроконтроллеры с внутрисистемно программируемой флэш-памятью емкостью 128 кбайт. За счет выполнения большинства инструкций за один машинный цикл ATmega128 достигает производительности 1 млн. операций в секунду/МГц, что позволяет проектировщикам систем оптимизировать соотношение энергопотребления и быстродействия.
- Высокопроизводительный, маломощный 8-разрядный AVR-микроконтроллер
- Развитая RISC-архитектура
– 133 мощных инструкций, большинство из которых выполняются за один машинный цикл
– 32 8-разр. регистров общего назначения + регистры управления встроенной периферией
– Полностью статическая работа
– Производительность до 16 млн. операций в секунду при тактовой частоте 16 МГц
– Встроенное умножающее устройство выполняет умножение за 2 машинных цикла - Энергонезависимая память программ и данных
– Износостойкость 128-ми кбайт внутрисистемно перепрограммируемой флэш-памяти: 1000 циклов запись/стирание
– Опциональный загрузочный сектор с отдельной программируемой защитой - Внутрисистемное программирование встроенной загрузочной программой
- Гарантированная двухоперационность: возможность чтения во время записи
– Износостойкость 4 кбайт ЭСППЗУ: 100000 циклов запись/стирание
– Встроенное статическое ОЗУ емкостью 4 кбайт
– Опциональная возможность адресации внешней памяти размером до 64 кбайт
– Программируемая защита кода программы
– Интерфейс SPI для внутрисистемного программирования - Интерфейс JTAG (совместимость со стандартом IEEE 1149.1)
– Граничное сканирование в соответствии со стандартом JTAG
– Обширная поддержка функций встроенной отладки
– Программирование флэш-памяти, ЭСППЗУ, бит конфигурации и защиты через интерфейс JTAG - Отличительные особенности периферийных устройств
– Два 8-разр. таймера-счетчика с раздельными предделителями и режимами сравнения
– Два расширенных 16-разр. таймера-счетчика с отдельными предделителями, режимами сравнения и режимами захвата
– Счетчик реального времени с отдельным генератором
– Два 8-разр. каналов ШИМ
– 6 каналов ШИМ с программируемым разрешением от 2 до 16 разрядов
– Модулятор выходов сравнения
– 8 мультиплексированных каналов 10-разрядного аналогово-цифрового преобразования - 8 несимметричных каналов
- 7 дифференциальных каналов
- 2 дифференциальных канала с выборочным усилением из 1x, 10x и 200x
– Двухпроводной последовательный интерфейс, ориентированный не передачу данных в байтном формате
– Два канала программируемых последовательных УСАПП
– Последовательный интерфейс SPI с поддержкой режимов ведущий/подчиненный
– Программируемый сторожевой таймер со встроенным генератором
– Встроенный аналоговый компаратор - Специальные возможности микроконтроллера
– Сброс при подаче питания и программируемая схема сброса при снижении напряжения питания
– Встроенный калиброванный RC-генератор
– Внешние и внутренние источники прерываний
– Шесть режимов снижения энергопотребления: холостой ход (Idle), уменьшение шумов АЦП, экономичный (Power-save), выключение (Power-down), дежурный (Standby) и расширенный дежурный (Extended Standby)
– Программный выбор тактовой частоты
– Конфигурационный бит для перевода в режим совместимости с ATmega103
– Общее выключение подтягивающих резисторов на всех линиях портов ввода-вывода - Ввод-вывод и корпуса
– 53 –программируемые линии ввода-вывода
– 64-выв. корпус TQFP - Рабочие напряжения
– 2.7 — 5.5В для ATmega128L
– 4.5 — 5.5В для ATmega128 - Градации по быстродействию
– 0 — 8 МГц для ATmega128L
– 0 — 16 МГц для ATmega128
Для поддержки контроллера Atmega128 в среде разработке Arduino IDE необходимо выполнить следующие действия:
- Откройте вкладку Файл >> Настройки и в поле «Дополнительные ссылки для менеджера плат» добавьте адрес:
https://mcudude.github.io/MegaCore/package_MCUdude_MegaCore_index.json
- Далее откройте вкладку Инструменты >> Плата >> Менеджер плат
В поле поиска введите число: 128, установите набор плат: MegaCore by MCUdude
- Выберите плату ATmega128
- Для прошивки скетча или загрузчика Вам понадобится программатор USBAsp
В моем случае я использую микроконтроллер который установлен на плату переходник, схема подключения достаточно простая:
- Далее скопируйте и вставьте в Arduino IDE следующий тестовый скетч (BLINK):
Подключите к выводу 8 (PE6) через резистор 300 Ом светодиод. После загрузки скетча светодиод начнет мигать.
Для загрузки скетча выберите вкладку — Скетч >> Загрузить через программатор
После загрузки скетча появится следующее сообщение:
Для удобства использования Atmega128 можно установить загрузчик, для этого выберите вкладку — Инструменты >> Записать загрузчик.
После записи загрузчика Вы в Arduino IDE увидите примерно следующее:
Очень удобно для прошивки микроконтроллера использовать переходник USB — TTL используя для этого пины 2 (PE0 — TXD) и 3 (PE1 — RXD) . Фактически Вы будете загружать скетчи как в плату Arduino.
Переходник USB — TTL подключите к Atmega128 по следующей схеме:
Во вкладке — Инструменты >> Программатор выберите >> AVRISP mkll (MegaCore)
Для загрузки скетча нажмите кнопку «Загрузка» в Arduino IDE и как только закончится компиляция нажмите кнопку RESET на плате Atmega128.
Пример тестового скетча:
![]() | ![]() |
Плата
Схема платы ATmega128
Обновлено: 08.01.2022 в 14:35 | Просмотров: 5 735
ATmega16 + Arduino IDE
ATmega16, ATmega16L представляют собой 8-разрядные AVR-микроконтроллеры с внутрисистемно программируемой флэш-памятью емкостью 16 кбайт. Отличительные особенности: 8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением Прогрессивная RISC архитектура 130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл 32 8-разрядных рабочих регистра общего назначения Полностью статическая работа Производительность приближается к 16.
LCD1602_I2C Atmega88 (Arduino IDE)
Серия недорогих микроконтроллеров Atmega8, Atmega48, Atmega88 могут стать отличной заменой сильно подорожавших плат Arduino Nano. Большое кол-во проектов создаваемых на платах Arduino Nano часто используют небольшое объем памяти и применять Arduino Nano в данных проектах нецелесообразно. В Atmega8, Atmega48, Atmega88 имеют 8 кБ программируемой Flash памяти, 1кБ SRAM памяти и 512 байта EEPROM. Микроконтроллеры Atmega8, Atmega48, Atmega88 поддерживаются средой программирования Arduino IDE, так.
ATmega8 (Arduino IDE)
Большое кол-во проектов выполненных на платформе Arduino не требовательных к размеру памяти могут быть выполнены на микроконтроллере ATmega8. Основное отличие ATtmega8 от Atmega328 (Arduino NANO), это размер памяти: Atmeg328 Atmega168 Atmega8 Flash 32 кб 16 кб 8 кб ОЗУ 2 кб 1 кб 1 кб ПЗУ 1 кб 512 б 512 б Каналы ШИМ 6 6 3 Так же учитывайте что ATmega8 имеет диапазон питающего напряжения от 4.5 до 5.5 В и тактовую до 16 МГц, а ATmega8L.
Atmega88 + IR (Arduino IDE)
Микроконтроллер Atmega88 может стать отличной заменой сильно подорожавших плат Arduino Nano. Большое кол-во проектов создаваемых на платах Arduino Nano часто используют небольшое объем памяти и применять Arduino Nano в данных проектах нецелесообразно. Atmega88 имеет 8 кБ программируемой Flash памяти, 1кБ SRAM памяти и 512 байта EEPROM. Микроконтроллер Atmega88 поддерживается средой программирования Arduino IDE, так же большинство библиотек совместимы с этими контроллерами. Как.
Амперметр на ADS1110 (Arduino IDE | Atmega8L)
На АЦП ADS1110 можно собрать простой и точный амперметр постоянного тока. Диапазон измерения амперметра от 5 мА до 9.999 А с разрешением 1 мА. В качестве датчика тока используется манганиновая проволока диаметром не менее 2 мм с сопротивлением 0.01 Ом. ADS1110 (более подробно) это прецизионный аналого-цифровой (A/D) преобразователь с дифференциальным входом и разрешением до 16 бит. Встроенный ИОН 2,048 В обеспечивает входной диапазон ±2,048 В. ADS1110 использует I2C интерфейс для связи с.
Как сделать свой клон Arduino, и есть ли в этом смысл
Часто у начинающих ардуинщиков и более продвинутых пользователей возникает проблема: памяти микроконтроллера недостаточно или наоборот, слишком много. Основная часть моделей имеет объем памяти 32к или 256к. С портами ввода/вывода ситуация не сильно лучше. Конечно, есть расширители портов, но тогда придется менять логику программы. Одним словом тупик. И выход есть — создать свою копию Arduino на другом микроконтроллере.
Перед использованием схем из этой статьи, проверьте, все ли в порядке. Я тоже могу допустить ошибку. Если вы это заметили, напишите в комментарии.
Выбираем микроконтроллер под свои задачи
Выбирая МК, нужно определить основные параметры:
Кол-во линий ввода/вывода
Большим плюсом при создании платы на базе официально не поддерживаемого МК, будет наличие загрузчика и ядра. Привожу некоторые МК, для которых есть ядро:
МК
Flash, k
SRAM, k
EEPROM, b
Порты
Интерфейсы
Корпус
SPI x5, I2C,UART x4
SPI x3, I2C,UART x2
Главное найти баланс: чтобы желаемого пункта хватало, но не в ущерб остальным характеристикам.
Немного о маркировке МК ATmega
Маркировка МК ATmega обычно интуитивно понятна, в качестве примера разберем маркировку чипа ATmega32l — 8AU. ATmega — семейство МК, 32 — flash память, l — пониженное напряжение питания. Буквы после модели я вынес в таблицу:
Буква
Значение
Напряжение питания от 4.5 до 5.5
Напряжение питания от 2.7 до 5.5
Напряжение питания от 1.8 до 5.5
Напряжение питания от 0.7 до 5.5
Потребление 100нА в режиме Power-down
Уменьшен ток потребления, перекрывается весь диапазон тактовых частот всех версий, напряжение питания 1,8 — 5,5 вольт
Надо учитывать, что микроконтроллер без буквы в обозначении может иметь пониженное напряжение питания, это нужно проверять по документации.
Тактирование
После выбора микроконтроллера под свои задачи можно переходить к проектированию схемы. Сначала находим пины XTAL1 и XTAL2. К ним мы подключаем кварц. Сейчас их достаточно много — есть и со встроенными конденсаторами внутри.
Обычный выводной кварц
Для его работы требуется обвязка — два конденсатора на 22 пикофарада.
Схема подключения кварца, линии от X1 идут к XTAL1 и XTAL2
Также существуют другие варианты — со встроенными конденсаторами и в других корпусах, включая SMD. Если в кварце уже есть конденсатор, то дополнительные не нужны, подключаем напрямую к XTAL1 и XTAL2.
Далее гуглим «НАЗВАНИЕ_МК максимальная частота». Для примера я загуглил «Atmega32l-8au максимальная частота». Почти гарантировано вы увидите строчку:
В этом случае смысла во внешнем кварце нет, можно использовать внутренний генератор. В большинстве случаев частота работы 16 МГц, иногда 20 МГц.
Корпус
Здесь все сводится к размерам и удобству сборки. Некоторые МК выпускаются только в SMD — в основном из-за огромного количества портов. Самые крупные выводные МК обычно выпускаются в корпусе DIP-40. Те, которые имеют 100+ выводов, конечно, идут в SMD. Паяльником реально припаять корпус TQFP-44 — ATmega16/32. Больше — я не пробовал, если у вас есть опыт — отпишите в комментарии. Однако, китайцы, если заказать у них печатную плату, могут нам припаять МК хоть TQFP-100. Естественно, это недёшево, но когда очень большая партия — это единственный выход.
Прошивка
Если мы копируем Arduino, нам необходимо добавить возможность прошивки через бутлоадер — загрузчик, через разъем USB. Существуют специализированные микросхемы — CH340, FT232, CP2102. На оригинальных Arduino для загрузки прошивки используется отдельный камень — Atmega8u2/16u2 со своей прошивкой и аппаратным USB. Я сам использую чип CH340C. Некоторые на него жалуются, но у меня все достаточно хорошо. Прилагаю рекомендуемую схему подключения:
Итоговая схема
Итак, сложим все требования воедино. Я хочу Atmega32l на частоте 8МГц с прошивкой по USB. У меня получилось это:
Итоговая схема
Вывод
Создание своего клона Arduino имеет смысл, если вам не хватает мощности UNO, а MEGA использовать нецелесообразно, а также хочется иметь USB порт для прошивки.
Надеюсь, что статья была вам полезна, и вы узнали что-то новое. Если есть вопросы или замечания, напишите в комментарии, спасибо за дочитывание статьи, пока!
Adblockdetector