ATmega64 + Arduino IDE

ATmega64 представляют собой 8-разрядные AVR-микроконтроллеры с внутрисистемно программируемой флэш-памятью емкостью 64 кбайт. За счет выполнения большинства инструкций за один машинный цикл ATmega64 достигает производительности 1 млн. операций в секунду/МГц, что позволяет проектировщикам систем оптимизировать соотношение энергопотребления и быстродействия.

Отличительные особенности:

  • 8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
  • Прогрессивная RISC архитектура
    — 130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл
    — 32 8-разрядных рабочих регистра общего назначения + регистры управления периферией
    — Полностью статическая работа
    — Производительность приближающаяся к 16 MIPS (при тактовой частоте 16 МГц)
    — Встроенный 2-цикловый перемножитель
  • Энергонезависимая память программ и данных
    — 64 Кбайт внутрисистемно перепрограммируемой Flash памяти
    — Обеспечивает 1000 циклов стирания/записи
    — Дополнительный сектор загрузочных кодов с независимыми битами блокировки
    — Внутрисистемное программирование встроенной программой загрузки
    — Обеспечен режим одновременного чтения/записи (Read-While-Write)
    — 2 Кбайта EEPROM
    — Обеспечивает 100000 циклов стирания/записи
    — 4 Кбайта встроенной SRAM
    — До 64 Кбайтов пространства дополнительной внешней памяти
    — Программируемая блокировка, обеспечивающая защиту программных средств пользователя
    — SPI интерфейс для внутрисистемного программирования
  • Интерфейс JTAG (совместимый с IEEE 1149.1)
    — Возможность сканирования периферии, соответствующая стандарту JTAG
    — Расширенная поддержка встроенной отладки
    — Программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки
  • Встроенная периферия
    — Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения
    — Два 16-разрядных таймера/счетчика, с расширенными возможностями, с отдельным предварительным делителем и режимами захвата и сравнения
    — Счетчик реального времени с отдельным генератором
    — Два 8-разрядных канала PWM
    — Шесть каналов PWM с возможностью программирования разрешения от 1 до 16 разрядов
    — 8-канальный 10-разрядный аналого-цифровой преобразователь
    — 8 несимметричных каналов
    — 7 дифференциальных каналов
    — 2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат
    — Байт-ориентированный 2-проводный последовательный интерфейс
    — Сдвоенный программируемый последовательный USART
    — Последовательный интерфейс SPI (ведущий/ведомый)
    — Программируемый сторожевой таймер с отдельным встроенным генератором
    — Встроенный аналоговый компаратор
  • Специальные микроконтроллерные функции
    — Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания
    — Встроенный калиброванный RC-генератор
    — Внутренние и внешние источники прерываний
    — Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC
    — Программная установка тактовой частоты
    — Режим обеспечения совместимости с ATmega103 (перемычки)
    — Глобальный запрет подтягивающих резисторов
  • Выводы I/O и корпуса
    — 53 программируемые линии ввода/вывода
    — 64-выводной корпус TQFP
  • Рабочие напряжения
    — 2,7 – 5,5 В (ATmega64L, ATmega64А)
    — 4,5 – 5,5 В (ATmega64)
  • Рабочая частота
    — 0 — 8 МГц (ATmega64L)
    — 0 — 16 МГц (ATmega64, ATmega64A)

Для поддержки контроллера Atmega64 в среде разработке Arduino IDE необходимо выполнить следующие действия:

  • Откройте вкладку Файл >> Настройки и в поле «Дополнительные ссылки для менеджера плат» добавьте адрес:

https://mcudude.github.io/MegaCore/package_MCUdude_MegaCore_index.json

  • Далее откройте вкладку Инструменты >> Плата >> Менеджер плат 

В поле поиска введите число: 64, установите набор плат: MegaCore by MCUdude

  • Выберите плату ATmega64

  • Для прошивки скетча или загрузчика Вам понадобится программатор USBAsp

В моем случае я использую микроконтроллер который установлен на плату переходник, схема подключения достаточно простая:

  • Установите настройки платы как показано на скриншоте:

  • Выберите программатор USBAsp
  • Нажмите кнопку «Записать загрузчик». Запись загрузчика делается один раз (нужно повторить если изменили тактовую частоту микроконтроллера).

После записи загрузчика Вы в Arduino IDE увидите примерно следующее:

  • Далее скопируйте и вставьте в Arduino IDE следующий тестовый скетч (BLINK):
void setup() {
  pinMode(PE6, OUTPUT);
  }

void loop() {
  digitalWrite(PE6, HIGH);  
  delay(100);                     
  digitalWrite(PE6, LOW);    
  delay(100);                      
}

Подключите к выводу 8 (PE6) через резистор 300 Ом светодиод. После загрузки скетча светодиод начнет мигать.

Для загрузки скетча выберите вкладку — Скетч >> Загрузить через программатор

После загрузки скетча появится следующее сообщение:

Для удобства использования Atmega64 можно установить загрузчик, выбрав опцию настройки платы Bootloader «Yes (UART0)» , после чего необходимо нажать кнопку «Записать загрузчик».

Очень удобно для прошивки микроконтроллера использовать переходник USB — TTL используя для этого пины 2 (PE0 — TXD) и 3 (PE1 — RXD) . Фактически Вы будете загружать скетчи как в плату Arduino.

Переходник USB — TTL подключите к Atmega64 по следующей схеме:

Во вкладке — Инструменты >> Программатор выберите >> AVRISP mkll (MegaCore)

Для загрузки скетча нажмите кнопку «Загрузка» в Arduino IDE и как только закончится компиляция нажмите кнопку RESET на плате Atmega64.


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

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