ATmega128 + Arduino IDE
Arduino Микроконтроллеры (разное)
16.02.2021
Автор: liman28
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
необходимо выполнить следующие действия:
Откройте вкладку Файл >> Настройки и в поле «Дополнительные ссылки для
менеджера плат» добавьте адрес:
[Link]
Далее откройте вкладку Инструменты >> Плата >> Менеджер плат
В поле поиска введите число: 128, установите набор плат: MegaCore by MCUdude
Выберите плату ATmega128
Для прошивки скетча или загрузчика Вам понадобится программатор USBAsp
Далее скопируйте и вставьте в Arduino IDE следующий тестовый скетч (BLINK):
void setup() {
pinMode(PE6, OUTPUT);
}
void loop() {
digitalWrite(PE6, HIGH);
delay(100);
digitalWrite(PE6, LOW);
delay(100);
}
Подключите к выводу 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.
Пример тестового скетча:
void setup() {
[Link](9600);
}
void loop() {
[Link]("Atmega128");
delay(1000);
}
Плата
Схема платы ATmega128