missing characters at 9600 baud

I have a BL4S100 board that send messages via RS232 and then receives a response via RS232. The message size is between 10 and 80 characters.

The send message is always correct, but …
at 9600 baud (or higher) i noticed that in the received response message a character is missing sometimes. At lower speed (4800) the message is received correctly.

The serial buffers have a size of 127 bytes, that should be large enough.

From the documentation i understand that the rabbit board support much higher baudrates than 9600.
Can anyone give me a clue what is going wrong?

thanks for any response,

1 Like

Hi Pete,

One thing which may impact on serial comms is the use of interrupts for other purposes or use of code which disables interrupts. If the serial comms interrupts are blocked for too long a period you may see dropped characters.

The BL4S100 has the option of 1 x 5 wire RS232 via port D or 2 x 3 wire RS232 using port D and port F. If you can live with a 3 wire interface use port F as it has 4 byte input buffering in hardware whereas port D has only 1 byte of buffering. This makes port F much less prone to dropping characters.

Having said that I’ve managed to get the Dynamic C BACnet stack working fairly reliably at 38,400bps on port D using an RCM5700 which has a higher clock speed but more wait states than the BL4S100. Reliable operation at 76,800 bps required using serial port E which also has 4 byte buffers.

Regards,
Peter Mc Shane

Hi Peter,

Thanks for your response. My program continually reads all digital inputs. Is this what you mean by “interrupts for other purposes”?

When at least one input is changed it sends a serial message and then receives serial response characters until a linefeed
character is received. For the serial communication a 3 wire cable is used. I will use port F and see whether it makes any differences.

kind regards,
Pete