В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

Использование МК ATMega163, ATMega163L, ATMega16 в Arduino IDE

📆16 апреля 2019   ✒️radist80   🔎12.049   💬0  
Популярная среда разработки Arduino IDE привлекает большим количеством готовых библиотек и интересных проектов, которые можно найти на просторах Сети.

Некоторое время назад оказались в моем распоряжении несколько микроконтроллеров ATMEL ATMega163 и ATMega163L. Микросхемы были взяты из отслуживших свой срок девайсов. Данный контроллер очень похож на ATMega16, и фактически является его ранней версией.

Характеристики 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 ⇣ 29
🎁usbasp_avrdude_prog1.zip  384.86 Kb ⇣ 26

Спасибо за внимание!
В следующей статье планирую рассказать о создании паяльной станции на МК ATMega16/ATMega163.

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрил 31 читатель.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги... Современное радиолюбительство невозможно представить без микроконтроллеров, и это очевидно. В...
Схема на Датагоре. Новая статья Даташиты на микроконтроллеры AVR ATMega, ATTiny и AT90... Любому разработчику нужно знать специфику компонента, особенно если этот компонент -...
Схема на Датагоре. Новая статья TDA7442D+ATmega8. Микропроцессорный регулятор громкости... Привет ВСЕМ!!! Интересно, кому бы не хотелось, чтобы его усь обладал сервисом промышленных...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 2... Пишем первую программу!Большинство начинают с мигания светодиодов, и мы не исключение. Если...
Схема на Датагоре. Новая статья Несколько функций для програмной реализации протокола I2C на AVR... Добрый день, дорогие друзья! Решил поделиться с вами несколькими функция для работы по протоколу...
Схема на Датагоре. Новая статья Программная реализация протокола I2C на AVR в CodeVisionAVR... Пару лет назад, изучая Atmega8, я захотел программно реализовать работу с устройствами на шине...
Схема на Датагоре. Новая статья PIC микроконтроллеры. Все, что вам необходимо знать. Сид Катцен... PIC микроконтроллеры. Все, что вам необходимо знать. Сид Катцен пер. с англ. Евстифеева А. В. — М.:...
Схема на Датагоре. Новая статья Программная реализация протокола SPI на AVR в CodeVisionAVR... Всем коллегам и согражданам привет! Увлёкся я изучением протоколов. Про реализацию протокола I2C у...
Схема на Датагоре. Новая статья Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL, Евстифеев А.В.... Издательство: Додэка XXI [М.], 560 стр. 2005 г. Книга посвящена вопросам практического применения...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 8... Перейдем к изучению встроенных таймеров. Изучение прерываний и особенно таймеров в...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 5... Для того чтобы писать более сложные программы, нужно хорошо представлять структуру и...
Схема на Датагоре. Новая статья Немного про шину 1-Wire и цифровой термометр DS18b20... Здравствуйте, друзья. Хочу предложить вашему вниманию несколько простых функций для работы с шиной...
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой