Ранее я писал о прошивке контроллеров ATMEGA328 при помощи программаторов
- Самодельный Arduino из контроллера ATMEGA328P-PU
- Перезапись загрузчика в Arduino Pro Mini
- Ардуино в качестве программаторов AVR контроллеров
Настала пора разобраться, а заодно привести в порядок файл BOARD.TXT
Описание данного файла довольно скудное, нашел на странице WiKi Arduino IDE. О новых возможностях формата данного файла навела на мысль возможность настройки тех же Arduino Pro Mini с дополнительным меню. Вот и решил сделать на подобие этого описание своих контроллеров.
Что требуется
Описать контроллеры Ардуино с загрузчиком OPTIBOOT, из поставки Arduino IDE, работающие с различными кварцевыми резонаторами и имеющие разные фьюз-биты, в частности, у вех из них отключен контроль входного напряжения BOD для работы на низких напряжениях питания.
- Контроллер Atmega328 с внешним кварцем 16МГц
- Контроллер Atmega328 с внешним кварцем 8МГц
- Контроллер Atmega328 с внутренним резонатором 8МГц
Чтобы не перегружать список контроллеров в Arduino IDE желательно вынести различающиеся параметры в подменю
Настройка BOARDS.TXT
Нахожу файл BOARDS.TXT. У меня он установился в c:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt и открываю в текстовом редакторе.
Чтобы Arduino IDE корректно поддерживал русские буквы, редактор должен поддерживать кодировку UTF-8 в которой работает среда программирования. Я пользуюсь редактором NOTEPAD++ с подсветкой синтаксиса и кучи возможностей.
Для начала, я создам дополнительное меню «Резонатор», отличающее типы моих контроллеров. Для этого в начале файла прописываю:
1 <span style="color: #008000;">menu.freq=Резонатор</span>
Затем создаю новый контроллер с меткой ATMEGA328. В этой секции прописываю все параметры, общие для всех моих вариантов
1234 <span style="color: #008000;">##############################################################</span><span style="color: #008000;"># Atmega328 c Optiboot и отключенным контролем Vcc</span><span style="color: #008000;">##############################################################</span><span style="color: #008000;">atmega328.name=Atmega328, OPTIBOOT, BOD disable</span>
12345 <span style="color: #008000;">atmega328.upload.tool=avrdude</span><span style="color: #008000;">atmega328.upload.protocol=arduino</span><span style="color: #008000;">atmega328.upload.protocol=arduino</span><span style="color: #008000;">atmega328.upload.maximum_size=32256</span><span style="color: #008000;">atmega328.upload.speed=57600</span>
12345 <span style="color: #008000;">atmega328.bootloader.tool=avrdude</span><span style="color: #008000;">atmega328.bootloader.unlock_bits=0x3F</span><span style="color: #008000;">atmega328.bootloader.lock_bits=0x0F</span><span style="color: #008000;">atmega328.bootloader.path=optiboot</span><span style="color: #008000;">atmega328.bootloader.file=optiboot\optiboot_atmega328.hex</span>
1234 <span style="color: #008000;">atmega328.build.mcu=atmega328p</span><span style="color: #008000;">atmega328.build.core=arduino</span><span style="color: #008000;">atmega328.build.variant=standard</span>
Затем описываю три секции подменю, которые описывают фьюз-биты и частоту работы контроллера
123456 <span style="color: #008000;"># ATMEGA328 внешний кварц на 16МГц, OPTIBOOT, отключен контроль питания</span><span style="color: #008000;">atmega328.menu.freq.16MHz_ext=Atmega328 (3.3V, 16 MHz внешний) </span><span style="color: #008000;">atmega328.menu.freq.16MHz_ext.bootloader.low_fuses=0xff</span><span style="color: #008000;">atmega328.menu.freq.16MHz_ext.bootloader.high_fuses=0xde</span><span style="color: #008000;">atmega328.menu.freq.16MHz_ext.bootloader.extended_fuses=0x07</span><span style="color: #008000;">atmega328.menu.freq.16MHz_ext.build.f_cpu=16000000L</span>
123456 <span style="color: #008000;"># ATMEGA328 внешний кварц на 8МГц, OPTIBOOT, отключен контроль питания</span><span style="color: #008000;">atmega328.menu.freq.8MHz_ext=Atmega328 (3.3V, 8 MHz внешний) </span><span style="color: #008000;">atmega328.menu.freq.8MHz_ext.bootloader.low_fuses=0xff</span><span style="color: #008000;">atmega328.menu.freq.8MHz_ext.bootloader.high_fuses=0xde</span><span style="color: #008000;">atmega328.menu.freq.8MHz_ext.bootloader.extended_fuses=0x07</span><span style="color: #008000;">atmega328.menu.freq.8MHz_ext.build.f_cpu=8000000L</span>
1234567 <span style="color: #008000;"># ATMEGA328 внутренний кварц на 8МГц, OPTIBOOT, отключен контроль питания</span><span style="color: #008000;">atmega328.menu.freq.8MHz_int=Atmega328 (3.3V, 8 MHz внутренний) </span><span style="color: #008000;">atmega328.menu.freq.8MHz_int.bootloader.low_fuses=0xC2</span><span style="color: #008000;">atmega328.menu.freq.8MHz_int.bootloader.high_fuses=0xDE</span><span style="color: #008000;">atmega328.menu.freq.8MHz_int.bootloader.extended_fuses=0x07</span><span style="color: #008000;">atmega328.menu.freq.8MHz_int.build.f_cpu=8000000L</span>
В результате у меня появился в списке контроллеров «Atmega328, OPTIBOOT, BOD disable», при выборе которого появляется подменю «Резонатор», с выбором моих разновидностей.
Теперь вы тоже можете настроить BOARDS.TXT под себя
Визуальный редактор BOARDS.TXT
Пока читал информацию по BOARDS.TXT в интернете, наткнулся на интересную бесплатную программку — «BOARDS.TXT Editor», позволяющую визуально редактировать указанный файл. Данная программа позволяет редактировать любой контроллер, создавать подменю типов контроллеров.
доброго времени суток,
добавить конфиги в файл Arduino IDE, залил загрузчик через usbasp все окей, но вот шиться через uart не хочет. Пробовал и на cp2102 и на ch340 с подключенным DTR через конденсатор, но вот не загружает и все IDE при это говорит что загрузка но эффекта нет ни какого. Если залить загрузчик Nano тогда скетчи загружаются (это при 5 вольт и внешнем кварце на 16Мгц). а мне нужен загрузчик для питания от 2 мизинчиковых батареек. Не можите подсказать в чем дело?
А микроконтроллер перед загрузкой вы сбрасываете?
Нет. Там один вывод программатора на RESET контроллера заведен, так что если RESET фьюзами не отключен, то все автоматом прошивается
может у вас для мега 8 завалялся текст-прошу
Давно Меги8 не прошивал
Здесь есть описание
http://homes-smart.ru/index.php/oborudovanie/arduino/dobavlyaem-podderzhku-ne-rodnykh-m-k-v-sredu-arduino-ide
Central IT
Ошибка 500