Serial port failure

Nick Craig-Wood nick at craig-wood.com
Fri Dec 15 13:30:04 EST 2006


Rob <Amateur.N7TZG at gmail.com> wrote:
>  I am fairly new to python, but not programming and embedded.  I am
>  having an issue which I believe is related to the hardware, triggered
>  by the software read I am doing in pySerial.  I am sending a short
>  message to a group of embedded boxes daisy chained via the serial port.
>   When I send a 'global' message, all the connected units should reply
>  with their Id and Ack in this format '0 Ack'

What is to stop all the embedded boxes talking at once?

I suspect that the embedded boxes all taking at once is confusing the
serial port driver.  Maybe it is creating a break condition that it
doesn't deal with properly?  Or perhaps I've misunderstood the
topology!

What sort of flow control are you using?  Could it have got out of
step with XON-XOFF?

Assuming the driver is locking up then it looks like a serial port
driver bug.  In my day job I do a lot of stuff with serial ports and
I've found that drivers vary wildly in quality!

My advice is to try a different serial port hardware.  I've found ones
based on the PL2303 chip to be very reliable both under windows and
linux.

Eg this one :-

  http://www.scan.co.uk/Products/ProductInfo.asp?WebProductID=98192

Or one of these (which were based on PL2303 last time I bought one)

  http://www.comtrol.com/products/catalog.asp?group=usbserialhubs

I don't think anything you can do from python/user-space should be
able to lock up the kernel mode serial driver.  If it does lock up it
is a driver bug.

Here you'll find a little program I wrote which, with the help of a
loopback connector, you can check your serial port out

  http://www.craig-wood.com/nick/pub/cambert.exe

Run the program from a cmd prompt and it will tell you how to use it.

I've broken a lot of serial port drivers with that program ;-)

-- 
Nick Craig-Wood <nick at craig-wood.com> -- http://www.craig-wood.com/nick



More information about the Python-list mailing list