Форум

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

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

В сети

Пользователей: 270
Из них просматривают:
Аналоги: 72. Видео: 1. Даташиты: 41. Инструкции: 2. Магазин: 2. Новости: 39. Остальное: 9. Программы: 1. Производители: 2. Профиль пользователя: 9. Расчёты: 1. Теги: 1. Торрент: 2. Форум: 87. Чат: 1.
Участников: 3
Гостей: 267

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

Партнёры


Партнёры

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

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

Просмотр этой темы: 

 1 анонимных пользователей
Re: Создание гаджета собственными руками
Главный Технолог
Зарегистрирован:
10.01.2011 7:39
Из: Москва
Сообщений: 473
Не в сети
Это значит у них Integer - это 4 байта... Писец... Но когда ставлю Integer вместо Short у меня вылазит ошибка, что неверный размер входных данных...

Странно как-то всё

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



Re: Создание гаджета собственными руками
Главный Технолог
Зарегистрирован:
10.01.2011 7:39
Из: Москва
Сообщений: 473
Не в сети
Private Declare Function HID_OpenDevice_x86 Lib "HID_Lib_Plus.dll" Alias "HID_OpenDevice" _
(ByVal PID As Long, _
ByVal VID As Long, _
ByVal VersionNumber As Integer, _
ByVal Index As Integer) As Integer

Private Declare Function HID_OpenDevice_x86 Lib "HID_Lib_Plus.dll" Alias "HID_OpenDevice" _
(ByVal PID As Integer, _
ByVal VID As Integer, _
ByVal VersionNumber As Byte, _
ByVal Index As Byte) As Integer

Вот два объявления, которые правильно работают, даже не знаю как, но и при одном, и при другом реакция одинаковая - возвращается ПРАВИЛЬНЫЙ хэндл для обращения к устройству, посылки передаются и принимаются на отлично!

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



Re: Создание гаджета собственными руками
Главный Технолог
Зарегистрирован:
10.01.2011 7:39
Из: Москва
Сообщений: 473
Не в сети
И ответ можно в Integer, а можно и в Long запрашивать... И то и то работает... Наверное сделаю всё с максимальным объёмом переменных, чтобы случайно Overflow не вылезал...

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



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: Создание гаджета собственными руками
Главный Технолог
Зарегистрирован:
10.01.2011 7:39
Из: Москва
Сообщений: 473
Не в сети
proger:
Эта библиотека всегда ноль выдаёт по всем функциям... Я другую поставил - вроде всё ОК, только передать больше 1 байта не получается (за одну посылку), поэтому пришлось 2 старших бита занять на управление (если 00 - управление портом B, если 01 - АЦП...)

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



Re: Создание гаджета собственными руками
Главный Технолог
Зарегистрирован:
10.01.2011 7:39
Из: Москва
Сообщений: 473
Не в сети
Вот что получилось у меня, это на меге8 через HID...

Сори за дизайн, пока только функциональность важна...

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



gif  NE555_Cap.GIF (22.30 KB)
5253_503fbeca5d5de.gif 1005X397 px

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



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

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



Re: Создание гаджета собственными руками
Главный Технолог
Зарегистрирован:
10.01.2011 7:39
Из: Москва
Сообщений: 473
Не в сети
Вот часть, отвечающая за USB. Где что заменить, и на какое значение?

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


zip HID.zip Размер: 8.70 KB; Просмотры: 546

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



Re: Создание гаджета собственными руками
Главный Технолог
Зарегистрирован:
10.01.2011 7:39
Из: Москва
Сообщений: 473
Не в сети
Возможно надо как-то изменить
Цитата:

Data &H75 , &H08 ' Report_size(8)

Я пробовал ставить 16 (&H10) вместо 8, но ни один из размеров посылки нормально не проходил...

За отправку сообщения отвечает следующий код:
Цитата:

BufferV(1) = Value
HID_WriteDevice Handle, BufferV(0), 2

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



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; Просмотры: 532


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


Поиск по форуму


Расширенный поиск

Разное

Интересно

При замене электролитических конденсаторов, кроме соблюдения полярности, не следует значительно превышать допустимое рабочее напряжение.
Например, если конденсатор рассчитан на рабочее напряжение 16 В, то при установке нового той же емкости, но рассчитанного на напряжение 300 В после непродолжительной эксплуатации произойдет его расформовка, и емкость его значительно уменьшится.