Arduino на atmega128 своими руками

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 порт для прошивки.

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

Источник

Adblock
detector