Программный USB

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Программный USB

Post by Lavr »

Довольно давно пытаюсь найти информацию, как обратиться к USB-флешке из PIC программным путём, т.е. "дёргая за ножки" :wink: ,
но информации, кроме того, что Мелкософт не рекомендует обращаться к USB на уровне портов, не попадалась.
Но бог с ним с портами, находил я драйверы под DOS - и они вполне работали с флешкой.
На днях вот встретил более интересные ссылки:
http://electronix.ru/forum/lofiversion/ ... 27220.html
Программный USB на ATMEGA8 ... зайдите на www.obdev .at там и исходник программного драйвера USB для AVR и примеры проектов
Заходил - некоторые ссылки битые, и примеров вроде как не нашел...
Со стороны ПК - всё равно используют какой-то драйвер под Винду.

Может у кого есть информация, как реализовать программный интерфейс между PIC и флешкой на уровне ассемблера ?

PS. Пробовал ковырять БИОС в ноутбуке - докопал только до интегрированного контроллера, который много еще чего делает, и я не уверен что нашел что-то похожее на работу с USB.
Last edited by Lavr on 16 Sep 2010 07:00, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24035
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Тема интересная - держи в курсе :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

2_Shaos

Post by Lavr »

Shaos wrote:Тема интересная - держи в курсе
Чем-то ты мне напомнил одну строчку из песни В.Высоцкого:
"Мне инструктор помог - и коленом пинок -..." :wink:

Ну вот "держу" начало этой эпопеи...

Image

http://www.obdev.at/products/vusb/index.html
V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.
Есть еще варианты...

Image

http://www.xs4all.nl/~dicks/avr/usbtiny/

А он в свою очередь очень хвалит их:

Image

которые в свою очередь говорят, что и вот это - парень неплохой...

Image

http://www.cesko.host.sk/IgorPlugUSB/Ig ... R)_eng.htm

Хотя сами они - безусловно круче...
V-USB supports up to 4 endpoints. This allows implementing devices conforming to the HID or CDC device class.
V-USB passes the tests in usb.org's test utility.
V-USB supports many different clock rates, some even with the internal RC oscillator.
Чего у них у всех однозначно нет - как обойтись без IBM PC, что мне собственно и хотелось найти. :lol:
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Уточню: везде программные USB Device, а тебе нужен программный USB Host. Копай туда (но вряд ли найдешь).
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

2_HardWareMan

Post by Lavr »

HardWareMan wrote:...а тебе нужен программный USB Host. Копай туда (но вряд ли найдешь).
Да я знаю - а фигли толку... От чего-то ж надо оттолкнуться...

PS. Вспомнил другую песню В.Высоцкого:
"И я пошел - попил, поел - Не полегчало..." :wink:
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

Я помню просматривая примеры языка MikroC Mikroelektronika (может не правильно названия написал, фирма какая-то славянская) для PIC процессоров я набрел на реализацию USB Host программно и схему подключения.
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

2_fifan

Post by Lavr »

Не вот это ?

Image

Embedded USB Host Mass Storage Application.

http://www.mikroe.com/forum/viewtopic.php?f=88&t=26368

how to read and write on USB flash drives

http://www.mikroe.com/forum/viewtopic.php?f=88&t=26173
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Все они основаны на PIC32, имеющие аппаратный USB Host. Чисто программного USB Host'а нет, а вот девицы есть. Жаль, а так в принципе мне бы хватило и USB1.1 Low Speed, мышу-клаву подцеплять, пышто PS2 уже отходит на второй план...
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Я тут подробно "искурил" :wink: что пишет Игорь Чех (наверно),
http://www.cesko.host.sk/IgorPlugUSB/Ig ... R)_eng.htm
в принципе - ничего сверхъестественного нет, кроме скорости
контроллера.
Он, в принципе, начал разработку на PIC16F84-20(MHz), но скорости
не хватило. После чего он дважды поменял Atmel-и, прежде чем получил
удобоваримый софтверный результат по скорости.
Жаль я с Атмелем ничего и никогда не делал, лень курить исходник,
да и нет у меня ничего на Атмель, и искать - лень...
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Ага, я собирал кстати, для пульта - афигенно работает. И опять же: это девица а не хост.
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

А вот не один я такой любопытный аказуецца...
Вот тут люди тоже этим озадачились...
http://electronix.ru/forum/lofiversion/ ... t7963.html
...по программной организации Host со стороны микроконтроллера (верхний и нижний уровень драйверов).
В прошлом году я задавал этот вопрос у создателя USB->RS232 (на базе AVR-микроконтроллеров) Igor Cesko. На что он мне прислал такой ответ:

Hello,

USB host is more complicated. In last time is big development about USB-OTG
(On The Go). Please see for example Philips website for microcontrollers
with USB-OTG. In simple microcontroller - USB emulation is this too
difficult.

Best Regards
Igor
Аппаратный вариант - вроде как и есть...
Interfacing a USB Flash Drive to a PIC Microcontroller
For sample code for logging data directly to a USB Fash disk using a PIC16F688 and the VNC1L, CLICK HERE
но там, где ХЕРЕ - там нет ничего...

А вот тут - есть кой-чо...
Host USB implementation example :
http://g.fondeville.free.fr/usb_host_en.html


Ваще - это подляна делать популярным интерфейс к которому на кривой козе не подъедешь... :(
User avatar
Error404
Maniac
Posts: 269
Joined: 05 Oct 2006 04:45
Location: Moscow

Post by Error404 »

Lavr wrote: Ваще - это подляна делать популярным интерфейс к которому на кривой козе не подъедешь... :(
Подляна - типовое состояние рыночной экономики: доставлять неудобства, чтобы вынудить к покупке все новых и новых казалось бы нафиг не нужных ништяков. "Не обманешь - не продашь" (с)

Тот же SPI - на один провод всего больше, а прицепить можно куда угодно - хоть к i4004. Так нет же -фиг всем, будем делать ширпотреб с USB-only.
Всем добра!
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Подведем итоги

Post by Lavr »

Ну что ж, подведем итоги кавалерийского наскока на чисто программный USB Host.
Чисто программный его в принципе сделать можно, но нужна шустрая машинка с приемлемым размером памяти.
Отсюда вывод первый - дешевле покупки специализированной ИС это вряд ли получится, так что - стОит ли овчинка выделки ?
Вывод второй - чисто из спортивного интересу доказать, что программный USB Host реализовать хотя бы на продвинутом PIC - скорее всего - осуществимо.
Тот же SPI - на один провод всего больше, а прицепить можно куда угодно - хоть к i4004.
Согласен, но основная сложность даже не в этом - дело в скорости.
SPI не критичен к скорости передачи, а USB - критичен.
Если бы в USB можно было выбрать произвольную скорость передачи, то он бы был ненамного сложнее SPI.