USnooBie: руководство по использованию Печать
Добавил(а) microsin   

В статье приведено краткое описание, как работать с платой USnooBie.

[Загрузка кода]

На видео показан процесс установки напряжения питания с помощью перемычки, и активизация бутлоадера для загрузки программы пользователя в память микроконтроллера.

Для запуска бутлоадера удерживайте кнопку активизации бутлоадера BOOT, и затем нажмите и отпустите кнопку сброса RST, и затем отпустите удерживаемую кнопку BOOT. Бутлоадер запустит USB-устройство, которое компьютер увидит как программатор USBasp, так что теперь Вы можете использовать его для загрузки кода основной программы через утилиту AVRDUDE.

Обычная команда AVRDUDE выглядит наподобие следующей, она загружает hex-файл в память flash микроконтроллера:

avrdude -c usbasp -p atmega328p -U flash:w:filename.hex

Бутлоадер не поддерживает работу с фьюзами (перемычки, fuse-bits), что предотвращает "повреждение" бутлоадера.

Внимание: если увидите ошибку наподобие "avrdude: error: usbasp_transmit: usb_control_msg: sending control message failed, win error: A device attached to the system is not functioning.", то игнорируйте её. Такая ошибка происходит всегда, когда бутлоадер завершает свою работу и делает безусловный переход на загруженный код программы пользователя (по адресу 0). При этом он не подтверждает команду которая поступила перед переходом, переход происходит немедленно, из-за чего и происходит ошибка. Нельзя исправить это поведение, чтобы перед переходом посылалось подтверждение, так как имеются ограничения на размер кода бутлоадера - он может не поместиться в специально отведенную для него область памяти bootloader memory section.

Если у Вас нет опыта работы с AVRDUDE, см. собрание учебников по AVR [1].

Для работы бутлоадера USBaspLoader нужна установка драйвера USBasp, который Вы можете найти и загрузить по ссылке [2].

[Переключение напряжения на шине питания]

Для переключения напряжения питания USnooBie между уровнями 5V или 3.3V имеется специальная перемычка, которую можно поставить в одно из двух соответствующих положений (см. фото). Положения перемычки снабжены пояснениями в маркировке на нижней стороне печатной платы.

USnooBie-voltage-selection-jumper

[Важные замечания по использованию портов]

Вам нужно использовать ножки портов PORTD2 или PORTD7? К сожалению, эти ножки заняты сигналами шины USB (см. принципиальную схему USnooBie [3]). PORTD2 подключен к USB D+ и PORTD7 подключен к USB D- (убедитесь, что Ваш файл usbconfig.h имеет соответствующие установки, если Вы используете библиотеку V-USB для создания USB-устройств). Если Вы подключите что-нибудь постороннее на эти порты, то это может повлиять на работу шины USB (и может перестать работать бутлоадер).

[С чего начать]

Чтобы начать делать свои устройства USB, посетите [1]. Как использовать USnooBie в среде программирования Arduino, см. [4].

[Ссылки]

1. Quickstart Tutorial for ATMEL AVR Microcontrollers site:imakeprojects.com - пошаговое руководство для новичка по программированию AVR (быстрый старт).
2. USBasp - USB programmer for Atmel AVR controllers site:fischl.de
3. USnooBie downloads: загрузка схемы, кода, библиотек, прошивок и утилит.
4. USnooBie: использование в среде программирования Arduino.