Datum:
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:
stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb raw -echo |
Nun habe ich da 2 Converter von Cypress herumliegen
$ lsusb | grep 232 Bus 003 Device 002: ID 04b4:5500 Cypress Semiconductor Corp. HID->COM RS232 Adapter 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.
$stty -F /dev/ttyUSB0 9600 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).
$cat /dev/ttyUSB0 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:
$lsmod Module Size Used by 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 :(
Datum:
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.
Datum:
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).
Datum:
@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.
$ tail -f /var/log/messages 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 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 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 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...
Datum:
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.
Datum:
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?
Datum:
@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.



