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.