Ключевое ?лово

vk

Продолжаем опыты над дешевым программатором USBasp,который можно научить работать как другое устройство.

Для программирования платы USBasp необходим другой программатор USBasp или Arduino в режиме программатора, но если мы хотим быстро сменить назначение платы на другое без дополнительных внешних программаторов ?

Тут придет на помощь проект USBaspLoader ,который позволяет программировать микроконтроллеры AVR без программатора,залив один раз специальный загрузчик.Для программирования необходимо поставить перемычку,которая подключена на свободный пин м/к. 

К сожаленью существует и недостаток USB загрузчика - он занимает 2 кб flash памяти Вашего м/к .Получается ,что в нашем случае остается свободно для самой программы всего 6144 байт,но этого может быть достаточно для большинства проектов.

 

Установка загрузчика

Для начала скачаем прошивку-загрузчик,который адаптирован под схему USBasp и выберем через что будем его прошивать:

Команда через Arduino:

avrdude -c avrisp -P COM1 -b 19200 -p m8 -U flash:w:boot_m8.hex -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m -U lock:w:0x2f:m

Команда через другую USBasp:

avrdude -c usbasp -p m8 -U flash:w:boot_m8.hex -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m -U lock:w:0x2f:m

Файлы avrdude,avrdude.conf и boot_m8.hex должны находится в одной папке,если в команде не указан конкретный путь.Программку avrdude можно найти по адресу в Arduino IDE - путь_к_папке_ардуины_/hardware/tools/

Теперь можно загружать прошивки без дополнительных программаторов.

Прошить загрузчик можно и через Arduino IDE,если файл загрузчика положить в папку hardware/arduino/bootloaders/atmega8/ .Для прошивки необходимо выбрать пункт ATmega8 USB 12 MHz в меню плат(см ниже по тексту как его добавить) и выбрать опцию в меню сервис "записать загрузчик".

 

Переключение в режим программирования

 Для того,чтобы "залить" прошивку в устройство с установленным USBaspLoader необходимо установить перемычку JP3 ,которая переводит устройство в режим программирования и сбросить устройство ,замкнув контакт ближний к перемычке выбора питания(JP1) на перемычке JP2 на землю.

пример подключения кнопки сбросСлева на фото показан пример как подключается кнопка для сброса микроконтроллера с установленной перемычкой JP3 .Кнопка и разъем взяты из старого системно блока.

 

 

 

Теперь устройство видно в системе как USBasp и с ним можно работать как обычным программатором USBasp.

 

Прошивка микропрограмм

Прошивка программы ,используя USBaspLoader ничем не отличается от обычной прошивки микроконтроллеров через USBasp:

avrdude -c usbasp -p m8 -U flash:w:Имя_файла_для прошивки.hex

Обращаю внимание,что чтение и установка фьюзов не доступна - avrdude будет выводить нули.

 

Используем USBasp как макетную плату в Arduino IDE

Для бывшего программатора USBasp можно  писать скетчи в Arduino IDE ,но к сожалению,без пайки нам будут доступны только 6 выводов микроконтроллера и 2 светодиода.

Добавляем поддержку Atmega8+USB ,дописав секцию в файл boards.txt:

atmega8usb.name=ATmega8 USB 12 MHz
atmega8usb.upload.protocol=arduino
atmega8usb.upload.maximum_size=6144
atmega8usb.upload.speed=19200
atmega8usb.bootloader.low_fuses=0x9f
atmega8usb.bootloader.high_fuses=0xc0
atmega8usb.bootloader.path=atmega8
atmega8usb.bootloader.file=boot_m8.hex
atmega8usb.bootloader.unlock_bits=0x3F
atmega8usb.bootloader.lock_bits=0x2F
atmega8usb.build.mcu=atmega8
atmega8usb.build.f_cpu=12000000L
atmega8usb.build.core=arduino
atmega8usb.build.variant=standard

Теперь в меню выбора плат появился пункт ATmega8 USB 12 MHz и скетчи сейчас можно заливать через меню файл - "прошить с помощью программатора".Не забываем в меню "программатор" выбрать USBasp.

Доступные цифровые выводы микроконтроллера на разъеме:

0,1,10(PWM),11(PWM),12,13. Можно воспользоватся интерфейсом SPI,например для подключения Ethernet ENC28J60.

А так же доступны цифровые выводы 14 и 15 для управления светодиодами на плате.

 Можно задействовать и интерфейс USB ,используя библиотеку для Arduino V-USB.

 

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.