ATMega88 (Arduino IDE)

ATMega88 — низкопотребляющий 8 битные КМОП микроконтроллеры с AVR RISC архитектурой. Выполняя команды за один цикл, ATMega88 достигают производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.

Основные параметры:

  • Высококачественный низкопотребляющий 8- битный AVR микроконтроллер
  • Передовая RISC архитектура
    • 130 команд, большинство которых выполняется за один тактовый цикл
    • 32 8 битных рабочих регистра общего применения
    • полностью статическая архитектура
    • производительность до 16 MIPS при тактовой частоте 16 МГц
    • встроенный двухцикловый умножитель
  • Энергонезависимая память программ и данных
    • 8/16 КБ внутрисистемно программируемой Flash памяти программы, способной выдержать 10 000 циклов записи/стирания
    • вспомогательная секция загрузочной программы с независимым битом защиты
      • внутрисистемное программирование встроенной программой-загрузчиком
      • реальная функция считывания при программировании
    • 512 байта EEPROM, способной выдержать 100 000 циклов записи/стирания
    • 1К байта встроенной SRAM памяти (статическое ОЗУ)
    • программируемая защита от считывания
  • Характеристики периферии
    • Два 8- разрядных таймера/счетчика с отдельным предделителем и режимом сравнения
    • Один 16- разрядный таймер/счетчик с отдельным предделителем и режимом сравнения и режимом захвата
    • Счетчик реального времени с отдельным генератором
    • Пять ШИМ каналов
    • 8 канальный АЦП у приборов в TQFP и MFL корпусах
      • 6 10- битных каналов
      • 2 8- битных канала
    • 6 канальный АЦП у приборов в PDIP корпусе
      • 4 10- битных каналов
      • 2 8- битных канала
    • Программируемый последовательный USART
    • Ведущий/ведомый SPI интерфейс
    • Байт- ориентированный последовательный 2- проводный интерфейс
    • Программируемый сторожевой таймер со встроенным генератором
    • Встроенный аналоговый компаратор
    • Прерывание и пробуждение при изменении состояния выводов
  • Специальные характеристики микроконтроллера
    • Сброс при включении питания и детектор кратковременных пропаданий питания
    • Встроенный откалиброванный генератор — Внешние и внутренние источники прерывания
    • Пять режимов пониженного потребления: Idle, ADC Noise Reduction, Power-Save, Power-down и Standby
  • Порты ввода — вывода и корпусное исполнение
    • 23 программируемых линии портов ввода-вывода
    • 32 выводные TQFP и MFL корпуса
  • Диапазон напряжения питания
    • от 1.8 до 5.5 В
  • Коммерческий рабочий температурный диапазон
  • Различный диапазон рабочих тактовых частот
    • от 0 до 20 МГц
  • Сверх низкое потребление
    • Активный режим:
      • 300 мкА при частоте 1 МГц и напряжении питания 1.8 В
      • 20 мкА при частоте 32 кГц и напряжении питания 1.8 В
    • Режим пониженного потребления
      • 0.5 мкА при напряжении питания 1.8 В

Для использования ATmega88 в Arduino IDE Вам необходимо собрать следующую схему:

Перед прошивкой ATmega88 необходимо установить поддержку контроллера в Arduino IDE, для этого откройте меню Файл >> Настройки и в пункте Дополнительные ссылки для Менеджера плат вставьте ссылку:

https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

Далее переходим в меню  Инструменты >> Плата >> Менеджер плат

В строке поиска напишите atmega88, списке менеджера плат выберите пакет: MiniCore by MCUdude

После установки поддержки плат в Arduino IDE появится плата Atmega88

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

Распиновка USBasp

Перед загрузкой в настройках платы укажите частоту кварцевого резонатора (16 МГц), выбрать программатор  USBasp, в пункте Variant тип контроллера 88P/88PA, 88/88A (для Atmega88 20PU который я используя для этой статьи) или 88PB, в пункте Bootloader выберите No bootloader или Yes (UART0) если планируете загружать скетчи через UART ( USB — TTL ).

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

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

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

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

Для примера можно загрузить скетч BLINK, для этого в выводу 19 (PB5) через резистор 300 Ом подключите светодиод и загрузите один из скетчей:

#include <avr/io.h>
#include <util/delay.h>

int main(void){       
 DDRB |= (1 << PB5);

while(1){
    PORTB |= (1 << PB5);
    _delay_ms(1000);
    PORTB &=~ (1 << PB5);
    _delay_ms(1000);
}}
void setup() {
 pinMode(13,OUTPUT);
}

void loop() {
  digitalWrite(13,HIGH);
  delay(1000);
  digitalWrite(13,LOW);
  delay(1000);
}

После загрузки скетча начнет мигать светодиод с интервалом 1 секунда.

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

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