|
Telit GL868 "Зависает" в мультиплексном режиме при включенном DTMF декодере. |
|
|
|
Mar 27 2012, 09:26
|
Знающий
   
Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954

|
Берем модуль, заводим его в мультиплексный режим(AT+CMUX=0) и включаем DTMF декодер(AT#DTMF=1), устанавливаем связь. После чего по одному из каналов начинаем "заваливать" модуль командами, через каое-то время модуль перестает отвечать на команды, причем по всем каналам. После прекращения "долбежки" работоспособность модуля, через некоторое, время восстанавливается. При отключенном DTMF деодере проблема отсутствует. Лог приведен ниже. PS Подавать команды каждые 100мсек, как в примере, необязательно, можно и 1 раз в сек, просто в этом случае ждать прийдется долго. CODE 97838 ch2 ->gsm AT+CLVL=14 97858 ch2 <-gsm: OK 97878 ch2 ->gsm AT#SHFSD=0 97900 ch2 <-gsm: OK 97920 ch2 ->gsm AT#CPUMODE=1 97942 ch2 <-gsm: OK 97962 ch2 ->gsm AT#DTMF=1 97988 ch2 <-gsm: OK 98008 ch2 ->gsm ATDxxxxxxxx; 100112 ch2 <-gsm: #ECAM: 0,1,1,,,"xxxxxxxx",129 110156 ch2 <-gsm: #ECAM: 0,2,1,,, 110158 ch2 <-gsm: OK 117640 ch2 <-gsm: #ECAM: 0,3,1,,, 123652 ch2 ->gsm AT+CLCC 123674 ch2 <-gsm: +CLCC: 1,0,0,0,0,"xxxxxxxx",129,"" 123677 ch2 <-gsm: OK 123697 ch2 ->gsm AT+CLVL=12 123713 ch2 <-gsm: OK 123733 ch2 ->gsm AT#SHFSD=0 123751 ch2 <-gsm: OK 127263 ch2 ->gsm AT+CLCC 127284 ch2 <-gsm: +CLCC: 1,0,0,0,0,"xxxxxxxx",129,"" 127291 ch2 <-gsm: OK 129798 ch2 ->gsm AT+CLCC 129822 ch2 <-gsm: +CLCC: 1,0,0,0,0,"xxxxxxxx",129,"" 129827 ch2 <-gsm: OK 132834 ch2 ->gsm AT+CLCC 132858 ch2 <-gsm: +CLCC: 1,0,0,0,0,"xxxxxxxx",129,"" 132863 ch2 <-gsm: OK 134032 ch1 <-gsm AT+CSQ 134033 ch1 <-gsm +CSQ: 13,0 134033 ch1 <-gsm OK 134127 ch1 ->gsm AT+CSQ 134177 ch1 <-gsm AT+CSQ 134177 ch1 <-gsm +CSQ: 13,0 134178 ch1 <-gsm OK 134227 ch1 ->gsm AT+CSQ 134277 ch1 <-gsm AT+CSQ 134278 ch1 <-gsm +CSQ: 13,0 134278 ch1 <-gsm OK 134334 ch1 ->gsm AT+CSQ 134441 ch1 ->gsm AT+CSQ 134542 ch1 ->gsm AT+CSQ 134642 ch1 ->gsm AT+CSQ 134743 ch1 ->gsm AT+CSQ 134844 ch1 ->gsm AT+CSQ 134944 ch1 ->gsm AT+CSQ 135045 ch1 ->gsm AT+CSQ 135146 ch1 ->gsm AT+CSQ 135247 ch1 ->gsm AT+CSQ 135348 ch1 ->gsm AT+CSQ 135449 ch1 ->gsm AT+CSQ 135550 ch1 ->gsm AT+CSQ 135651 ch1 ->gsm AT+CSQ 135752 ch1 ->gsm AT+CSQ 135853 ch1 ->gsm AT+CSQ
|
|
|
|
|
 |
Ответов
|
Mar 27 2012, 12:00
|

Знающий
   
Группа: Свой
Сообщений: 567
Регистрация: 19-01-11
Из: СПб
Пользователь №: 62 326

|
Цитата(=F8= @ Mar 27 2012, 13:26)  Берем модуль, заводим его в мультиплексный режим(AT+CMUX=0) и включаем DTMF декодер(AT#DTMF=1), устанавливаем связь. После чего по одному из каналов начинаем "заваливать" модуль командами, через каое-то время модуль перестает отвечать на команды, причем по всем каналам. После прекращения "долбежки" работоспособность модуля, через некоторое, время восстанавливается. При отключенном DTMF деодере проблема отсутствует. Лог приведен ниже. PS Подавать команды каждые 100мсек, как в примере, необязательно, можно и 1 раз в сек, просто в этом случае ждать прийдется долго. Какая версия прошивки? Другие команды, кроме +CSQ, пробовали подавать? Вообще говоря, надо дожидаться ответа на +CSQ, а не кидать новые. Более того, рекомендуется делать паузу как минимум 20 мс после получения ответа на команду. The chain Command -> Response shall always be respected and a new command must not be issued before the module has terminated all the sending of its response result code (whatever it may be). This applies especially to applications that ”sense” the OK text and therefore may send the next command before the complete code <CR><LF>OK<CR><LF> is sent by the module. It is advisable anyway to wait for at least 20ms between the end of the reception of the response and the issue of the next AT command. If the response codes are disabled and therefore the module does not report any response to the command, then at least the 20ms pause time shall be respected. During command mode, due to hardware limitations, under severe CPU load the serial port can loose some characters if placed in autobauding at high speeds. Therefore if you encounter this problem fix the baud rate with +IPR command.
Сообщение отредактировал molecul - Mar 27 2012, 12:18
|
|
|
|
|
Mar 27 2012, 15:20
|
Группа: Новичок
Сообщений: 5
Регистрация: 24-08-11
Пользователь №: 66 852

|
Та же фича замечена с GL868 в них правда такая прошивка: 10.00.184-B006
Опрос AT+CLCC идет правда с интервалом 5 секунд. Интервал отсчитывается после приема OK на эту команду. Иногда ответа на команду просто небыло (на всякий случай был таймаут на ожидание "OK" - 30 сек).
С AT+CHUP тоже чудеса, толи в доке таймаут с ATH перепутан, толи еще что, но в течении 10 сек ответа периодически не получал и выдавал еще 2 раза повторно AT+CHUP. Потом, через 30-40 сек прилетала пачка "OK".
Выставил AT#DTMF=0 - все вроде нормально стало.
|
|
|
|
|
Mar 28 2012, 13:47
|

Знающий
   
Группа: Свой
Сообщений: 567
Регистрация: 19-01-11
Из: СПб
Пользователь №: 62 326

|
Цитата(ys1797 @ Mar 27 2012, 19:20)  Выставил AT#DTMF=0 - все вроде нормально стало. Можете уточнить последовательность: 1. Включаем CMUX 2. Активируем DTMF 3. Имеем глюк 4. Деактивируем DTMF, CMUX по-прежнему работает 5. Глюк пропадает Так? Если последовательность другая, сообщите пожалуйста.
|
|
|
|
|
Mar 30 2012, 09:18
|
Группа: Новичок
Сообщений: 5
Регистрация: 24-08-11
Пользователь №: 66 852

|
Цитата(molecul @ Mar 28 2012, 17:47)  Можете уточнить последовательность: 1. Сначало hard Reset согласно pdf 2. Первичная инициализация "AT+CFUN=1,0" , "ATE0V1", "AT+IPR=57600" 3. Включаем CMUX 4. Открываем каналы. 5. Инициализация каналов (ничего там такого особенного нет в ней) 6. Активируем DTMF 7. Имеем глюк Глюк пропадает, если убираем (6).
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|