← Старый блог

Bootloader для MiniBot'а

· minibot, bootloader, mercurial

Сделал бутлоадер для минибота.

За основу взял AVRPROG compatible bootloader for ATMEL ATmega Controllers
версию 0.83 от 2008-04-12

Исходные коды и прошивка настроенного загрузчика находится в в моем меркуриал-репозитории
Ссылка на скачивание прошивки: ревизия 1:6780924e1d63 (лучше зайдите в репозиторий и скачайте main.hex)

Чтобы получить последнюю версию исходников:

hg clone http://hg.vehq.ru/minibot-bootloader/

Параметры загрузчика:

Как работает загрузчик?

После запуска МК ждет в течении одной секунды символ 'S'
Если дожидается, то переходит в режим программирования, протокол совместим с протоколом AVR109/AVR911
Если не дожидается, то переходит по адресу 0000h т.е. на адрес по которому в режиме без загрузчика находится вектор RESET, т.е. ваша программа и не заметит наличие бутлоадера, разве что вы потеряете 1 КБ флеша.

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

Сначало нужно будет прошить микроконтроллер МиниБота любым доступным вам способом. Нужно будет установить fuse-биты на 8 МГц от внутреннего RC-генератора, размер области загрузчика 1024 байт, включить загрузчик.

Как пользоваться?

Пользоваться можно различными программаторами, поддерживающими AVR109/AVR911, я использую avrdude (есть в комплекте с WinAVR)

Чтобы загрузить новую прошивку нужно выполнить несколько простых действий:

  1. Подключить кабель к ком-порту (есть варианты)
  2. Подготовить команду (можно включить в Makefile и не мучатся)
  3. Включить МиниБота
  4. Успеть за секунду нажать Enter :)

Вот пример загрузки тестовой прошивки из комплекта MiniBot-Lib:

cd /path/to/minibot-lib/
scons
avrdude -p m32 -P /dev/ttyUSB0 -b 9600 -c avr109 -u -U flash:w:bin/ledtest.hex