Некоторое время назад оказались в моем распоряжении несколько микроконтроллеров ATMEL ATMega163 и ATMega163L. Микросхемы были взяты из отслуживших свой срок девайсов. Данный контроллер очень похож на ATMega16, и фактически является его ранней версией.
Содержание статьи / Table Of Contents
↑ Характеристики ATMega163
• Высокопроизводительные, мало потребляющие AVR 8- битные микроконтроллеры• 130 исполняемых команд, большинство за один машинный такт
• 32 рабочих регистра общего назначения
• Полностью статический режим работы
• Производительность до 8 MIPS при 8 МГц
• Встроенный 2-х тактовый умножитель
• Энергонезависимая память программ и данных
• Внутрисистемно самопрограммируемая FLASH память
• 16К байт с количеством циклов перепрограммирования до10 000.
• Опционно загрузочная область памяти (256б-2Кб) с независимыми ключевыми битами, внутрисистемное программирование встроенной загрузочной программой, без внешнего программатора
• 512 байт EEPROM с допустимым количеством циклов стирания записи до 100 000.
• 1024 байт внутренней SRAM
• Программируемый ключ защиты программ
• Периферийные функции
два 8-битных таймера/счётчика с программируемым предделителем и режимом сравнения
один 16-битный таймер/счётчик с программируемым предделителем, режимом сравнения и захвата
счётчик реального времени с программируемым генератором
три ШИМ генератора
8-и канальный, 10-и битный АЦП
байт-ориентированный, двухпроводный интерфейс
программируемый USART
• Master/Slave SPI последовательный интерфейс
• Программируемыи Watchdog таймер с программируемым генератором
• Встроенный аналоговый компаратор
• Специальные функции
Reset по включению питания и выключение при снижении напряжения питания
Внутренний калиброванный RC генератор
• Внешние и внутренние источники прерывания
Четыре экономичных режима: Idle, подавления шумов АЦП, экономичный, режим Выкл.
• Потребляемый ток при 4 МГц, 3.0 В, 25°С
Активный - 5.0 мА
Idle - 1.9 мА
Выкл. - 1мА
• 32 программируемых вывода вход-выход
• 40 выводной корпус PDIP и 44 выводной корпус TQFP
• Напряжение питания:
2.7 В до 5.5 В для ATMega163L
4.5 В до 5.5 В для Atmega163
• Тактовая частота:
0-4 МГц Atmega163L
0-8 МГц Atmega163
Объем флеш-памяти и частота вдвое меньше, чем у ATMega328P, применяемом в наиболее популярном Arduino NANO. Однако этого вполне достаточно для большинства несложных проектов.
Поскольку данный МК является устаревшей моделью, современные средства разработки его как правило не поддерживают.
Из поддерживаемых можно отметить следующие:
• AVR CodeVision 3.12
• AVR Studio 4.19
• Программатор AVR DUDE PROG версии 1.0
↑ Проблемы с ATMega163 и их преодоление
Естественно возникло желание использовать ATMega163 в проектах, созданных в Arduino IDE.Поиск по Сети на данную тему ничего не дал, все закончилось тем, что никто не смог собрать загрузчик для данного МК. Все дело в том, что при использовании стороннего USB программатора, отпадает необходимость в загрузчике, что также сэкономит 2 КБ флеш-памяти.
В любом случае необходимо скомпилировать HEX-файл, необходимый для программирования данного МК.
Идем в папку установки Arduino IDE. Обычно это C:\Program Files (x86)\Arduino\hardware\Arduino\avr для 64 битных систем и C:\Program Files\Arduino\hardware\Arduino\avr для 32 битных соответственно. Предварительно сделав резервную копию файла boards.txt, добавляем в него следующие строки:
#######################################################################
atmega16.name=ATMega16
atmega16.bootloader.low_fuses=0xFF
atmega16.bootloader.high_fuses=0xCF
atmega16.bootloader.unlock_bits=0×3 °F
atmega16.bootloader.lock_bits=0×0 °F
atmega16.upload.maximum_size=16384
atmega16.build.mcu=atmega16
atmega16.build.f_cpu=4000000L
atmega16.build.core=Arduino:Arduino
atmega16.build.variant=standard
# Без загрузчика частота МК 4 МГц.
###########################################################################
###########################################################################
atmega163.name=ATMega163L
atmega163.bootloader.low_fuses=0xFF
atmega163.bootloader.high_fuses=0xCF
atmega163.bootloader.unlock_bits=0×3 °F
atmega163.bootloader.lock_bits=0×0 °F
atmega163.upload.maximum_size=16384
atmega163.build.mcu=atmega163
atmega163.build.f_cpu=4000000L
atmega163.build.core=Arduino:Arduino
atmega163.build.variant=standard
# Без загрузчика частота МК 4 МГц.
###########################################################################
Важно! В случае возникновения ошибок файла boards.txt, его необходимо сохранить в кодировке UTF-8 без BOM.
Теперь проверяем. Открываем проект blink, меняем порт на 0, выбираем плату ATMega16 компилируем.
Теперь проверим что у нас получилось в Proteus. Тестовая схема имеет следующий вид:
↑ Проект для Proteus
Скачать проект для Proteus можно внизу статьи. Скомпилированный файл распологается в папке скетчей, обычно это C:\Users\[User_name]\Documents\Arduino\Blink, загружаем полученный файл Blink.ino.standard.hex и убеждаемся, что все работает. Поскольку в Proteus нет модели для ATMega163, то для моделирования компилируем прошивку для ATMega16.Прошивка микроконтроллера производится из программы USBASP AVRDUDE_PROG с помощью программатора USBASP, причем для МК ATMega163 необходимо использование старой версии 1.0, т. к. в более новых поддержка данного МК отсутствует.
Скачать USBASP AVRDUDE_PROG можно внизу статьи
↑ FUSE биты
FUSE биты для ATMega163L 4 MHz, установлены следующим образом:Arduino Pin Mapping для МК ATMega16/ATMega163 в корпусах PDIP и TQFP
↑ Важное примечание
При использовании библиотек avr-netino необходимо помнить, что они имеют совершенно иной Arduino pin mapping.При компиляции проектов под МК ATMega8, ATMega16, и аналогичных, в проектах, использующих таймер, ШИМ, UART, необходимо добавить в начало скетча следующий код:
#define TCCR2A TCCR2
#define TCCR2B TCCR2
#define TIFR2 TIFR
#define COM2A1 COM21
#define COM2A0 COM20
#define OCR2A OCR2
#define TIMSK2 TIMSK
#define OCIE2A OCIE2
#define TIMER2_COMPA_vect TIMER2_COMP_vect
#define TIMSK1 TIMSK
↑ Файлы
🎁atmega16_test.zip 15.54 Kb ⇣ 31🎁usbasp_avrdude_prog1.zip 384.86 Kb ⇣ 28
Спасибо за внимание!
В следующей статье планирую рассказать о создании паяльной станции на МК ATMega16/ATMega163.
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.