Forum: Mikrocontroller und Digitale Elektronik Übertragungsrate CDCSerial AT91SAM7S


von Markus (Gast)


Lesenswert?

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

von Ulrich P. (uprinz)


Lesenswert?

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
Noch kein Account? Hier anmelden.