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.