Как-то все запамятвовали, что написал ТС про RS232 (В нижней части своего сообщения, и надеюсь никого не удивит, что можно и без UART работать по 232?).
И в общем его предположение верное.
На его картинке это хорошо видно.
Возможно не все пригляделись к ней.
Выделил интересные моменты 19-го фрейма, касательные логической "1".
Уверен, что у ТС много такого есть.
Смотрим:
Красные круги - лаги (внутри них и смотрите).
Голубые овалы - завалы.
Интересно, что красные круги находятся в пограничной зоне страндарта 232.
Напоминаю, по стандарту зона от +3В до -3В - не детектируемая зона, т.е. не учитывается и отбрасывается.
Примерно там, где красный прямоугольник.
На самом деле и "0" имеет лаги, просто их меньше (приглядитесь на оригинальной картинке).
Максималка по стандарту от +25В до -25В (т.е. 50В амплитуды).
Раньше видел реальные девайсы на 48В, спокойно пробивают на 500-600 метров. Не суть.
Реально думаю, что самое простое в этой схеме применить FT232, как упоминал Дмитрий.
Выше писал, что работает одно из трех - то, которое работает как раз на FT232.
Лапша в таких соединениях не применяется никогда, только витая пара.
Раскрутите любой кабель для RS-232 на 25 метров или более, сами увидите.
Самое простое (как мне представляется) для ТС, в текущем случае, поменять конвертор на FT232.
Не настолько дорого он стоит, просто в магазине все про это забывают.
(Ну я по крайней мере точно, хотя не первый раз сталкиваюсь)
(Оффтоп)
Для тех у кого нет времени читать про протокол 232, повторяю, что есть в стандарте:
Electrical Characteristics
The EIA-232-E standard prescribes polar-voltage
serial data transmission between communicating
devices. On data interchange circuits,
transmitted data is represented by the
"Marking" condition for binary one and the
"Spacing" condition for binary zero. A data signal
on an interchange circuit is in the Marking
condition when the voltage at the interface point
is more negative than -3 volts with respect to
Signal Ground (Circuit AB). When the data signal
at the interface point is more positive than +3
volts, with respect to Signal Ground, the data
signal is in the Spacing condition. The area between -3 and +3
volts is the transition region; the signal state is not dermed in the
transition region.
On timing or control interchange circuits, the function is considered
OFF when the voltage at the interface point is more negative
than -3 volts, with respect to Signal Ground. It is considered
ON if the voltage at the interface point is more positive than +3
volts, with respect to Signal Ground. The function is not dermed
for voltages in the transition region between -3 and +3 volts.
Mandatory Interchange Circuit conditions are as follows (see figure
1):
• Open circuit generator voltage, with respect to Signal Ground,
must not exceed 25 volts with respect to ground.
• The potential at the interface point must not be less than 5 volts
nor more than 15 volts in magnitude when the receiver resistance
is between 3000 and 7000 ohms, and the receiver open
voltage is O.
• The effective shunt capacitance associated with the receiver
must not exceed 2500 picofarads at the interface point.
• The open circuit receiver voltage must not exceed 2 volts.
• Request to Send (Circuit CA), DCE Ready (Circuit CC), DTE
Ready (Circuit CD), and Secondary Request to Send (Circuit
SCA), where implemented, are used to detect the power-off
condition or the disconnection of the interconnecting cable.