I need to connect two microprocessors that only have USB host, not OTG or client.
Obviously I would like to connect them as directly and quickly (ie 10's of Mbit up to 100) as possible. A USB to serial to USB bridge is simply not fast enough. Also Prolific's PL-25A1 looks ideal but is specific for windows whereas both of my platforms are running linux.
My current thought is to implement a USB to Ethernet to USB solution. For example if I used an SMSC LAN9512 then I would get my ethernet connection. The LAN9512 has built in MAC and PHY.
My question is how much of a physical interface do I need to implement?
Similar to TI's AN-1519 as referenced in this exchange.
can I get away with some 33nF caps?
Thanks in advance!
Best Answer
There is one variant with a minimal hardware, if you are (self, or friending) a brutal embedded low-level system programmer.
DISCLAMER: I never checked this in practice, it's all about theoretical speculation.
First and simple, connect the MCUs directly via the USB transceiver interface lines (
D+
&D-
) providing the respecting static voltage levels necessary to properly detect the mode (full speed or high speed) of the bus, by the appropriate pull-down resistors.Second and complex, program the OHCI/EHCI unit of the MCU and the responsible driver to only send/receive "naked" USB data type packets and eliminate all other activities.
As a result, you'll (probably) get a half-duplex channel controllable by something like CDMA/CA (i.e. Collision Avoidance) access method employed in wireless networking.
There is another variant with stronger hardware but standard software.
Use a pair of USB FIFO ICs (like FT245R or FT232R in FIFO mode because it has a clock output) controllable by a low-cost CPLD.
As a result, you'll get a full-duplex channel controllable by something like PPP.