ATmega16 + Arduino IDE

ATmega16, ATmega16L представляют собой 8-разрядные AVR-микроконтроллеры с внутрисистемно программируемой флэш-памятью емкостью 16 кбайт.

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

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

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

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

https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json

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

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

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

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

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

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

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

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

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


Для удобства использования Atmega16 можно установить загрузчик, для этого выберите вкладку — Инструменты >> Записать загрузчик.

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

Для загрузки скетчей через загрузчик необходимо использовать переходник USB — TTL

Для загрузки скетча выберите программатор AVRISP mkll и нажмите кнопку «Загрузка», после завершения компиляции нажмите кнопку RESET.

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

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