Андрей Смирнов
Время чтения: ~6 мин.
Просмотров: 0

ATMega48 – отличное соотношение цена/функциональность.

Семейство микроконтроллеров ATMegaX8 наиболее оптимально по соотношению цена/функциональность. В семейство входят три микроконтроллера ATMega48, ATMega88, ATMega168. Все микроконтроллеры семейства идентичны, за исключением объема памяти. Соответственно 4/8/16кбайт Flash, 256/512/512байт EEPROM, 0.5/1/1кбайт SRAM. Микроконтроллер выпускается в двух вариантах – обычном (ATMega48/88/168) и с пониженным питанием (ATMega48V/88V/168V). За пониженное питание приходится платить понижением тактовой частоты микроконтроллера (более медленная работа). Семейство ATMega48/88/168 улучшенный вариант ATMega8 и совместимо с ним по выводам.

  • 131 инструкций оптимизированных для программирования на языках высокого уровня;
  • 32 регистра общего назначения;
  • почти каждая инструкция выполняется за 1 такт генератора, за счет чего быстродействие достигает 20 MIPS (20 миллионов операций за секунду);
  • 4/8/16 килобайт флеш-памяти для программ. Флеш-память может программироваться прямо с контроллера (сама себя);
  • 256/512/512 байт EEPROM (энергонезависимая память);
  • 512/1К/1К байт SRAM (оперативная память).

Что мы имеем на борту из периферии?

  • два 8 битных таймера/счетчика;
  • один 16 битный таймер/счетчик (с захватом);
  • таймер реального времени (часы)
  • шесть ШИМ каналов;
  • 6/8 канальный 10ти битный АЦП
  • аналоговый компаратор;
  • SPI последовательный интерфейс
  • I2C интерфейс
  • USART (это компьютерный COM RS232, только с другими уровнями ).
  • Watchdog таймер, внешние прерывания на всех ножках.

Особые плюшки:

  • внутрисхемная отладка по одному проводу debugWIRE;
  • программирование по последовательному SPI интерфейсу;
  • различные источники прерывания как внешние, так и внутренние, 5 режимов «Сна», детектор понижения питания, встроенный задающий генератор.

Питание, частота:

В рабочем режиме потребляет 250 мкА при питании 1.8 В и частоте задающего генератора 1МГц. В режиме энергосбережения Power-down кушает меньше 0.1мкА при 1.8В

Программирование:

Для микроконтроллера наиболее удобен режим программирования по последовательному SPI интерфейсу. Для реализации этого режима необходимо подключить микроконтроллер к программатору по SPI интерфейсу (MOSI, MISO, SCK, RESET, GRD), запитать микроконтроллер номинальным напряжением. Микроконтроллер может программироваться прямо в рабочей схеме (внутрисхемное программирование) но при этом должно соблюдаться условие – линиям SPI интерфейса при программировании не должно ничего мешать (большие емкости, маленькие сопротивления относительно общего провода и т.д.). Более подробно почитать про внутрисхемное программирование и программаторы >

Семейство ATMega48/88/168 было обновлено (буковка А в конце). В результате обновления семейство получило еще один микроконтроллер ATMega328 с увеличением всех видов памяти (32кбайт Flash, 1кбайт EEPROM, 2кбайт SRAM). Также семейство перешло на новую технологию Atmel picoPower, а значит уменьшилось потребление энергии как в штатном режиме, так и в режимах энергосбережения, убрано разделение микроконтроллеров на обычное и низковольтное питание (теперь все микроконтроллеры можно запитывать от 1.8 до 5.5В, при этом лишь необходимо соблюдать ограничения по частоте от 4МГц (для 1.8В) до 20Мгц)

Ввиду слабой распространенности семейства ATMega48A/88A/168A/328 устройства будут собираться на микроконтроллерах ATMega48/88/168. Так как новые версии совместимы со старыми, то прошивки должны работать и на новых микроконтроллерах.

Заключение:

ATMegaX8 производителен и экономичен. Имеет хорошую функциональность и объемы памяти позволяющие реализовывать достаточно серьезные проекты. Семейство идентичных микроконтроллеров позволяет увеличить функции устройства не меняя схемы (конечно в случае корпуса DIP в панельке – не влезает новая программа в ATMega48, ставим ATMega88 и все работает). Относительно небольшая стоимость. Широко доступен в продаже. Так как ATMega8 в свое время очень широко применялся, а ATMega48/88/168 фактически аналог, то много готовых разработок можно повторять лишь с небольшой коррекцией. Из недостатков стоит отметить мелкий корпус TQFP (хотя как посмотреть – для компактных устройств очень даже достаток). Вывод: отличный высокопроизводительный контроллер с небольшой стоимостью и богатой функциональностью (за свои деньги конечно). Рекомендуется для широкого применения.

Даташит для семейства ATMega48/88/168/V берем здесь:

[Загрузка не найдена]

