Добрый день.
Являюсь обладателем GSM-модемов M590E, SIM800L, которые управляются посредством AT команд через UART.
Столкнулся с проблемой многократного дублирования команд и ответов команд при работе с Linux. В Винде работает без нареканий. Пример:
at
OK
at+csq
+CSQ: 23,0
OK
В Linux получаю бесконечное повторение введенной команды:
at+csq
+CSQ: 22,0
OK
at+csq
+CSQ: 22,0
OK
+CSQ: 22,0
Когда я раньше работал с модемом, я давал, например, команду echo -e 'AT\x0D' > /dev/ttyS1
. Без явного указания перевода строки \x0D модем команду не воспринимал, \n не подходило. Сейчас же принимает любой набор символов без символов перевода каретки или переноса строки. Так выглядит ошибочная команда:
echo -e 'attatatat' > /dev/ttyS1
. Похоже на то, что сама консоль подставляет в выдачу символ \x0D
attatatat
attatatat
attatatat
attatatat
...
attatatat
ERROR
attatatat
ERROR
ERROR
attatatat
ERROR
ERROR
Что я проверил:
-Питания всем устройствам хватает, просадки отсутствуют.
-Проверял на разных и абсолютно новых модемах.
-Разные устройства (ПК, ноут, Orange Pi Zero).
-Разные ОС (Ubuntu 18.04, различные сборки Armbian).
-На OPi Zero разные интерфейсы UART + USB ttl converter.
-Короткое замыкание между RX и TX отсутствует.
-Уровни UART согласованы.
-Скорости везде одинаковые, =9600 бод (на других скоростях картина не меняется.
Помогите пожалуйста решить проблему.