Страница 2 из 3

Re: usb для чайника.

Добавлено: Сб июл 02, 2011 21:50:24
YS
А как же функция LoadLibrary чтобы загрузить ftd2xx.dll, а как же функция FreeLibrary, для освобождения dll?
ftd2xx можно прилинковать статически. Use ftd2xx.lib & ftd2xx.h, Luke!
"левые" DLL не нужны.
А HID_LIB не "левая"? :)))

Re: usb для чайника.

Добавлено: Сб июл 02, 2011 22:03:06
YS
Пример:

Код: Выделить всё

#include "ftd2xx.h"

...

FT_STATUS fs;
FT_HANDLE h;

//открываем соединение
fs=FT_OpenEx("[тут серийный номер нашего девайса]",FT_OPEN_BY_SERIAL_NUMBER,&h);

//Либо можно просто открыть первое устройство на шине:
//fs=FT_Open(0,&h);

if (fs!=FT_OK)
  printf("Couldn't open specified device.\n");
else
{
  //Устанавливаем "1" на DTR
  FT_SetDtr(h);
  //Или "0"
  //FT_ClrDtr(h);
  FT_Close(h);
}
Все. А к DTR мы можем подключить все что угодно.

Re: usb для чайника.

Добавлено: Сб июл 02, 2011 22:52:35
Мурик
YS писал(а):А HID_LIB не "левая"?
Это не DLL и ее за прогой тащить не надо.

Re: usb для чайника.

Добавлено: Сб июл 02, 2011 23:02:37
YS
Еще раз.

Существует ftd2xx.lib. Она линкуется статически.

Re: usb для чайника.

Добавлено: Пн июл 11, 2011 00:26:22
Wladimir_TS
Вопролс у меня есть теоретический - ковыряюсь с SWUSB.LBX для BASCOM

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

Re: usb для чайника.

Добавлено: Пн июл 11, 2011 00:35:36
Satyr
Wladimir_TS писал(а):Внешнюю память необходимого объема для программы подключу. Вот организовать на ней файловую систему сложнее - ну наверное что-то типа FAT12 можно.
А ее и не надо тебе организовывать. Придется реализовать набор комманд SCSI.

Re: usb для чайника.

Добавлено: Пн июл 11, 2011 00:50:22
Wladimir_TS
Тоесть простыми способами это не реалисуется ? Просто у Миландра есть реализации подобных устройств на много более убогом их клоне какого-то PIC17не помню. Иходники они зажимают - гады. Вот и вопрос - насколь это все реально. Особ учитывая что у миландровского контролера ОЗУ нет, только в алитернативных наборах регистров можно что-то хранить. Контролер USB там аппаратный, но урезанный и думаю библиотека SWUSB.LBX его впролне заменит. Вопрос только в реализации. Правда отдельный HID они не пользуют, а пишут в определенные сектора "масс сторадж". (Если им можно верить).

Re: usb для чайника.

Добавлено: Пн июл 11, 2011 09:26:31
Satyr
Да нет вобщем то никаких проблем. кроме софтового УСБ low speed 1.1, которому кроме единственного софтового ендпойнта ничего не положено -))
Если такая страсть к AVRам - бери at90usb и делай устройство хоть 3 в 1, для некоторых классов ендпойнтов хватит.

А в 1886ВЕ4У настоящий нормальный USB fullspeed контроллер:
"Универсальный аппаратно реализованный контроллер и аналоговый приемопередатчик интерфейса USB 1.1, с четырьмя пользовательскими оконечными точками и со скоростью передачи до 12 Мбит/с."

Совершенно законно на нем делается HID+Mass storage, отвечающий всем стандартам.

SWUSB.LBX стоит очень далеко внизу от этого.

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 07:26:23
Wladimir_TS
Разве по спецификации USB1.1 не 6 (5 свободных) кончных точек полагается ?

Насколь я ковырялся с этой библиотекой - вроде она их реализует, хотя может плохо ковырялся - сейчас одну пользую конечную точку.

AT90USB в наших деревнях достать проблематично, а с интернет-магазинами пока связываться не хочется (много печального опыта имею когда деньги пропадали или фактическая стоимость в 4-5 раз больше заявленной получалась).

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 10:00:03
Satyr
Wladimir_TS писал(а):Разве по спецификации USB1.1 не 6 (5 свободных) кончных точек полагается ?
Для lowspeed девайса полагается только контрол-эндпойнт и всё.
AT90USB в наших деревнях достать проблематично, а с интернет-магазинами пока связываться не хочется (много печального опыта имею когда деньги пропадали или фактическая стоимость в 4-5 раз больше заявленной получалась).
Оно есть даже у местного назойливого фарцовщика за смехотворные деньги. купи у него.
Подожди, 10 минут и он тут отпишется -)))

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 20:25:02
Wladimir_TS
А разве обычному юзеру этак конечная точка вообще доступна ? Она-же для процесса идентификации устройства ? Или это только у 1886 ? Или это для всех HID есть только 1 конечная точка.

