Re: ttyUSB sendbreak problem

From: Greg KH
Date: Mon Feb 16 2009 - 22:24:02 EST


On Mon, Feb 16, 2009 at 01:29:12PM -1000, Jean-Denis Girard wrote:
> Hi list,
>
> I'm writing a program which communicates via modem with an embedded
> device (electrical network monitoring). The frames are terminated by a
> BREAK.
>
> My program works fine when I use a Cyclades 8Yo multiports card, but
> fails using USB to serial adapters (tried with pl2303 and FTDI
> converters). I suspect that the BREAK are not passed correctly, but I
> don't have equipment to check.

Odd, pl2303 should support break just fine.

> I've tried with:
> tcsendbreak(modem,0);
> ioctl(modem, TCSBRK,0);
> ioctl(modem, TCSBRKP, 0);
>
> From pl2303 debug mode, I see that pl2303_break_ctl is called:
> drivers/usb/serial/pl2303.c: pl2303_break_ctl - port 0
> drivers/usb/serial/pl2303.c: pl2303_break_ctl - turning break on
> drivers/usb/serial/pl2303.c: pl2303_write_bulk_callback - port 0
> drivers/usb/serial/pl2303.c: pl2303_send - port 0
> drivers/usb/serial/pl2303.c: pl2303_break_ctl - port 0
> drivers/usb/serial/pl2303.c: pl2303_break_ctl - turning break off
>
> I found a few references of similar problems in the past, but it was for
> older kernels (I'm using 2.6.28.4), so the question remains: should it
> work or is there a known problem sending BREAK using ttyUSB?

It should work, but your specific device might not support the break
control (some seem to and others don't.) It's a very cheap device.

You might want to try a more expensive device, like the io networks
devices, break on them should work just fine as they have a "real" uart
device within them.

good luck,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/