В устройстве использую модуль q2406b от wavecom. Программу для него пишу с использованием OpenAT.

Модуль инициализируется в качестве TCP-сервера. Порт UART1 модуля конфигурирую в DATA MODE. Удаленно (в качестве TCP-клиента) подключаюсь к модулю и обмениваюсь данными с устройством, используя порт UART1 модуля.

При интенсивной передаче данных по UART1 (когда данные не успевают уходить к TCP-клиенту и модуль выставляет сигнал CTS) возникает следующая проблема - передача данных "зависает", т.е. с одной стороны стоит CTS, а с другой - не освобождаются приемные буфера ("credits") самого модуля (вроде как данные не уходят к TCP-клиенту). Но даже при попытке освободить все буфера по команде adl_fcmReleaseCredits(Uart, 0xFF) ничего не меняется - CTS так и не снимается. Таким образом, модуль отвечает на команды (если они не требуют передачи по UART1), можно разорвать TCP-соединение, потом установить заново и т.п., но вот передача данных через UART1 уже не происходит. Если передернуть питание устройства, то опять все работает, пока не начинается интенсивный обмен (причем иногда и при интенсивном обмене все проходит без "зависаний").

Если кто работал в данном направлении, помогите свежими мыслями smile.gif