Date: Fri, 9 Feb 2018 18:14:42 +0200 From: Daniel Braniss <danny@cs.huji.ac.il> To: Ian Lepore <ian@freebsd.org> Cc: "freebsd-arm@freebsd.org" <arm@freebsd.org> Subject: Re: solved, was Re: serial on neopi neo Message-ID: <F5F9D109-7CDB-40B0-94C2-AA675ACDF834@cs.huji.ac.il> In-Reply-To: <1518191674.32585.136.camel@freebsd.org> References: <0291231B-F939-4EB9-BD20-AD32B8E768D2@cs.huji.ac.il> <D092D702-D0C8-431F-A727-27674FF5E7AB@cs.huji.ac.il> <421A858F-AC30-4BE5-8641-E7C8DDDA0493@cs.huji.ac.il> <1518191674.32585.136.camel@freebsd.org>
index | next in thread | previous in thread | raw e-mail
> On 9 Feb 2018, at 17:54, Ian Lepore <ian@freebsd.org> wrote: > > On Fri, 2018-02-09 at 12:28 +0200, Daniel Braniss wrote: >> >>> >>> On 9 Feb 2018, at 12:02, Daniel Braniss <danny@cs.huji.ac.il> >>> wrote: >>> >>> >>> >>>> >>>> On 8 Feb 2018, at 17:30, Daniel Braniss <danny@cs.huji.ac.il> >>>> wrote: >>>> >>>> hi, >>>> after fiddling with the dts file (with the help from Milo), I got >>>> 2 serial ports to work(apart from the /dev/ttyu0), >>>> but not together! ie, if i try each one individually all is ok, >>>> but once I open both of them, only >>>> /dev/ttyu1 works, /dev/ttyu2 hangs (i have yet to see if its the >>>> output or input) >>>> >>>> any ideas? >>> I have! >>> >>> I’m using the ‘what i thought’ unused pins (CTS/RTS) to drive some >>> leds! >>> >>> I do set, via tcsetattr(3) to ignore these (ie no modem, no flow >>> control) but it seems the driver is ignoring this. >>> how can I tell the serial/uart to ignore them? >> was sent out too early! >> >> doing a cfmakeraw(3) is what screwed me up! >> now all is ok! > > That's strange, because I was about to reply to the prior mail > suggesting you start with a cfmakeraw() before tcsetattr(). I always > start with makeraw then set just the things I want, like: > > tcgetattr(fd, &t); > cfmakeraw(&t); > t.c_iflag &= ~(IXON | IXOFF | IXANY); > t.c_cflag &= ~(PARENB | CSTOPB | CSIZE | CRTSCTS); > t.c_cflag |= CLOCAL | CREAD | CS8; > cfsetspeed(&t, whatever); > tcwriteattr(fd, TCSANOW, &t); > > -- Ian thats what I had, but did not clear the CRTSCTS, so what I do now, without the tcgetattr, and just set what I need bzero(&t, sizeof(t)); t.c_flag = CS8 | CLOCAL | CREAD; t.c_iflag = IGNPAR; cfsetspeed(…) tcsetattr(fd, TCSANOW, &t); actually it was the tcgetattr and not really the cfmakeraw :-) dannyhelp
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F5F9D109-7CDB-40B0-94C2-AA675ACDF834>
