Добрый день. Столкнулся вот с какой проблемой.
Есть модем GE863-GPS который управляется atmega128 и инициализированный на работу через CMUX сразу по 3м виртуальным каналам.
Все АТ-команды исполняются нормально кроме команд связанных с работой с соккетами (SD, SKTD).
При подаче например команды SD=1,0,80,"www.google.com" модем выдаёт в виртуальный канал CONNECT и на этом не останавливается - бывает выдаёт этот CONNECT постоянно (пока вся плата не перезагрузится из-за переполнения фифо-уарт). Бывает также что следующая команда после подачи SD выдаёт ERROR и этот ERROR валит в порт постоянно, или NO CARRIER.
Для общения с модемом используется уарт atmega128 и линии DTR/RTS/CTS причём DTR/RTS постоянно установлены в 0 а CTS вообще не используется. Для каждого из виртуальных каналов DTR/RTS установлены в состояние готовности (без их установки модем соединялся с сервером но в порт вообще ничего не выдавал т.е. небыло CONNECT/NO CARRIER).
Есть плата на которой подобный модем соединён с ftdi и на которую пробовал подавать аналогичные команды с обычного терминала через TelitSerialPortMux. Так там всё работает правильно - после SD выдаётся один CONNECT (а не множество как у меня) и один NO CARRIER даже если по другим каналам передавать какие-либо команды.
Подскажите что это может быть? Куда копать? Складывается ощущение что модем выдаёт ответ на последнюю команду много раз.
Буду благодарен за любые идеи по этому вопросу.