Servus, ich möchte mein NGW32 zum Auslesen einer GPS-Maus nutzen und brauche dafür den seriellen Anschluss. Meine Frage: Wie kann ich auf den USART0 zugreifen, es gibt ja kein "minicom", standartmässig (Auslieferungszustand) wird der Anschluss wohl noch nicht unterstützt, wie kriege ich das hin? Der Anschluß ist female, sowie an meiner GPS-Maus, gibt es hierfür ein fertiges Kabel, müssen dann die Leitungen auch gekreuzt werden? Gruß, Herbert74
Hallo Herbert, du musst erstmal UART0 im Kernel aktivieren, bevor du es nutzen kannst. Siehe http://www.cibomahto.com/2007/11/enabling-extra-serial-ports-for-the-ngw100/ >Der Anschluß ist female, sowie an meiner GPS-Maus, gibt es hierfür ein >fertiges Kabel, müssen dann die Leitungen auch gekreuzt werden? Der TxD-Pin des einen UARTs muss mit dem RxD-Pin des anderen verbunden werden und andersrum. MfG Mark
Servus Mark, naja mein Englisch, aber ist das richtig, der UART1 ist bereits aktiv, es geht nur um weitere? Das würde doch heissen, dass ich den bestehenden Anschluss mit ttyS1 ansprechen kann, ich habe es nämlich mit ttS0 probiert,was nicht ging. Gruß, Frank
Der UART1 ist bereits aktiviert und ist das ttyS0 Device, auf welchem
die Konsole läuft.
>ich habe es nämlich mit ttS0 probiert,was nicht ging.
Was genau ging da nicht? Bekommst du keine Konsole über den
RS232-Anschluss des NGW100 wenn du es bootest?
MfG Mark
Wenn ich boote bekomme ich die Konsole,ja. Ich möchte NMEA-Datensätze auswerten und Informationen wieder als Text angezeigt bekommen. Mein Programm läuft auf meinem Desktop-Rechner mit GPS-Maus am ttyS0 einwandfrei und ich dachte ich kann es einfach fürs NGW kompilieren und fertig :-( Ich checke es nicht! Zuerst, darf ich meine GPS-Maus (12Volt-KFZ-Anschluss) an das NGW andocken, gibt es da Problemne mit den Pegeln? Was ich nicht verstehe, wenn ich mich mit ssh einlogge und über den Befehl cat eine Textdatei ausgebe auf /dev/ttyS0 dann wird sie auf der "ssh-Konsole" angezeigt, führe ich den Befehl über eine "minicom"-Verbindung über /dev/ttyS0 wird sie hier angezeigt. Habe ich ein Programm welches Text ausgeben soll, wo wir dieser angezeigt. Ich müsste das Programm später über ssh starten, da ja am UART meine GPS-MAus hängt. Dere, Frank
>Zuerst, darf ich meine GPS-Maus (12Volt-KFZ-Anschluss) an das NGW >andocken, gibt es da Problemne mit den Pegeln? Es sollte keine Probleme geben, da auf dem Board ja ein Pegelwandler installiert ist und die Schnittstelle von den Pegeln her zu der am PC identisch sein sollte. >Was ich nicht verstehe, wenn ich mich mit ssh einlogge und über den >Befehl cat eine Textdatei ausgebe auf /dev/ttyS0 dann wird sie auf der >"ssh-Konsole" angezeigt [...] Das ist aber sehr seltsam. Was passiert, wenn Du einfach nur
1 | echo "test" > /dev/ttyS0 |
schreibst? Wird "test" auch auf der ssh-Konsole ausgegeben oder doch auf der seriellen Schnittstelle? Wenn ersteres der Fall ist, ist da definitiv etwas faul an der Software des NGW100. MfG Mark
> Das ist aber sehr seltsam. Was passiert, wenn Du einfach nur
1 | echo |
2 | > "test" > /dev/ttyS0 |
schreibst? Wird "test" auch auf der > ssh-Konsole ausgegeben oder doch auf der seriellen Schnittstelle? Wenn > ersteres der Fall ist, ist da definitiv etwas faul an der Software des > NGW100. Servus Mark, echo > "test" > /dev/ttyS0 das hat funktioniert, auch das klassische "Hello world!" funktioniert. "Hello world!" wird da ausgegeben, von wo aus ich das Programm gestartet habe (ssh-Konsole oder gtkterm ttyS0). Problem, sobald ich mein Programm einmal versucht habe zu starten geht garnix mehr. Gibt es irgendwo Beispielcode zum Ausgeben und Einlesen über die RS232 beim NGW, ich habe selbst schon gesucht, aber nichts Brauchbares gefunden. Danke, Frank
Hallo
bei mir funktionierte ankopiertes, hier allerdings stark auf den
ttySA0-Teil gestutztes Versuchsmuster.
Eine ausgiebigere original Quelle, welche ich zusammen mit zwei anderen
ATGNW Besitzern in einigen Varianten dann weiterfolgend einsetzte,
beinhaltet das Modul 'setport.c' in einem größeren Projekt irgendwo bei
sourceforge.net. Die genaue Bezeichnung liegt mir auf der Zunge, mehr
momentan aber auch nicht. Die setport.c war allerdings fürs ATGNW
schwerer zu kompilieren und bedurfte einiger Compiler Trickserein bis
damit bei mir was lief.
Unterm Strich bleibt es aber zuerst mal egal was man überhaupt nimmt -
die der ttyS0 Schnittstelle 'mitlaufende' Console stört bei
unveränderterr Ausgabekonfiguration des NGW in jedem Fall. Ein wirklich
funktionierender Datenaustausch in Form von duplexxen transmit - receive
war über ttyS0 nicht möglich, einfaches Senden bei 115kB an ein Terminal
in Form ankopierten Beispieles.
Andere Baudraten, andere Timeouts - typischerweise sollte die
Schnittstelle jeweils nur aus einer Quelle gleichzeitig 'gespeist'
werden. An ttyS0 im Ausgabezustand ist das etwas Random.
An ttyS1 bzw. ttySx hatte ich im send-receive diese Probleme an der
Schnittstelle dann nicht mehr; dafür jede Menge andere ....
Gruß
Peter
>>>
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <netdb.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <termios.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#define DEV_COM1 "/dev/ttyS0" //working in NGW100
int main()
{
int iRet, lCount;
int hComPort;
char sBuf[]= "Well, reached2me by serial 115200\n";
struct termios oldtio, newtio;
}
hComPort = open (DEV_COM1, O_RDWR | O_NOCTTY | O_NONBLOCK);
fcntl(hComPort, F_SETFL, 0x2000);
if (hComPort == -1) {
printf ("Error. Can t open serial port\r\n");
return (0);
}
// get the current serial settings...
tcgetattr (hComPort, &oldtio); /
newtio.c_cflag = B115200 | CS8 | CLOCAL | CREAD;
newtio.c_cflag = newtio.c_cflag & ~(PARODD | PARENB);
newtio.c_iflag = 0; //IGNPAR;
newtio.c_oflag = ONOCR;
newtio.c_lflag = 0;
newtio.c_cc[VMIN] = 1;
newtio .c_cc[VTIME] = 0;
tcflush (hComPort, TCIFLUSH);
tcsetattr (hComPort, TCSANOW, &newtio); // set attribute
lCount= write (hComPort, sBuf, strlen (sBuf));
if (lCount == strlen (sBuf))
iRet= lCount; // 1;
else
iRet= 0;
// Check for errors...
if (!iRet) {
printf ("serial TX ERROR\r\n");
close (hComPort);
return (0);
}
close (hComPort);
return (1);
}
Hallo zusammen, ich kämpfe mit der gleichen Thematik. Ich möchte über RS232 meine Heizung fernsteuern. Auf dem PC funktioniert alles. Die RS232 (ttyS0) des NGW100 macht aber Probleme beim Empfangen. Beim Senden (auch über echo ...) erfolgt die Ausgabe auf der Schnittstelle. Hat jemand von Euch einen Beispielcode ? Gruß Rüdiger
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.