Форум

Радиолюбительский форум.

Если у Вас возникли вопросы, задавайте их на форуме.

В сети

Пользователей: 114
Из них просматривают:
Аналоги: 31. Даташиты: 34. Инструкции: 3. Новости: 8. Обзор: 1. Остальное: 5. Производители: 5. Профиль пользователя: 4. Расчёты: 1. Теги: 1. Форум: 21.
Участников: 2
Гостей: 112

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.

1 2 3 4 5 6 7


Re: Создание гаджета собственными руками
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
Указана в самой же библиотеке.
Ее нужно открыть в любом текстовом редакторе и в первых строках будет информация об версии.



Re: Создание гаджета собственными руками
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
Вот HID дескриптор (файл USB_Descriptor.bas).
' Дескриптор сообщения (репорта), описывающий тип HID устройства и его характеристики
_usb_hid_reportdescriptor:
Data Size_hid_reportdescriptor                              
Тип устройстваВ данном случаеэто нестандартное HID устройство
Data 
&H06 , &H00 , &HFF                                     ' Usage_page(vendor Defined Page 1)
Data &H09 , &H01                                            ' 
Usage(vendor Usage 1)
Data &HA1 , &H02                                            ' Collection(logical)
Описание конечной точкитипа Input
Data 
&H09 , &H01                                            ' Usage(pointer)
Data &H15 , &H00                                            ' 
Logical_minimum(0)
Data &H25 , &HFF                                            ' Logical_maximum(255)
Data &H75 , &H08                                            ' 
Report_size(8)
Data &H95 , &H01                                            ' Report_count(1)
Data &H81 , &H02                                            ' 
Input(data , Var , Abs)
' Описание конечной точки, типа Output
Data &H09 , &H01                                            ' 
Usage(pointer)
Data &H15 , &H00                                            ' Logical_minimum(0)
Data &H26 , &HFF , 0                                        ' 
Logical_maximum(255)
Data &H75 , &H08                                            ' Report_size(8)
Data &H95 , &H01                                            ' 
Report_count(1)
Data &H91 , &H02                                            ' Output(data , Var , Abs)

Data &HC0                                                   ' 
End_collection

При текущей конфигурации, можно отправить компу 1 байт за посылку и принять от него тоже один байт за посылку.
Data &H95 , &H01                                            ' Report_count(1)
Чтобы принимать по 8 байт, нужно изменить &H01 на &H08.

Конечная точка "Input" отвечает за прием данных от компа, а Output, за передачу данных в комп.

Библиотеку "swusb.LBX" нужно обновить до версии 1.6 (прикрепил ее к посту).

Прикреплённый файл:


zip swusb.zip Размер: 3.17 KB; Просмотры: 518


Отредактировано пользователем proger 31.08.2012 12:35:17
Отредактировано пользователем proger 31.08.2012 12:35:51


Re: Создание гаджета собственными руками
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
Цитата:

78L05 пишет:
только передать больше 1 байта не получается (за одну посылку)
При программной эмуляции (низкоскоростной девайс) можно передавать до 8 байт в посылке, каждые 10 миллисекунд.
Почему передается только один байт за раз, сложно сказать не видя кода, но могу предположить что это прописано в HID дескрипторе и изменив последний, можно увеличить размер посылки до 8 байт.



Re: Создание гаджета собственными руками
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
В архиве с библиотекой есть описание функций и там указано сколько байт занимает каждый аргумент. Цитата:
Снитаксис

Handle = HID_OpenDevice(PID, VID, VersionNumber, Index)

Описание

PID – (2 байта) Vendor ID устройства.
VID - (2 байта) Product ID устройства.
VersionNumber - (2 байта) номер версии устройства. Если он не известен, то указываем -1 или 65535
Index - (2 байта) индекс устройства если подключены несколько с одинаковыми идентификаторами. По умолчанию, индекс равен нулю.

Получение доступа к USB HID устройству.
В случае успеха, функция вернёт хендл (идентификатор устройства) - число не равное нулю,
для последующей работы с ним.
При возникновении ошибки, скажем, если устройство не найдено, функция вернёт ноль.
Для разрыва связи с HID устройством, следует использовать функцию HID_Lib_CloseDevice



Re: Создание гаджета собственными руками
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
В VB.NET переменная типа Short, занимает два байта.
http://www.codenet.ru/progr/vbasic/bit/Types.php



Re: Создание гаджета собственными руками
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
Какие идентификаторы девайса (PID, VID, VN) и как они передаются библиотеке? Покажите код.
И если есть возможность, то так же покажите код программы, которая верно определяет устройство.

Я думаю что именно в неправильно указанных идентификаторах вся проблема.



Re: Создание гаджета собственными руками
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
Если ни одна прога не находит девайс, то может проблема с девайсом, а не с прогами?

С какой DLL проблема?
То что платка на Mega8A это ни о чем не говорит.
Пишите четче и подробнее, иначе вам никто не сможет помочь. Где схема, прошивка с исходником, прога для компа с ее исходником?



Re: Создание гаджета собственными руками
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
Попробуй собрать эту конструкцию. http://purebasic.mybb.ru/viewtopic.php?id=211
Как раз можно зажигать и гасить светодиод по командам с компьютера, передаваемым по USB.

78L05, что за девайс? Нет ли ошибок в PC-проге?



Re: Ошибки в UART
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
Может контроллер непосредственно к USB подключить?
Пример. http://bascom.at.ua/publ/rc5_dlja_usb/1-1-0-37



Re: Ошибки в UART
Старший сотрудник
Зарегистрирован:
07.01.2010 15:24
Сообщений: 124
Не в сети
Вы используйте программный UART в месте с RC5 и еще удивляетесь что работает с ошибками. Смотрите, если при передаче или приеме данных программного UART произойдет любое прерывание, то есть вероятность того, что задержки будут выполнены с погрешностями и возникнет глюк работы программного UART'а. В вашей программе есть прерывания от RC5.
Нужно использовать аппаратный модуль UART http://avrhelp.mcselec.com/config_com1.htm




1 2 3 4 5 6 7




Разное

Интересно

Диэлектрические и диамагнитные отвертки можно выпилить из старых стеклотекстолитовых плат.