Is there a minimum delay that must be maintained between two consecutive RS232 frames?
Não, não existe esse requisito (sem min e sem max) no EIA / RS232C.
O bit de início do próximo caractere pode seguir imediatamente o bit de parada de um caractere.
Observe que a linha fica ociosa no estado Marking, que é o mesmo nível do bit de parada.
É interessante que você não faça menção ao bit de parada no quadro de caracteres.
I believe the UART on the computer looses track of the difference between the start bit and a zero. The delay between the two "A" is ~ 30us (measured with a logic analyzer)
Você está usando a ferramenta errada para essa tarefa! Você deveria estar usando um escopo. Você não pode analisar um problema de temporização visualizando uma reprodução sampleada e sanitizada do sinal analógico.
A diferença entre o bit de início e um zero é o tempo. Os quadros de caracteres são transmitidos em uma taxa assíncrona. Mas os bits do quadro precisam ter clock na taxa de clock especificada.
Para a taxa de transmissão de 115200, isso seria 8.68usec para o tempo de 1 bit. Para 8 bits de dados mais um bit de inicialização e um bit de parada, o tempo de estrutura é 86,8usec.
Sua pergunta implica que você não se preocupou em olhar para a especificação EIA / RS232C para tempos mínimos de subida / descida e quando o sinal é tipicamente amostrado. Método interessante para implementar HW.
Talvez você também deva usar um contador de frequência para medir o gerador de taxa de transmissão em cada extremidade. Uma incompatibilidade de alguns por cento geralmente pode ser tolerada. Uma incompatibilidade pode produzir os sintomas que você vê.
Por que os erros de enquadramento não são reportados pelo destinatário? Em vez de apenas observar a saída, talvez você precise revisar as estatísticas da porta serial, ou seja, /proc/tty/driver/...