ЗЫЖ через эту библиотеку данные гоняются в двух направлениях, а вроде как каждая конечная точка симплексна и направление выбирается в процессе инициализации.

ЗЫЖ - USB занимаюсь 2 месяца (если не считать - как лет 5 назад пытался IGORPLUG подружить с USB драйвером OSR 2.1 :))) и кривым аппаратным контролером из i430TX )- в голове каша, учитываю, что программы под PC я не писал до того и о языках высокго уровня знал только, что они есть, писал только на assembler

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 20:36:15
Satyr
Wladimir_TS писал(а):А разве обычному юзеру этак конечная точка вообще доступна ? Она-же для процесса идентификации устройства ? Или это только у 1886 ?
Доступна. По ней идет обмен стандартного вида запросами (шапка+данные), но кроме различных конфигурационных запросов возможны и девайзо-специфичные запросы.
Всякие приблуды на основе HIDа именно по контрол-эндпойнту и общаются.
ЗЫЖ. У нас в городе микроконтроллеры купить вообще нельзя :-) или точнее :cry:
В Калуге? И чего, почта, служба доставки не существуют ?
Я живу в 8км от Москвы, работаю в Москве и то все заказываю исключительно по почте или курьерскими службами хотя бы для удобства и экономии времени.
Так что особо разницы между твоим и моим городом не наблюдаю
да когда в Москву езжу - кое что прикупаю.
И это, надо полагать, не раз в 5 лет происходит ? -))

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 21:26:03
Wladimir_TS
Получается что для HID устройств малой скорости конечная точка только одна и обмен по ней 2х направленный ?

ЗЫЖ более-менее разобрался с Pure Basic для Win - там пользую рекомендованную библиотеку HID_Lib. Но в переспективе надо будет работать с 1886 - а есть-ли для оного компилятора библиотеки, поддерживающие высокоскоростные устройства (опять-же хочу прикидываться HID (уже пол дня :) ) что-бы не ставить драйверов. Да и PB кросплатформенный и мультисистемный компилятор - вроде как можно и под *nix компилировать программу. Есть-ли для него библиотеки для высокоскоростных USB, а то несколь я изучил HID_Lib (по хелпу) она конечные точки выбирать не может. А то как мне кажется Mass Storage код я ниосилю.

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 21:59:07
Satyr
Wladimir_TS писал(а):Получается что для HID устройств малой скорости конечная точка только одна и обмен по ней 2х направленный ?
Примерно так.
HID устройства еще могут иметь interrupt endpoint.
поддерживающие высокоскоростные устройства (опять-же хочу прикидываться HID (уже пол дня :) ) что-бы не ставить драйверов.
Тут какбе есть проблема. Чтобы и HID, и высокоскоростное.
В low и full speed USB передается 1000 фреймов в секунду, но для контролэндпойнта макс. размер фрейма для low speed 8 байт и 64 байта для fullspeed

итого, по HIDу максимум что можно передать это 8kb/s для lowspeed (тот же v-usb) и 64kb/s для fullspeed.
так что пользуясь HID ограничиваешь себя этими скоростями.

