Forum: PC Hard- und Software Baudrate bei USB-Serial Converter mit stty nicht einstellbar


von Michael N. (nurmi)


Lesenswert?

Hallo Forengemeinde schon lange nix mehr gepostet hier,

Ich muss neben meinem PL2303 nun jetzt auch ein anderes Modell eines 
USB-Serial-Converters verwenden.

Mit dem alten Prolific stellte ich meine Parameter zur Kommunikation mit 
einem AVR-betriebenen Board so ein:
1
stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb raw -echo

Nun habe ich da 2 Converter von Cypress herumliegen
1
$ lsusb | grep 232
2
Bus 003 Device 002: ID 04b4:5500 Cypress Semiconductor Corp. HID->COM RS232 Adapter
3
Bus 005 Device 002: ID 04b4:5500 Cypress Semiconductor Corp. HID->COM RS232 Adapter

Dieser lässt sich aber nicht auf die gewünschte Baudrate einstellen.
1
$stty -F /dev/ttyUSB0 9600
2
stty: /dev/ttyUSB0: unable to perform all requested operations

Mit 4800 geht's jedoch. Dann empfange ich auch etwas (natürlich wenn der 
Sender auch mit 4800 sendet).
1
$cat /dev/ttyUSB0
2
daten_vom_mc_werden_empfangen....

Gibts das überhaupt, dass dieser USB-Converter nur mit so langsamen 
Geschwindigkeiten zurechtkommt?
Oder hats da mit meinem Kernelmodul was?
Oder funzt das stty nicht immer...

Ich verwende das Modul:
1
$lsmod
2
Module                  Size  Used by
3
cypress_m8             14367  0

Habe eigentlich nicht Lust alle meine Devices auf Baud 4800 
downzugraden.

Übrigens das STK-500 lässt sich auch nicht mit dem Cypress-Adapter 
verwenden :(

von blubb (Gast)


Lesenswert?

Hallo Michael,

die Geschichte krankt dann am Kernelmodul, was die entsprechenden 
Geschwindigkeiten bzw. Parameter nicht zur Verfügung stellt. Das geht 
IMHO mittels ioctl()-Aufrufe, was der Treiber anbieten muß. Schau dich 
mal nach 'nem anderen Treiber um oder nimm lieber gleich 'nen 
FTDI-Konverter. Weniger Ärger und stabilere Vervindung dank 
ausgereifterer Treiber.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michael Neumayer schrieb:
> Übrigens das STK-500 lässt sich auch nicht mit dem Cypress-Adapter
> verwenden :(

Der braucht auch 115200 Bd, mit einer anderen Rate funktioniert
der nicht (außer im Bootloader-Modus).

von Michael N. (nurmi)


Lesenswert?

@Jörg:
dacht ich mir schon, dass ich die Baudrate nicht einfach so beim avrdude 
mit der Option '-b' mitgeben kann. Das STK weis ja dann nicht mit 
welcher baud die Anforderungen daherkommen.


Ein nächstes Phänomen hab ich:
Wenn ich Daten mit 4800 empfange, hab ich im Logfile mir unbekannte 
Ausgaben. Kann da jemand was damit anfangen.
1
$ tail -f /var/log/messages
2
Jul 12 17:57:51 lax kernel: [39156.925930] uhci_hcd 0000:00:1d.1: release dev 2 ep81-INT, period 2, phase 1, 118 us
3
Jul 12 17:57:51 lax kernel: [39156.939980] uhci_hcd 0000:00:1d.1: reserve dev 2 ep81-INT, period 2, phase 1, 118 us
4
Jul 12 17:57:51 lax kernel: [39156.940067] uhci_hcd 0000:00:1d.1: reserve dev 2 ep02-INT, period 8, phase 4, 118 us
5
Jul 12 17:57:51 lax kernel: [39156.947926] uhci_hcd 0000:00:1d.1: release dev 2 ep02-INT, period 8, phase 4, 118 us

Anschließend habe ich jetzt das Kernelmodul so modifiziert, dass 
Baudraten bis 115200 baud akzeptiert werden.

Ursprünglich war da eine Begrenzung auf 4800 drinnen.
Mal probieren ob es funkt...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michael Neumayer schrieb:
> dacht ich mir schon, dass ich die Baudrate nicht einfach so beim avrdude
> mit der Option '-b' mitgeben kann. Das STK weis ja dann nicht mit
> welcher baud die Anforderungen daherkommen.

Hängt halt von der Hardware ab.  Für ein JTAGICEmkII beispielsweise
geht das: die initiale Kontaktaufnahme erfolgt immer mit 19200 Bd,
danach verhandeln sie eine neue Geschwindigkeit.  In aller Regel
wird man dabei natürlich auch auf 115200 Bd gehen.  Wenn man sich
vom ICE abmeldet, fällt es wieder auf 19200 Bd zurück (und meldet
sich ggf. mit dem USB-Interface wieser am Bus an).

Beim JTAGICE mkI war das gruselig: da musste man alle Baudraten
durchprobieren, bis man eine gefunden hat, mit der die Kommunikation
klappt.  Da es dort auch kein Abmelden gab, blieb das ICE danach bis
zum nächsten Power-Up bei dieser Rate.

von irkngdwer (Gast)


Lesenswert?

Soo schlecht sind die Cypress nun auch wieder nicht. Offensichtlich 
kommt der stty nicht mit dem Converter zurecht. was passiert wenn du in 
/etc/init die Baudrate fest vorgibst?

von Michael N. (nurmi)


Lesenswert?

@irkngdwer
Wie meinst du dass?
In /etc/init

Ich verwende im Moment das Teil unter gentoo.
Ich kann die Baud mit stty einstellen.
Der Kerneldriver kommt allerdings nur bis 4800 bauds zurecht trotz 
modul-Modifikation.

Naja, fuer linux und windows7 gibts ja offiziell keine Treiber dafuer.

Ich mach mich dann mal auf die Suche nach einem anderen Konverter.

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.