Даташит для обновленного семейства ATMegaX8A/P, Errata, Application Notes смотрим на официальной страничке.

(Visited 11 219 times, 2 visits today)

Опубликовано 7 января, 2018 — 23:58 пользователем

Arduino

 Добрый день. С появлением arduino робототехника, автоматика и другие радио изделия стали нам более доступными. Раньше представить было трудно что с такой простотой можно писать прошивки для микроконтроллеров, с появлением arduino заниматься робототехникой могут даже детишки. Простота платформы arduino позволяет забыть о побитовых операциях и регистрах avr которые использовались повсеместно. Но так как платформа универсальная то и микроконтроллер тоже выбран универсальный. Например в arduino uno предусмотрен atmel atmega328p что даволи излишне для простой обработки нажатий на кнопки, а если делать сразу партию устройств то придется заплатить за незадействованную мощь. Но так как arduino ide свободно распространяемая, любой без труда может написать дополнения и библиотеки, зачастую они могут быть очень полезными. В данной статье пойдет речь о библиотеке плат на основе ATmega8, ATmega48, ATmega88, ATmega168 под названием Mini Core. Данная библиотека позволят писать скетчи arduino под более слабые микроконтроллеры чем atmega328p, а это позволяет удешевить стоимость устройства за счет рационального использования мощности.  Почему именно эти микроконтроллеры:

  1. Данные микроконтроллеры с теми же выводами и архитектурой и имеют минимальные отличия от atmega328p(заменяемые)
  2. Они дешевые и популярные(некоторые дешевле доллара)
  3. Они все имеют DIP и TQFP корпуса

Данная библиотека поддерживает все индексы микросхемы кроме PB (т.е. A, P, PA), например не стоит использовать ATMEGA168PB-AU.Микросхемы по характеристикам:

  Atmeg328 atmega168 atmega88 atmega48 atmega8
Flash 32 кб 16 кб 8 кб 4 кб 8 кб
ОЗУ 2 кб 1 кб 1 кб 512 б 1 кб
ПЗУ 1 кб 512 б 512 б 256 б 512 б
Каналы ШИМ 6 6 6 6 3

Пора от теории перейти к практике установим Mini Core, для установки понадобиться Arduino IDE версии 1.6.4 и выше. Если у вас нет Arduino или она старше качаем ее с оф. Сайта.1. Для установки делаем следующее:2. Запускаем Arduino IDE3. Откройте меню « Файл» ⇒ «Настройки» .В пункте «Дополнительные ссылки для Менеджера плат» нужно вставить следующее:

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

_0-604x457.JPG4. После вышеупомянутых операций закрываем настройки и переходим в меню Откройте меню « Инструменты» ⇒ «Плата:»………»» ⇒  « Менеджер плат…»._3-586x354.jpg5. В менеджере плат выбираем нашу библеотеку и нажимем установка:1111111-596x334.jpgПримечание . Если вы используете Arduino IDE 1.6.6, вам может потребоваться закрыть диспетчер плат, а затем снова открыть его.  После установки в меню « Инструменты» ⇒ «Плата:»………»» появятся варианты плат с нашими микроконтроллерами.  Самый удобный вариант для использование  данных микроконтроллеров это взять arduino uno с микросхемой в корпусе dip и заменить на нужную. Также можно собрать плату с несложной обвязкой:  Для тех кому нужна распиновка микросхем фото ниже:

Так же не маловажной особенностью является то что авторы добавили возможность выбора кварцевого резонатора по нескольким частотам и параметры контроля питания, что по умолчанию не доступно для стандартных плат. Все манипуляции с данными параметрами производятся в меню-инструменты.Настройки тактовой частоты:

  • 16 МГц внешний генератор (по умолчанию)
  • 20 МГц внешний генератор
  • 18.432 Mhz внешний генератор *
  • 12 МГц внешний генератор
  • 8 МГц внешний генератор
  • 8 МГц внутренний генератор **
  • 1 МГц встроенный генератор

* — частота 18.432 не рекомендуется использовать в скетчах где нужно измерить точное время, но хорошо подойдет для работы с com-портом.** — внутренний генератор 8МГц сам по себе не точный и частота может меняться от температуры окружающей среды и рабочего напряжения.Параметры контроля питания:

Atmega 328 Atmega 168 Atmega 88 Atmega 48 Atmega 8
4.3 В 4.3 В 4.3 В 4.3 В 4.0 В
2.7 В 2.7 В 2.7 В 2.7 В 2.7 В
1.8 В 1.8 В 1.8 В 1.8 В
Отключено Отключено Отключено Отключено Отключено

Сайт проекта на github.<label>Полезность</label>Всего голосов: 8Используемые источники:

  • http://www.getchip.net/posts/atmega48-otlichnoe-sootnoshenie-cenafunkcionalnost/
  • https://radio-blogs.ru/blog/arduino/arduino-na-atmega8-atmega48-atmega88-atmega168

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации