0

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!

user50890
  • 1
  • 2
  • 2
    Do the micros have any other ports - serial, I2C SPI or even spare GPIO pins? And must it be Ethernet? How far do they need to communicate? Do they need to communicate over the internet? – John U Aug 07 '14 at 11:50
  • Are the two micros on the same board or are they in separate devices? – Olin Lathrop Aug 07 '14 at 12:27
  • Can you support simple USB wireless adapters? -- http://www.monoprice.com/Product?seq=1&format=2&p_id=8072&CAWELAID=1329456150&CAGPSPN=pla&gclid=Cj0KEQjwx4yfBRCt2rrAs-P5vtkBEiQAOdFXbRDvCWEhQ--5uG2XLKhvfpJdN-vE8njA9WtdkerfyCAaAp018P8HAQ – Scott Seidman Aug 07 '14 at 12:52
  • Unfortunately I only have USB exposed on the one microprocessor. It is part of one of our existing products and so I have to work with what I have. The second micro is being added as a daughter board which will be connected with a board to board header. They have common power though with seperate PMICs. The wireless USB is an intriguing suggestion; I will look into that - starting on the monoprice site :) – user50890 Aug 07 '14 at 13:23
  • I should add that the second module is a Raspberry Pi Compute module. That should really open up the discussion. Maybe it can enumerate as a USB client (Ethernet port?) and I just missed that fact. – user50890 Aug 07 '14 at 13:32
  • 1
    But I need to use the USB port on the PI for external storage so currently it would host the ethernet port and a USB to SATA bridge. – user50890 Aug 07 '14 at 13:44
  • I would think USB-ethernet would work (that's what is on the model B pi anyway), but wouldn't it be simpler and cheaper to just buy off-the-shelf USB-ethernet dongles? – Chris Stratton Aug 07 '14 at 14:55
  • Also note that those USB file transfer cable chips are typically treated as a type of network interface under Linux - ie, supported, and working, but in a way not compatible with the way Windows uses them. – Chris Stratton Aug 10 '18 at 19:02

1 Answers1

1

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.

asndre
  • 1,597
  • 10
  • 17