В статье приведено краткое описание, как работать с платой USnooBie.
[Загрузка кода]
На видео показан процесс установки напряжения питания с помощью перемычки, и активизация бутлоадера для загрузки программы пользователя в память микроконтроллера.
Для запуска бутлоадера удерживайте кнопку активизации бутлоадера BOOT, и затем нажмите и отпустите кнопку сброса RST, и затем отпустите удерживаемую кнопку BOOT. Бутлоадер запустит USB-устройство, которое компьютер увидит как программатор USBasp, так что теперь Вы можете использовать его для загрузки кода основной программы через утилиту AVRDUDE.
Обычная команда AVRDUDE выглядит наподобие следующей, она загружает hex-файл в память flash микроконтроллера:
Бутлоадер не поддерживает работу с фьюзами (перемычки, 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 имеется специальная перемычка, которую можно поставить в одно из двух соответствующих положений (см. фото). Положения перемычки снабжены пояснениями в маркировке на нижней стороне печатной платы.
[Важные замечания по использованию портов]
Вам нужно использовать ножки портов PORTD2 или PORTD7? К сожалению, эти ножки заняты сигналами шины USB (см. принципиальную схему USnooBie [3]). PORTD2 подключен к USB D+ и PORTD7 подключен к USB D- (убедитесь, что Ваш файл usbconfig.h имеет соответствующие установки, если Вы используете библиотеку V-USB для создания USB-устройств). Если Вы подключите что-нибудь постороннее на эти порты, то это может повлиять на работу шины USB (и может перестать работать бутлоадер).
[С чего начать]
Чтобы начать делать свои устройства USB, посетите [1]. Как использовать USnooBie в среде программирования Arduino, см. [4].