
Программирование микроконтроллера в среде Arduino - это несомненно удобно. Огромное количество готовых библиотек подкупает.
Но небольшой нюанс немного портит картину - даже плата Arduino Nano, при довольно скромных размерах, все таки большеватая.
Возьмем, к примеру, такое устройство как градусник. По идее всего 4 компонента - сам МК, ds18b20, резистор 5к и дисплей.
Вот руки прям и чешутся запихать готовое устройство в минимальный объем. Как быть? Выпаять из платы mega328? Как-то жалко.
А куда потом саму Nano?
Можно, конечно, прошить "голый" чип через тот же USBAsp, да только Arduino IDE расчитывает на то, что тактируется он от
внешнего кварца 16 МГц. И в случае, если хочется обойтись только внутренним на 8, то все тайминги летят лесом.
У меня получилось обмануть систему таким образом:
В файле boards.txt (лежит в Program Files\Arduino\hardware\arduino\avr\) взял секцию, в которой описана Arduino Nano и на ее
основе создал свою, заменив название и частоту CPU. Получилась плата Arduino Naked с тактовой частотой 8 MHz :)
##############################################################
naked.name=Arduino Naked
naked.upload.tool=avrdude
naked.upload.protocol=arduino
naked.bootloader.tool=avrdude
naked.bootloader.unlock_bits=0x3F
naked.bootloader.lock_bits=0x0F
naked.build.f_cpu=8000000L
naked.build.board=AVR_NANO
naked.build.core=arduino
naked.build.variant=eightanaloginputs
## Arduino Naked w/ ATmega328P
## --------------------------
naked.menu.cpu.atmega328=ATmega328P
naked.menu.cpu.atmega328.upload.maximum_size=30720
naked.menu.cpu.atmega328.upload.maximum_data_size=2048
naked.menu.cpu.atmega328.upload.speed=115200
naked.menu.cpu.atmega328.bootloader.low_fuses=0xFF
naked.menu.cpu.atmega328.bootloader.high_fuses=0xDA
naked.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
naked.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex
naked.menu.cpu.atmega328.build.mcu=atmega328p
После этого в Arduino IDE выбираем плату Arduino Naked, в качестве программатора - USBAsp. Теперь пишем скетч, как для обычной Nano, за одним исключением -
залить прошивку в МК надо через Скетч -> Загрузить через программатор.