Serial port failure

Rob Amateur.N7TZG at gmail.com
Fri Dec 15 17:06:42 EST 2006


Craig,

In the embedded firmware, the each box re-transmits after it finishes
reading the packet.  This is a very rudimentary system, and uses no
flow control.  The topology is that each embedded box has a master and
a slave port.  The master is used to receive data from the upstream
box, and send acks or naks back to the upstream box.  The slave is
connected to the master of the next downstream box.

Does that clear up the picture a little bit?

Rob

On Dec 15, 11:30 am, Nick Craig-Wood <n... at craig-wood.com> wrote:
> Rob <Amateur.N7... 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 <n... at craig-wood.com> --http://www.craig-wood.com/nick




More information about the Python-list mailing list