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):
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() {
  Serial.begin(9600);
  }

void loop() {
  Serial.println("Atmega128");
    
  delay(1000);                      
}


Плата

 

Схема платы ATmega128

Comments

  1. Все работает. Грабли, использовал такой же дизайн, кварц своей шляпкой давил на лак и видимо добрался до дорожки, чего было достаточно, что бы кристалл не определялся, выяснил после перепайки чипа и попытке перепаять кварц. Так же совсем не дружили мои usbasp с arduino ide, решилось заменой averdude в ide.
    На платке есть свободные места для распайки isp разъема и usp-ttl, что и сделал. Спасибо за толковую статью.

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

Войти с помощью: