Hi Miguel

uname -a gives

Linux beaglebone 3.8.13 #1 SMP Thu Sep 12 10:27:06 CEST 2013 armv71 
GNU/Linux

UART1 is enabled by 

echo BB-UART1 > /sys/devices/bone_capemgr.*/slots

which makes /dev/ttyO1 appear. I am connecting to that via open( 
"/dev/ttyO1", O_RDWR|O_NOCTTY );

Switching to /dev/ttyUSB0 improved things, but as I said, I only saw 
alternate characters. However when I stopped doing select() and just used 
read(), data was correctly transferred, so I am assuming that there are no 
voltage-level issues.


On Wednesday, 24 September 2014 14:41:11 UTC+1, Miguel Aveiro wrote:
>
>  Well, which kernel are you using? Type "uname -a" on the terminal.
>
> I don't think it is a kernel issue. One thing you did not said on the 
> previously thread is how are you connecting the UART1 to your computer. 
>
> If the code is permanently blocking, and depending how you set up the 
> serial port, this means that no data is received. You need to check the 
> connections and remember that all those pins are 3.3V or you will burn 
> them...
>
> Miguel 
>
> On 24-09-2014 08:42, Julian Gold wrote:
>  
> So I have been trying to write code to read data asynchronously from a 
> serial port. I have tried it with /dev/ttyO1 (using UART1), and also with 
> /dev/ttyUSB0 (using an FTDI USB cable in the USB port).  
>
>  Here is a snippet of code. This fails on both serial ports, but in 
> different manners:
>
>  
>       
>  void readSerial( int fd )
> {
>     fd_set readfs;
>     FD_ZERO( &readfs );
>     FD_SET( fd, &readfs );
>     while( 1 )
>     {
>         select( fd+1, &readfs, 0, 0, 0 );
>         if (FD_ISSET( fd, &readfs ))
>         {
>             char buffer[32];
>             int n = read( fd, buffer, 32 );
>             printf( buffer ); fflush( stdout );
>         }
>      }
> }
>
>   
>  On /dev/ttyO1, the select() call blocks permanently, with no input being 
> acknowledged. On /dev/ttyUSB0, the function prints EVERY OTHER character, 
> so if I type "connect" into my PC terminal program, I will get either 
> "cnet" or "onc" depending on what came before. Either way, it appears 
> select() is broken because if I replace this with
>
>   while((n= read(fd,buffer,32)) > 0)
> {
>    printf(buffer); fflush(stdout);
> }
>  
> Then I get "connect" as expected on /dev/ttyUSB0 (untried as yet on 
> /dev/ttyO1). This seems like a fundamental problem with the Angstrom kernel?
>  -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to beagleboard...@googlegroups.com <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
>  

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to