AVR-USB-MEGA16: управление устройством USB из GCC, Visual Studio CPP, VB6, Python, Delphi |
![]() |
Добавил(а) microsin |
Примеры работы с самодельным USB-устройством (макетная плата AVR-USB-MEGA16) из различных языков программирования - GCC, Microsoft Visual Studio C++ (.NET 2003), Visual Basic (VB6), Delphi. Устройство USB использует свободную библиотеку V-USB, программы для компьютера (ПО хоста) - свободную библиотеку libusb. Все примеры программ, которые здесь описаны, управляют светодиодом USB-устройства вот на этой макетной плате: Назначение папок архива с примерами (см. Ссылки [1]): circuits\ hid-custom-rq\commandline\ hid-custom-rq\firmware\ hid-custom-rq\firmware-bin-all\ hid-custom-rq\set-led-gui\ hid-custom-rq\set-led-gui-VB6\ hid-custom-rq\usbhidioc\ libusb\ src-libusbvb0.dll\ usbdrv\ 111015 UPD: Иван Забурдаев написал замечательную программу на Delphi, которая может читать состояние всех портов P1..P22 макетной платы AVR-USB-MEGA16, а также управлять их логическими уровнями. Программа использует возможности firmware для класса-обертки Сергея Кухтецкого (см. ссылку [6]). 130303 UPD: еще один отличный пример [7] работы с USB HID на Delphi7. Работает на основе библиотеки JEDI Visual Component Library (JVCL). [Решение возможных проблем] Здесь описаны некоторые типичные проблемы, которые возникают при использовании прошивки Сергея Кухтецкого. Решение других проблем см. в статье AVR-USB-MEGA16, V-USB, FAQ: переписка по вопросам программирования. 1. Записал в платку прошивку Сергея Кухтецкого с помощью загрузчика USB и программы Khazama, но платка не определяется как устройство USB. Если снова установить перемычку для активации загрузчика USB, то платка определяется, и загорается светодиод. В чем проблема? Ответ: платка у Вас исправна, но Вы записали в неё не ту прошивку. Например, прошивка соответствует другой частоте кварца, не той что используется на Вашей макетной плате AVR-USB-MEGA16. Прошейте HEX-файл прошивки Сергея Кухтецкого, рассчитанный на нужную частоту кварца, который стоит у Вас. Частоту кварца можно прочитать на его корпусе, например если на корпусе написано 12.000, то кварц на 12 МГц. 2. При подключении платки к компьютеру (в платку записана прошивка Сергея Кухтецкого) система Windows запрашивает драйвер. Что это за драйвер, где его брать? Ответ: это драйвер библиотеки LibUSB, скачайте его по ссылке [8]. 3. На моей системе Windows драйвер LibUSB не устанавливается, и о причине система не сообщает. Как быть? Ответ: такое нередко бывает на урезанных версиях Windows. Причина может быть в том, что не отключена система проверки цифровой подписи драйвера, либо пакет драйвера неполон (например, если Вы скачали драйвер по ссылке из статьи на сайте vanoid.ru, то там не хватает некоторых файлов, требуемых для 64-битных версий Windows). Поэтому, во-первых, перезагрузите систему, и при загрузке отключите проверку цифровой подписи драйвера (нажимайте при старте F8, и на черном экране выберите соответствующую нижнюю строчку загрузочного меню). Во-вторых, устанавливайте полную версию драйвера LibUSB (скачайте его по ссылке [8]). 4. Скомпилированное ПО хоста на C# не запускается с ошибкой. Что делать? Ответ: возможно не установлена библиотека .NET 3.5 от Microsoft. В этом случае могут выскакивать разные ошибки (наподобие The application failed to initialize properly 0xc0000135), но программа в любом случае не запустится. Чтобы решить проблему, скачайте и установите эту библиотеку (строка для поиска Microsoft .NET Framework 3.5 site:microsoft.com). Инсталлятор для библиотеки можете скачать по ссылке [8] (инсталлятор требует подключения к интернет, так как он закачивает недостающие модули). [Ссылки] 1. 101029howto-use-libusb.zip. |