I am using an ATMEL embedded controller (at91sam9x25e) and its serial port to send/receive over RS485 Modbus RTU. Normal communication works fine, but sometimes - when writing - some packages are splitted with an delay from about 3.5ms between two characters within a message and are therefore detected as new message.

Settings:

* Mono 3.2.8
* Modbus RTU 19.2 kBaud
* RS485
* Auto-RTS

I am sending the whole package at once:

```
try  
{
  Thread.Sleep(_timePreSend);
  _serialPort.Write(buffer, offset, count);
} catch(Exception err)
{
   log.Error(err.Message);
} finally
{
   Thread.Sleep(2);
}

```

I used the 2 ms before, when I was Enabling/Disabling RTS manually, so that It transmitted the last bits from buffer (UART or FIFO).

Capture from oscillosope:

> 
> 120318000100020032000403200000001C000500000000000000003D <- gap -> B6
> 
> 
> 

[![Modbus Message](https://i.stack.imgur.com/dqc2S.png)](https://i.stack.imgur.com/dqc2S.png)

Output from stty:

```
stty -F /dev/ttyS4 -a
speed 19200 baud; rows 0; columns 0; line = 0;    
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl    -ixon  -ixoff
-iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt
 echoctl echoke

```

**What could be the reason for this gap? What can I do to avoid it?**