Семейство микроконтроллеров 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)
Arduino
Добрый день. С появлением arduino робототехника, автоматика и другие радио изделия стали нам более доступными. Раньше представить было трудно что с такой простотой можно писать прошивки для микроконтроллеров, с появлением arduino заниматься робототехникой могут даже детишки. Простота платформы arduino позволяет забыть о побитовых операциях и регистрах avr которые использовались повсеместно. Но так как платформа универсальная то и микроконтроллер тоже выбран универсальный. Например в arduino uno предусмотрен atmel atmega328p что даволи излишне для простой обработки нажатий на кнопки, а если делать сразу партию устройств то придется заплатить за незадействованную мощь. Но так как arduino ide свободно распространяемая, любой без труда может написать дополнения и библиотеки, зачастую они могут быть очень полезными. В данной статье пойдет речь о библиотеке плат на основе ATmega8, ATmega48, ATmega88, ATmega168 под названием Mini Core. Данная библиотека позволят писать скетчи arduino под более слабые микроконтроллеры чем atmega328p, а это позволяет удешевить стоимость устройства за счет рационального использования мощности. Почему именно эти микроконтроллеры:
- Данные микроконтроллеры с теми же выводами и архитектурой и имеют минимальные отличия от atmega328p(заменяемые)
- Они дешевые и популярные(некоторые дешевле доллара)
- Они все имеют 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
4. После вышеупомянутых операций закрываем настройки и переходим в меню Откройте меню « Инструменты» ⇒ «Плата:»………»» ⇒ « Менеджер плат…».
5. В менеджере плат выбираем нашу библеотеку и нажимем установка:
Примечание . Если вы используете 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