USB troubles

tbonesixtynine

Ingeburgerd
Lid sinds
20 Maart 2009
Berichten
78
Hello,

ik heb de laatste weken enorm veel problemen gehad met USB op mijn setup. Ik heb een stuk of 30 synths aan mijn setup hangen + nog wat controllers, en aangezien er de laatste tijd meer en meer USB aan te pas komt, komen daar ook veel problemen bij zien. Nu dat ik alles onderzocht en opgelost heb, dacht ik dat het een goed idee was om even mijn bevindingen neer te schrijven zodat anderen hier ook wat aan hebben.

Probleem 1 : USB controller resource limitaties
Mijn moederbord in mijn PC heeft 8 USB ports. Na wat research blijkt dus dat die 8 ports intern allemaal op 1 chip zitten. Dus in feite maak het aantal ports weinig uit, hetgeen dat telt zijn de controllers die je hebt. Elke USB controller kan maximaal 128 endpoints hebben, die toegekend worden aan een device dat zich op de usb bus aanmeldt volgens een first come first served methode. Dit heeft als effect dat , indien je teveel endpoints op 1 bus zet, elke reboot randomly telkens andere devices mogelijk niet werken. Frustrerend uiteraard... De ene usb connectie is ook de andere niet, je hebt bvb controllers die slechts 4 endpionts gebruiken, anderen gebruiker er een veelvoud van. Dat zijn dat bvb devices zoals de ultranova, die naast midi ook audio connecties over de usb aanbiedt. Ik heb ook de ableton push 2, ik heb op dit moment geen idee hoeveel endpoints die gebruikt, maar het zal niet mis zijn...

Probleem 2 : USB HUB chipsets
Elke hub die je aansluit, voegt een extra 'hop' toe aan het netwerk. Het maximaal aantal hops in een USB chain is 5. Nu zijn er al devices die het na 2 hops al opgeven. Elke hub heeft ook een eigen controller chip. Deze chips komen in 2 categorieen. Er zijn de Single TT chips en Multi TT chips. De Single TT chips zijn voornamelijk goed in hoge bandbreedte verwerken, vor bvb externe schijven die over USB een hoog data volume moeten verwerken. Die chips krijgen het echter heel lastig als ze zonder dropouts moeten data verwerken van verschillende bronnen tegelijk. Midi over usb heeft geen hoog volume, maar zit wel met data van en naar verschillende devices aan een frequentie om en bij de 1KHz. Hiervoor heb je dus een hub nodig met Multi TT chip nodig. Er is geen mechanisme op USB om dropouts te retransmitten zoals bvb TCP/IP dat wel heeft met zijn resends on failure. Bij USB zal het device met dropouts niet werken, punt.

Probleem 3 : USB HUB interne topologie
Zoals daarnet gezet voegt elke hub een extra hop toe. Het kan nog erger ook, er zijn namelijk veel hubs, bvb DLink 7 ports hub, die interne nog een aaneenschakeling hebben van interne hubs. Bvb 2 + 2 + 3 voor de 7 ports. In feite voeg je dan 3 extra hubs toe zonder dat je het zelfs doorhebt. Bij de slechtste exemplaren zijn deze zelfs in serie geschakeld, waardoor je op de laatste 3 ports al aan de limiet van het netwerk zit. De kans dat daar nog iets behoorlijk door werkt is nihil.

Gelukkig zijn er ook goede op de markt, echter heel weinig. Ik vond toevallig dit artikel https://www.yoctopuce.com/EN/article...an-you-connect, waarin iemand die voor industriele metingen met usb sensoren in een low latency omgeving hetzelfde probleem heeft onderzocht. Het type verkeer dat die sensoren met zich meebrengen komt aardig in de buurt van typisch midi over USB (low latency/low volume/high frequency/multi port) vandaar dat ik het zeer interessant vond. De belangrijkste info in dat artikel is dat je eigelijk maar 2 hubs hebt in de daar geteste hardware die zowel MultiTT controller heeft en een toplogie van slechts 1 hop voor alle ports in de hub.

Probleem 4 : USB uitbreidingskaarten
De meeste USB uitbreidingskaarten zijn single controllers met een aantal ports op. Dit levert niets op uiteraard want in wezen voeg je maar 1 controller toe, die afhankelijk van de devices die je eraan hangt ook snel verzadigd zal geraken.

Conclusies en oplossing :

- Gebruik hubs met MultiTT controllers en single hub topology zoals LogiLink UA0148 en ExSys EX-1177HMV
- Gebruik USB uitbreidingskaaren met een single controller per port zoals de Delock 89365. Hieraan kan je 1 UA0148 per port aansluiten en zijn al je USB nachtmerries voorgoed van de baan.
- Vermijd serieschakeling van hubs !! Indien je dit toch moet doen, gebruik dan 1 hub om alle andere achter te hangen zodat de grote moot in parallel hangt.

Ik hoop dat iemand hier wat aan heeft, ik heb er namelijk behoorlijk wat hoofdpijn door gehad :)

cheers!


PS ik heb geen aandelen van bovengenoemde fabrikanten :p
 
Dat zijn nog eens goede bevindingen (research). :okdan:
Het is iets dat al sinds den beginne van USB speelt, daarom was Firewire altijd de betere optie.
Maar voor Midi en wat al niet meer tegenwoordig via 1 zo'n USB-controller loopt het al gauw dicht.
Je zou denken dat USB3.1 / Thunderbolt2&3 inmiddels wel voldoende te bieden moeten hebben wat dit betreft.
Tenzij een PC / moederbord-fabrikant ook weer bezuinigd heeft op dergelijke onderdelen.

Het is altijd goed om je te beseffen wat schakel je aan of achter elkaar en wat heeft ook nog eens USB-stroom nodig. :?
 
Probleem 1 : USB controller resource limitaties
Mijn moederbord in mijn PC heeft 8 USB ports. Na wat research blijkt dus dat die 8 ports intern allemaal op 1 chip zitten. Dus in feite maak het aantal ports weinig uit, hetgeen dat telt zijn de controllers die je hebt. Elke USB controller kan maximaal 128 endpoints hebben, die toegekend worden aan een device dat zich op de usb bus aanmeldt volgens een first come first served methode. Dit heeft als effect dat , indien je teveel endpoints op 1 bus zet, elke reboot randomly telkens andere devices mogelijk niet werken. Frustrerend uiteraard...

Volgens mij is er wel een windows tool die de USB device prioriteit (of hoe je het wil noemen) kan 'reserveren' toch? (zelf niet nodig omdat mijn USB midi devices aan mijn iconnectmidi hangen).
 
Wauw, informatief! Ik heb hier al vaak problemen mee ondervonden (toevallig met oa. de Ultranova en Push :D), en begreep nooit waarom het zo'n gedoe was.
 
Back
Top