Если лень писать драйвера - прикинься классом CDC Serial port. Драйвер стандартный, реальную скорость в один конец у меня получилось достичь около 800kb/s

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 22:02:42
Satyr
Wladimir_TS писал(а):А то как мне кажется Mass Storage код я ниосилю.
В массторадже сама усбшная часть примитивная, а что напряжно - так эмуляция SCSI командсета. Хотя, там достаточно реализовать только обязательные комманды, а их всего с десяток для блочного устройства.
Вобщем класс MSC - это , говоря на пальцах, типа подключения по USB к SCSI устройству.

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 22:16:42
Мурик
Satyr писал(а):Примерно так.HID устройства еще могут иметь interrupt endpoint.
Вот, низкоскоростному HID положено 1 control-endpoint и 2 interrupt-endpoint, т. е. может быть до 3 конечных точек.
Wladimir_TS писал(а):Но в переспективе надо будет работать с 1886
Это у нас что?
Если под винду, то есть порт в виде DLL с либы HID_Lib.
Wladimir_TS писал(а):поддерживающие высокоскоростные устройства
HID'ы тоже могут быть высокоскоростными, но для этого надо МК с аппаратным модулем USB, т. к. программно не хватит ресурсов на расшифровку, по крайней мере у 8-ми битных AVR'ов.
Wladimir_TS писал(а):Есть-ли для него библиотеки для высокоскоростных USB
Это не от библиотеки зависит, а от железа.
Вот пример работы с высокоскоростным HID девайсом.
Wladimir_TS писал(а):она конечные точки выбирать не может
Они конфигурируются в железе, т. е. контроллере.
С ними также можно работать, если они описаны конфиге.

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 22:31:19
Wladimir_TS
Satyr писал(а): HID устройства еще могут иметь interrupt endpoint.
Это вроде RTS и DTR ?
поддерживающие высокоскоростные устройства (опять-же хочу прикидываться HID (уже пол дня :) ) что-бы не ставить драйверов.
Тут какбе есть проблема. Чтобы и HID, и высокоскоростное.
В low и full speed USB передается 1000 фреймов в секунду, но для контролэндпойнта макс. размер фрейма для low speed 8 байт и 64 байта для fullspeed итого, по HIDу максимум что можно передать это 8kb/s для lowspeed (тот же v-usb) и 64kb/s для fullspeed.
так что пользуясь HID ограничиваешь себя этими скоростями.
[/quote]

64 кБит и 64 кБайт ? Вроде как 64 кБайт - это сойдет. Грубо говоря есть 2 участка памяти 8х256 к их надо обслуживать без заметных тормозов.
Если лень писать драйвера - прикинься классом CDC Serial port. Драйвер стандартный, реальную скорость в один конец у меня получилось достичь около 800kb/s
Я не настолько умен - что-б еще и драйвер создать - я програмированием по РС только пару недель, как занялся. А задача - что-бы работало БЕЗ УСТАНОВКИ КАКИХ-ЛИБО СТОРОННИХ ДРАЙВЕРОВ !!! Это задача номер 1 :o увы. Тоесть воткнул и запустил обычный EXEшник не имея админских прав и работать. Только штатные драйвера Windows XP. В том виде - как поставляла Microsoft в обычной поставке причем даже не proffesional. Почему долгая история не для форума. Нельзя так-же изменять никаких файлов на системном диске компьютера. Запуск или с флешки или с того-же устройства прикинувшегося флешкой.

Получается только или HID или Mass Storage, все остальное требует дров.

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 22:36:13
Wladimir_TS
Мурик писал(а):
Wladimir_TS писал(а):Но в переспективе надо будет работать с 1886
Это у нас что?
1886ВЕ4У он-же Microchop PIC17C не помню.
Если под винду, то есть порт в виде DLL с либы HID_Lib.
Wladimir_TS писал(а):поддерживающие высокоскоростные устройства
HID'ы тоже могут быть высокоскоростными, но для этого надо МК с аппаратным модулем USB, т. к. программно не хватит ресурсов на расшифровку, по крайней мере у 8-ми битных AVR'ов.
[/quote]
У 1886го аппаратный контролер - на MEGA это я так - балуюсь, что-б не угробить дорогущий кристалл при экспериментах раньше времени.

Wladimir_TS писал(а):Есть-ли для него библиотеки для высокоскоростных USB
Это не от библиотеки зависит, а от железа.
Вот пример работы с высокоскоростным HID девайсом.
[/quote]

ШпасиП !
Wladimir_TS писал(а):она конечные точки выбирать не может
Они конфигурируются в железе, т. е. контроллере.
С ними также можно работать, если они описаны конфиге.[/quote]
[/quote]

Где именно ?

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 22:38:48
Satyr
Wladimir_TS писал(а):
Если лень писать драйвера - прикинься классом CDC Serial port. Драйвер стандартный, реальную скорость в один конец у меня получилось достичь около 800kb/s
Я не настолько умен - что-б еще и драйвер создать - я програмированием по РС только пару недель, как занялся. А задача - что-бы работало БЕЗ УСТАНОВКИ КАКИХ-ЛИБО СТОРОННИХ ДРАЙВЕРОВ !!! Это задача номер 1 :o увы.
Очень невнимательно читаешь. попробуй еще раз.

Re: usb для чайника.

Добавлено: Вт июл 12, 2011 22:44:32
Wladimir_TS
Я просто подумал - что мол драйвер-то стандартный, но ставящийся отдельно. Ведь USB-COM переходники автоматом-то не ставяться - дрова хотят.

И это опять одна конечная точка выходит (те-же 64 кбайт/сек) или как ?