8.4.2009: USB 1.1 oder USB2.0?
Bei Tests mit dem USB/Seriell-Wandler FT232R ist aufgefallen,
dass er sich je nach PC als USB1.1 Lowspeed-Gerät oder als
schnelles USB2.0 Gerät anmeldet. Dabei kommen dann
unterschiedliche Übertragungsgeschwindigkeiten heraus. Besonders
wenn die Software mit den Handshake-Leitungen DTR und RTS klappert
macht das einen großen Unterschied. Bei einem Lowspeed-Gerät
dauert jeder Pegelwechsel 3 ms. Das Thema
USB-Geschwindigkeit
wurde schon einmal hier im Logbuch behandelt: Jetzt habe ich
das Programm so vereinfacht, dass es sich selbst erklärt. Die
Zeitangabe bedeutet nun die durchschnittliche Zeit für einen
Pegelwechsel.
Das Bild zeigt, dass jeder Pegelwechsel 250 µs dauert. Der FT232R
hat sich also in diesem Fall als Fullspeed-Gerät angemeldet. Eine
Messung an den USB-Leitungen D+ und D- mit dem Oszilloskop
bestätigt dies: Der Bus arbeitet mit 12 MHz. Das Datenblatt sagt:
USB 2.0 Full Speed compatible. Offensichtlich meldet sich der Chip an
USB 2.0 als Fullspeed-Gerät an, an USB1.1-Schnittstellen dagegen
als Lowspeed-Gerät. In diesem Fall benötigt ein Pegelwechsel
3 ms.
In einem Fall wurde an einem Laptop beobachtet, dass der FT232R sich
als Lowspeed-Gerät anmeldete, obwohl definitiv USB2.0 eingebaut
war. Zum Test wurde dann ein USB-Hub zwischengesteckt. Damit wurde doch
noch die höhere Geschwindigkeit erreicht. Es gibt auch noch einen
bisher unbestätigten Verdacht, dass ein USB-Kabel den langsamen
Modus erzwingen kann. Bei der Anmeldung würde dann verhandelt:
Fullspeed geht nur mit Mühe, dann nehmen wir mal Lowspeed. Das
Gemeine ist, dass Windows sich darüber vornehm ausschweigt.