USB 2.0 design

Alle overige elektronica.
Plaats reactie
Bericht
Auteur
jensvanhoof
Berichten: 52
Lid geworden op: 10 jan 2014, 09:04

USB 2.0 design

#1 Bericht door jensvanhoof »

Goede avond,

Graag had ik het brain eens gepickt van de electronica-specialisten.
Ik ben al een tijdje aan het werk om in een eigen ontwerp een USB2.0 poort toe te voegen. In het ontwerp zit een microSD kaart die via de SDIO interface wordt gelezen. De bedoeling is om het apparaat aan de PC te kunnen koppelen 'usb-stick-gewijs' om zo bestanden makkelijk op het SDkaartje te kunnen zetten.

Aangezien het geen goed idee is om de datalijnen te delen tussen de microprocessor en de PC heb ik gekozen voor 6 analoge switchen van lage weerstand om 'transparant' te zijn en dus telkens maar naar één 'lezer' te verbinden. Er zijn 4 datalijnen (D0,D1,D2,D3), een clock en een command lijn. Het bedienen van de switch doe ik voorlopig met een schakelaar maar zal ik wrs later met een transistor laten schakelen als de 5V van de USB host gezien wordt (nu niet belangrijk).

Om het vertalen van de SDIO interface naar het USB protocol te doen gebruik ik de VUB300 chip van Saelig. Die is speciaal gemaakt voor kaartlezer-circuits te maken en hiervoor staat zelfs in de datasheet het schema.

Aangezien deze chip alleen maar in een QFN package te krijgen is (=pain in the *ss om te solderen), had ik in eerste instantie een standaard breakoutbordje gekocht om zo makkelijker te kunnen interfacen (zie foto). De chip heb ik er mooi op gesoldeerd gekregen na wat moeite.

Afbeelding
Afbeelding

Na het nabouwen van het circuit in de datasheet had ik geen succes. Via een ander forum werd me duidelijk gemaakt dat USB2.0 niet erg vergevend is voor fouten, er moet namelijk zeer specifieke design rules gevolgd worden (impedance matching, lengte van de lijnen,..). Vermoedelijk is het probleem dat ik in mijn prototype niet erg veel controle heb over impedantie etc (ik werk met korte stukjes kinar (wrapping) kabel).

Back to the drawing table dus.

Ik ga dus een kleine test PCB (laten) maken waarop ik de USB connector, VUB300 en extra componenten ga zetten om te kijken dat het concept werkt. Volgens de aanbevolen specificaties kan je het best een 4-laagse print maken, maar dat zou ik graag vermijden als ik kan (kan je zelf nog weinig aan aanpassen in de prototype-fase).

Moest er iemand ervaring hebben met het ontwerpen van ultra highspeed systemen (480Mbps), zou zijn input hard gewaardeerd zijn. Ik dacht aan een GNDplane maar daarin de USB signalen (USB- en USB+), met GND tussen de twee in, en aan de andere kant van de PCB niets. En dan korte traces naar de USB connector.

Zou dit kans hebben op slagen? Ik zou het nogal lullig vinden om borden te bestellen als het geen enkele kans op slagen heeft.
Elke input is hard welkom!

gr,
Jens

Gebruikersavatar
Hans PE1KWH
Berichten: 281
Lid geworden op: 30 jul 2009, 19:32

Re: USB 2.0 design

#2 Bericht door Hans PE1KWH »

Als ik het goed begrijp wil je een slave USB 2.0 zijn voor de PC en master voor de SDIO naar de SD kaart ?

As je een MicroChip met USB neemt kun je dat maken. Bijv. de 18F2550 ( de hele serie die daar bij hoort ) heeft een USB 2.0 Slave interface en die is vrij simpel.
Aan de 18F2550 1 weerstand, een condensator en de USB B aansluiting en klaar.
Er is een complete demoset aan software te verkrijgen en anders stuur je maar een mail, ik heb diverse ontwerpen met USB draaiend, dan krijg je een "leeg" project.

Timing van de PIC is wat kritisch, werkt het makkelijkst als je een 20 MHz oscillator gebruikt.

Er zit 1 addertje onder het gras en dat is de driver aan de PC kant voor 64 bit systemen. Je moet even op internet zoeken voor een bruikbare oplossing die er wel is.

Plaats reactie