-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: RNControll Serielle Verbindung mit linux

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2010
    Beiträge
    19

    RNControll Serielle Verbindung mit linux

    Anzeige

    Hi,

    ich spiele gerade ein bisschen mit einem RNControl Board herum und würde damit gerne über die RS232 Schnittstelle mit meinem Computer kommunizieren. Da mein Computer keine Seriellen Anschlüsse mehr hat, benutze ich einen mySmartUSB. Als Beispielprogramm hab ich jetzt erst mal das C Example aus dem Artikelbereich verwendet, da dort ja auch Informationen wie die Batteriespannung oder die Sensoren ja über die serielle Schnittstelle übermittelt werden.
    Wenn ich das ganze anschließe wird mir auch wie gewünscht das Device /dev/ttyUSB0 angezeigt und ich kann mit cat darauf auch sehen, dass Daten übertragen werden. Ich bekomme aber nur wirres Zeug übermittelt:
    user@laptop:~$ cat /dev/ttyUSB0
    ��<k0C��<k0C��<k0C���k C��<i0C��<k0C���i0C���{0C���i0C��i�<+2C�

    ���i��i�<+2C�

    ���i��i�<+2C�
    Ich hab mir gedacht, dass das wahrscheinlich daran liegt, dass die Baudrate falsch eingestellt ist. Ich habe sie mit dem Befehl stty -F /dev/ttyUSB0 speed 9600 umgestellt, es ändert sich aber nichts.
    Ich habe gerade erst angefangen mich mit dem ganzen zu beschäftigen, habe also wenig Ahnung davon, also auch nicht von Stop Bits und Asyncroner Übertragung und wie das eingestellt wird.
    Ich hab natürlich gegoogled aber sie wirklich fündig bin ich nicht geworden, liegt aber wohl auch damit zusammen, dass die meisten Erklärungen die ich gefunden habe für Windows waren.
    Könnte mir jemand sagen, wie ich meine RS232 Schnittstelle am Computer richtig konfiguriere, oder zumindest einen Verweis auf einen Artikel in dem das beschrieben wird?

    Danke schonmal.
    Gruß
    toti

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von just4fun
    Registriert seit
    06.09.2004
    Ort
    Hannover
    Alter
    46
    Beiträge
    314
    Hi totix800,

    willkommen im Board. Schau dir mal das (von meiner Website) an, vielleicht hilft es dir weiter: http://www.direcs.de/doxygen/direcsS...pp_source.html

    Dort die Methoden
    Code:
    openAtmelPort
    readAtmelPort 
    writeAtmelPort
    Den Rest erstmal nicht (wird anderweitig genutzt)! Bei Fragen, frag!

    Gruß, just4fun
    www.robotiklabor.de - Der Podcast rund um Robotikthemen
    www.direcs.de - Meine Robotik-Seite mit Videos, Fotos, Screenshots, Source-Codes und mehr.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2010
    Beiträge
    19
    HI;

    danke für die Antwort. Das ganze ist ja schonmal ein anschauliches Beispiel, wie so eine Kommunikation aussehen kann, aber welche Baudrate das RNControl Board braucht, dein Beispiel ist ja durch Parameter variabel und hilft mir da jetzt leider noch nicht.

    Gruß
    toti

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von just4fun
    Registriert seit
    06.09.2004
    Ort
    Hannover
    Alter
    46
    Beiträge
    314
    Sorry, den Teil hatte ich überlesen. Ich nutze dieses Board: http://www.shop.robotikhardware.de/s...roducts_id=162
    Also einen Atmega 2560.

    Und das/der braucht 9600, 8N1

    Gruß just4fun
    www.robotiklabor.de - Der Podcast rund um Robotikthemen
    www.direcs.de - Meine Robotik-Seite mit Videos, Fotos, Screenshots, Source-Codes und mehr.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2010
    Beiträge
    19
    Hi,

    Ich hab den specs vom RNControl auch irgendwo was von 8N1 gelesen, sind damit die stopbits gemeint und kann das weglassen dazu führen, dass ich dann solche falschen daten bekomme? Ich weiss leider immer noch nicht wie ich die stopbits bei linux einstelle...

    Gruß
    toti

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von just4fun
    Registriert seit
    06.09.2004
    Ort
    Hannover
    Alter
    46
    Beiträge
    314
    Das bedeutet 8 Datenbits, Keine (No) Parity, 1 Stop-Bit. Diese Einstellung ist in jedem Fall erforderlich und geht wie folgt (siehe auch mein Link, daher hier die Zeilennummern):
    Code:
    00025 #include <errno.h>
    00026 #include <fcntl.h>
    00027 #include <math.h>
    00028 #include <stdio.h>
    00029 #include <stdlib.h>
    00030 #include <string.h>
    00031 #include <termios.h>
    00032 #include <unistd.h>
    00033 #include <sys/types.h>
    00034 #include <sys/ioctl.h>
    00035 #include <sys/stat.h>
    00036 #include <sys/time.h>
    
    00045 #include <linux/serial.h>
    
    00050 #define READ_TIMEOUT          250000      /* less than 1e6 */
    
    00037         struct termios  options;
    
    
    00072         // Get current port settings
    00073         tcgetattr(mDev_fd, &options);
    00074 
    00075         // this setting is needed for Mac OS! But works under Linux, too!
    00076         options.c_cflag |= CLOCAL;
    00077 
    00078         // 8N1
    00079         options.c_cflag &= ~PARENB;  // Parity = N
    00080         options.c_cflag &= ~CSTOPB;  // 1 Stop Bit
    00081         options.c_cflag &= ~CSIZE; // hm, wofür ist das eigentlich?
    00082         options.c_cflag |= CS8; // 8 Datenbits
    
    // Da man in der Regel kein Hardware-Flow-Control hat / nutzt, ist es auch wichtig, dieses für den seriellen Port abzuschalten:
    
    00084         // Disable hardware flow control:
    00085         options.c_cflag &= ~CRTSCTS;
    
    00167         // Cause the new options to take effect immediately.
    00168         tcsetattr(mDev_fd, TCSANOW, &options);
    www.robotiklabor.de - Der Podcast rund um Robotikthemen
    www.direcs.de - Meine Robotik-Seite mit Videos, Fotos, Screenshots, Source-Codes und mehr.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2010
    Beiträge
    19
    Hi,

    Ok, dann weiss ich schonmal wofür das steht. Ich müsste aber wissen wie man das ganze mit den Boardmitteln von Linux also wohl mit stty einstellt....

    Gruß
    toti

  8. #8
    Erfahrener Benutzer Begeisterter Techniker Avatar von just4fun
    Registriert seit
    06.09.2004
    Ort
    Hannover
    Alter
    46
    Beiträge
    314
    sry:

    man stty
    www.robotiklabor.de - Der Podcast rund um Robotikthemen
    www.direcs.de - Meine Robotik-Seite mit Videos, Fotos, Screenshots, Source-Codes und mehr.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2010
    Beiträge
    19
    mhhh, die manpage hilft mir leider nicht so recht weiter, deswegen hatte ich gehofft, dass mir jemand vielleicht ein Beispiel geben könnte...

    Gruß
    toti

  10. #10
    Erfahrener Benutzer Begeisterter Techniker Avatar von just4fun
    Registriert seit
    06.09.2004
    Ort
    Hannover
    Alter
    46
    Beiträge
    314
    Verstehe. Aber laut Doku http://linux.die.net/man/1/stty müsste es nicht wie folgt gehen?

    stty -F /dev/ttyUSB0 speed 9600 cs8 -cstopb -parenb
    www.robotiklabor.de - Der Podcast rund um Robotikthemen
    www.direcs.de - Meine Robotik-Seite mit Videos, Fotos, Screenshots, Source-Codes und mehr.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •