Страница 1 из 1
Радиоудлинитель USB
Добавлено: Сб фев 15, 2014 23:05:11
alexg-nn
День добрый.
Возникла у меня желание подключить к компу цифровое пианино. Штатно это предполагается делать обычным шнурком USB A-B.
Но вот незадача, девайс стоит далеко от компа (в пределах 5 м) в противоположных концах комнаты и ни один из них подходить ближе к другому не желает. Как и жильцы не желают видеть между ними проводов.
Посему родилась идея, почему бы не организовать цепь "Компьютер - USB - WIFI/Bluetooth - USB - Device"? Поверхностное гугленье таковых простых решений почему-то не выявило, а переплачивать за навороченные устройства не хочется. Поэтому изучаю вопрос возможности сделать такое самому с бюджетом в ..., ну в общем, чем дешевле, тем лучше

Главное, чтоб работало

Руки прямые, голова вроде варит. Тему разместил в разделе AVR, потому как думаю, что без МК не обойтись, а АВР-ки я вроде щупал.
Вопрос сообществу мягколапых - есть ли смысл
в жизни в подобном проекте? Оно вообще возможно?

Прошу покидать идей или ссылок на похожие реализации.
Спасибо.
Re: Радиоудлинитель USB
Добавлено: Вс фев 16, 2014 02:49:36
axillent
чисто теоретически для очень небольших скоростей это возможно
но вам надо быть готовым не только удлинитель сделать, но и драйвер для пианино написать самому - старый может не захотеть работать на пониженных скоростях
решение вашей задачи есть готовое - это usb/print серверы с функцией форврда usb
они правда не все устройства поддерживают, а стоят 2-3т.р.
вот что то типа такого вам нужно (стоит чуть дороже 1000р) но увы тут никто гарантии не даст, что с пианино заработает
с принтером/диском/вэбкамерой должна, а с пианино как повезет
http://www.buyincoins.com/item/2110.html
Re: Радиоудлинитель USB
Добавлено: Вс фев 16, 2014 11:53:35
alexg-nn
axillent писал(а):но и драйвер для пианино написать самому - старый может не захотеть работать на пониженных скоростях
С пианино не идёт никаких драйверов - винда его воспринимает как midi-устройство ввода.
Что касается скоростей - те же WiFi принт-серверы как то справляются. Здесь же скорость гораздо ниже.
Вообще, рассуждая по дилетантски, сам девайс и компьютер будут видеть обычное USB соединение. Просто команды протокола будут транслироваться по радиоканалу.
Затык может быть в латентности, но для моих расстояний это не проблема.
Re: Радиоудлинитель USB
Добавлено: Чт фев 20, 2014 15:33:53
c2n
Ну и я внесу 5 копеек.
Так называемая "несущая частота" у USB2.0 целых 12МГц....
Отсюда и пляшите

Думаю на WiFi передатчиках можно изобразить чтонить
Re: Радиоудлинитель USB
Добавлено: Чт фев 20, 2014 17:51:40
Alkul
c2n писал(а):Так называемая "несущая частота" у USB2.0 целых 12МГц....
У USB2.0 есть две спецификации - Full и High. Знаете, чем они отличаются?
Re: Радиоудлинитель USB
Добавлено: Чт фев 20, 2014 18:34:20
khomych
а нет ли случаем на вашем пианино выхода под названием MIDI?
Re: Радиоудлинитель USB
Добавлено: Чт фев 20, 2014 20:06:18
alexg-nn
khomych писал(а):а нет ли случаем на вашем пианино выхода под названием MIDI?
Нет, такого нету. Есть USB 2.0 и Line Out L/R.
Немного вдаваясь в подробности, придумалась такая схема.
Берём МК с нативным USB (чтобы не подключать отдельный USB->UART чип), например AT90USB162 или PIC16F1459. А в качестве передатчика используем микросхемку типа MRF49XA. Связь МК и передатчика по шине SPI.
ЗЫ
Выяснилось, что MRF49XA тянет максимум 256 kbps, что не вписывается даже в low-speed границу

