Hi Grice,
RTS/CTS is enabled by default, at least on a net5501 (I had trouble with
an oddly wired cable a while ago). The problem is that this is not
documented anywhere, except maybe fragmentarily on the Soekris Wiki.
Bill
On Tue, 2008-07-22 at 20:04 -0500, [EMAIL PROTECTED] wrote:
> OpenBSD 4.3 installed smoothly, but Ive been wrestling with serial
> communication over COM2 for days now. At the moment I have a simple C
> program
> designed to echo any data sent to the serial port to stdout. Ive tested the
> program on other OpenBSD 4.3 PCs without issue, but when I move the code to
> the Soekris board, I see data being received, but its entirely corrupted. At
> this point I have tried sending the data at multiple baud rates, both with
> and
> without CTS/RTS. The results are always the same. I receive data as its
> being sent, but its not the data I expect.
>
> The code for the echo program is listed below. Must CTS/RTS be connected? I
> noticed in another message thread, 19200 is the recommended baud rate for
> COM2. Is this true? If so, why? Must I use 19200? Any other
> recommendations?
>
> Strangely enough, I actually always receive data back from the COM2
> connection
> as well, whether the echo program is running or not. For example, sending
> the
> character t, I get back 0x0000. If I send test, I receive
> 0x000246000000. Again, this occurs whether or not the program is running
> (note that the program doesnt actually return anything via the serial port at
> all). I suspect this is a configuration issue, but quite honestly Im a
> loss. Any suggestions would be greatly welcomed.
>
> Have a great weekend - Greg
>
> Echo Program:
>
> #include <sys/types.h>
> #include <sys/stat.h>
> #include <fcntl.h>
> #include <termios.h>
> #include <stdio.h>
> #include <string.h>
> #include <stdlib.h>
> #include <unistd.h>
>
> #define BAUDRATE B9600
> #define MODEMDEVICE "/dev/cua01"
> #define _POSIX_SOURCE 1 /* POSIX compliant source */ #define FALSE 0 #define
> TRUE 1
>
> int main(int argc, char **argv)
> {
> unsigned char serialbuf[512];
> int fd, resume;
> struct termios oldtio, newtio;
>
> int n = 0;
>
> // Open serial port for communications
> fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY);
> if (fd < 0)
> {
> perror(MODEMDEVICE);
> exit(-1);
> }
> else
> {
> printf("\nSerial Port Initializing...\n\n");
> }
>
> // Save existing port settings
> tcgetattr(fd, &oldtio);
> bzero(&newtio, sizeof(newtio));
>
> /*
> CRTSCTS : flow control
> CS8 : 8N1
> CLOCAL : local connection, no modem contol
> CREAD : enable receiving characters
> */
> newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD | CRTSCTS;
>
> newtio.c_iflag = IGNPAR;
> newtio.c_oflag = 0;
> newtio.c_lflag = 0;
>
> newtio.c_cc[VTIME] = 0;
> newtio.c_cc[VMIN] = 1;
>
> // Activate settings
> tcflush(fd, TCIFLUSH);
> tcsetattr(fd,TCSANOW,&newtio);
>
> // Begin Receiving serial data communication
> printf("\nReceiving on Serial Port...\n");
> while(1)
> {
> resume = read(fd,serialbuf,512);
> if (resume > 0)
> {
> printf("Size: %d\n", resume);
> for (n=0; n<resume; n++)
> printf("%c\n",serialbuf[n]);
> }
>
> }
> tcsetattr(fd, TCSANOW, &oldtio);
> return 0;
> }
>
>
>
>
>
> _______________________________________________
> Soekris-tech mailing list
> [email protected]
> http://lists.soekris.com/mailman/listinfo/soekris-tech
--
"There is nothing to worry about" - unknown
_______________________________________________
Soekris-tech mailing list
[email protected]
http://lists.soekris.com/mailman/listinfo/soekris-tech