Connect two embedded devices with USB host with Ethernet

bridgeethernethostusb

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.

    enter image description here

  • 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.

    enter image description here

As a result, you'll get a full-duplex channel controllable by something like PPP.