Generic USB Drivers
Aaron193
Posts: 27
I've always been wondering...
Has anyone attempted or is anyone going to attempt to make a generic USB driver for the Propeller.
I ask this question with relation to Propeller operating systems; if a computer can run USB devices, why can't a Propeller? I understand it is extremely hard to provide protocols for all USB devices in one Propeller object, but I am still curious to know if anyone is trying to scale that wall.
Aaron.
Has anyone attempted or is anyone going to attempt to make a generic USB driver for the Propeller.
I ask this question with relation to Propeller operating systems; if a computer can run USB devices, why can't a Propeller? I understand it is extremely hard to provide protocols for all USB devices in one Propeller object, but I am still curious to know if anyone is trying to scale that wall.
Aaron.
Comments
A computer can do it by having lots and lots of main memory along with a hard disk to hold optional stuff. Computers also have a USB engine that handles most of the low level work and DMA for high speed transfer of data to/from the low level controller's buffers.
A little searching might show you that question has been asked and answered plenty of times in this forum already.
The propeller can perform as a low speed USB slave, however there are very few devices that will function at low speed (high speed is a mandatory host requirement) and the propeller is just too slow to run at high speed (12MBPS).
If you were very clever and ran the propeller at 96Mhz, it is possible to make it perform as a low speed master to talk to keyboards, mice and joysticks. That is about as far as you'll get.
I'm happy to help with the HID enumerator code if anyone gets that far.
The current client code is capable of having the propeller emulate a keyboard or a CDC-ACM serial port but it's not been pushed further than that. In theory anything that uses a bulk endpoint is a gross violation of the spec at low speed. (that includes mass storage, printers, scanners and almost anything except HID)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
lt's not particularly silly, is it?
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle
My bad. You are of course right..
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
lt's not particularly silly, is it?
They always use 1.5M bit/sec low speed bit bashed from a 12MHz clock and tight code.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Wouldn't it be possible to create a PIC based board slaved to the Propeller
and some objects to communicate for USB host compatibility?
I'm guessing here, because I don't have knowledge of PIC, but
I know we have some who know the territory.
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Visit the: The Propeller Pages @ Warranty Void.
www.microchip.com/wwwproducts/Devices.aspx?dDocName=en531079
It could be interfaced via the PIC PMP for high-speed data transfer, but would use up a lot of the Propeller I/O.
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle
Post Edited (Leon) : 8/1/2009 3:54:45 PM GMT
I have been searching for a way to have my prop emulate a USB keyboard so that it can transmit key presses to a PC. I currently have to use a hacked keyboard or an expensive adapter.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Thomas Talbot, MD
Gunpowder, MD, USA
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle
Yes.
http://forums.parallax.com/showthread.php?p=675656
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
lt's not particularly silly, is it?
They only get away with it on OSX and Win32. Unpatched linux disallows this particular spec violation.
Most of the AVR ISP stacks use interrupt endpoints to work around this where possible.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
lt's not particularly silly, is it?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point