solved, was Re: serial on neopi neo
Daniel Braniss
danny at cs.huji.ac.il
Fri Feb 9 16:14:55 UTC 2018
> On 9 Feb 2018, at 17:54, Ian Lepore <ian at 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 at cs.huji.ac.il>
>>> wrote:
>>>
>>>
>>>
>>>>
>>>> On 8 Feb 2018, at 17:30, Daniel Braniss <danny at 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 :-)
danny
More information about the freebsd-arm
mailing list