Hallo! Ich betreibe im Moment einen AT91SAM7S64 mit dem CDCSerial Code von Atmel. Der Chip emuliert eine virtuelle serielle Schnittstelle. Wenn ich die empfangenen Daten gleich wieder zurückschicke, die Zeit messe und die Übertragungsgeschwindigkeit berechne komme ich auf ca. 0,2 MBit/s. Ist das normal? Der AT91SAM7S sollte doch USB Full Speed (12 MBit/s) können. Muss ich am Atmel Code irgendwas ändern, um das zu beschleunigen? Die eingestellte Baudrate sollte ja keine Einfluss auf die Übertragungsgeschwindigkeit haben. Viele Grüße Markus
Das CDC Profil ist nicht besonders schnell. Das liegt daran, dass ein Terminal immer Zeichen für Zeichen sendet. Diese werden vom Treiber so an den SAM geschickt, wie sie gerade kommen, wenn der USB den Slot für diese Verbindung zuteilt. Wenn Du noch mehr Devices an dem gleichen HUB anschließt, dann werden es noch weniger cps. Du solltest mal versuchen die Zeichen in Blöcken zuerst im USB Puffer zu sammeln und dann abzusenden. Das kann man auf der Controller Seite sicherlich leicht machen, auf der PC-Seite müsstest Du den Treiber ändern. Man könnte versuchen den Interrupt-Channel zu nutzen, dessen Daten werden mit hoher Priorität über den Bus gesendet. Gruß, Ulrich
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.