Re: Радиоудлинитель USB
Добавлено: Чт фев 20, 2014 20:35:00
Ser60
На передающем конце (куда будете втыкать USB кабель от пианино) будет нужен МК с поддержкой режима USB Host. В вышеупомянутом PIC-е USB модуль работает только как USB Client.
Re: Радиоудлинитель USB
Добавлено: Чт фев 20, 2014 21:03:24
Kavka
"Устройство midi-ввода"? Дык, оно наверное USB HID, т.е. low speed. По обычному миди вроде скорости совсем маленькие. Там же только команды (ноты/чем_играть) передаются. Ищите спецификацию или воткните в линуксовый комп и посмотрите что lsusb -v выдаст про тип и скорость.
Re: Радиоудлинитель USB
Добавлено: Чт фев 20, 2014 23:11:50
alexg-nn
Ser60 писал(а):будет нужен МК с поддержкой режима USB Host
А каким образом этот факт обычно отражён в даташитах? Я просмотрел несколько AVRок с USB, но не нашёл там такого термина. Может быть вы подскажете, какие МК гарантированно обладают этим функционалом?
Kavka писал(а):или воткните в линуксовый комп и посмотрите
К сожалению у меня нет компа с линуксом, а с наскока я не нагуглил тулзы под винду, чтобы узнать тип соединения.
Пианино без родных драйверов попадает в "Аудио устройства". Родной драйвер Yamaha USB-MIDI реализует MIDI-over-USB подключение.
ИМХО, что это всё же low-speed.
Re: Радиоудлинитель USB
Добавлено: Чт фев 20, 2014 23:27:04
Ser60
alexg-nn писал(а):А каким образом этот факт обычно отражён в даташитах?
Ищите МК с интерфейсом USB OTG. Например, АT90USB1287 или AT90USB647.
Re: Радиоудлинитель USB
Добавлено: Пт фев 21, 2014 12:46:16
alexg-nn
Нашёл я таки способ узнать параметры соединения.
Спойлер
Код: Выделить всё
========= USB Port2 =========
Connection Status : Device is connected
Port Chain : 2-1-2
====== USB Device ======
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB-Verbundgerat
Device ID : USB\VID_0499&PID_160F\6&3B069A8E&0&2
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0013 (GUID_DEVCLASS_USB)
Driver : C:\Windows\system32\DRIVERS\usbccgp.sys (Version: 6.1.7601.18328 Date: 2013-11-27)
Legacy BusType : PNPBus
Class : USB
Service : usbccgp
Enumerator : USB
Location Info : Port_#0002.Hub_#0003
Location IDs : PCIROOT(0)#PCI(1A00)#USBROOT(0)#USB(1)#USB(2)
Container ID : {9ad6ffca-99f7-11e3-a177-002522b06c00}
Manufacturer Info : (Standard-USB-Hostcontroller)
Capabilities : Removable, SurpriseRemovalOK
Address : 2
Problem Code : 0
Power State : D0 (supported: D0, D3, wake from D0)
Child Device 1 : Yamaha USB-MIDI Driver (WDM)
Device ID : USB\VID_0499&PID_160F&MI_00\7&2D66B851&0&0000
Class : MEDIA
---------------- Connection Information ---------------
Connection Index : 0x02
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01
Device Address : 0x03
Is Hub : 0x00 (no)
Number Of Open Pipes : 0x02 (2)
Device Bus Speed : 0x01 (Full-Speed)
Pipe0ScheduleOffset : 0x00 (0)
Pipe1ScheduleOffset : 0x00 (0)
------------------ Device Descriptor ------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x08 (8 bytes)
idVendor : 0x0499 (Yamaha Corporation)
idProduct : 0x160F
bcdDevice : 0x100
iManufacturer : 0x01
Language 0x0409 : "YAMAHA Corporation"
iProduct : 0x02
Language 0x0409 : "Digital Piano"
iSerialNumber : 0x00
bNumConfigurations : 0x01
-------------- Configuration Descriptor ---------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0065 (101 bytes)
bNumInterfaces : 0x02
bConfigurationValue : 0x01
iConfiguration : 0x00
bmAttributes : 0xC0 (Bus Powered, Self Powered)
MaxPower : 0x00 (0 mA)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x00
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x00
iInterface : 0x00
------ Audio Control Interface Header Descriptor ------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header)
bcdADC : 0x0100
wTotalLength : 0x0009
bInCollection : 0x01
baInterfaceNr[1] : 0x01
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x00
bNumEndpoints : 0x02
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x03 (MIDI Streaming)
bInterfaceProtocol : 0x00
iInterface : 0x00
----------------- Unknown Descriptor ------------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x24
Data (HexDump) : 07 24 01 00 01 41 00
----------------- Unknown Descriptor ------------------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24
Data (HexDump) : 06 24 02 02 01 00
----------------- Unknown Descriptor ------------------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24
Data (HexDump) : 06 24 02 01 21 00
----------------- Unknown Descriptor ------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24
Data (HexDump) : 09 24 03 02 41 01 21 01 00
----------------- Unknown Descriptor ------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24
Data (HexDump) : 09 24 03 01 61 01 01 01 00
----------------- Endpoint Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x40 (64 bytes)
wInterval : 0x0000
bSyncAddress : 0x00
----------------- Unknown Descriptor ------------------
bLength : 0x05 (5 bytes)
bDescriptorType : 0x25
Data (HexDump) : 05 25 01 01 21
----------------- Endpoint Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x40 (64 bytes)
wInterval : 0x0000
bSyncAddress : 0x00
----------------- Unknown Descriptor ------------------
bLength : 0x05 (5 bytes)
bDescriptorType : 0x25
Data (HexDump) : 05 25 01 01 61
Теперь, однако, встала проблема передатчика. Я так понимаю, что найти в свободной продаже трансмиттеры WiFi с нормальной документацией крайне сложно. Практически единственное, что мне удалось нагуглить - это микросхемы от MAXIM типа MAX2820/21/22. В моём славном мухосранске их нет, к сожалению.

Re: Радиоудлинитель USB
Добавлено: Пт фев 21, 2014 15:44:36
axillent
В китае можно купить модули wifi-uart типа таких
http://www.dealextreme.com/photogallery.dx/sku.264680
Вы оценили какая минимальная скорость нужна? Nrf24l01p дает 2мбит
Re: Радиоудлинитель USB
Добавлено: Пт фев 21, 2014 16:41:43
alexg-nn
axillent писал(а):Вы оценили какая минимальная скорость нужна?
К сожалению, я не знаю, как проверить минимальную скорость, при которой соединение будет работать.
Судя по дампу, юзается Full-Speed соединение, для него я знаю только верхнюю границу скорости в 12Mbits/s.

Re: Радиоудлинитель USB
Добавлено: Пт фев 21, 2014 18:25:34
axillent
Тогда из распространенного только wifi
Кстати кроме тех модулей что указал выше можно взять xbee можули с вайфай. Они хорошо документированы, правда выйдут раза в два дороже