stream
Sep 18 2007, 16:04
Прошивка вся какая-то настолько асинхронная, что живет своей жизнью и просыпается в самые неожиданные моменты - в результате ответы модема непредсказуемо меняются местами и путаются.
Допустим, SMS номер один отсутствует (уже стерто), в наличии есть SMS номер 2. Пробуем читать SMS по порядку в терминалке:
AT+CMGR=1
OK
AT+CMGR=2
+CMGR: 1,,155
0791.... и т.д.
OK
Все нормально, строго по доке.
Теперь делаем то же самое, но быстро - например, повесив эти две команды на хоткеи терминалки и нажимая их с небольшой паузой, или делаем крохотную тестовую программку на управляющем контроллере, которая ждет ответа (OK <cr> <lf>) на первую команду и немедленно посылает вторую:
AT+CMGR=1
OK
AT+CMGR=2
OK
+CMGR: 1,,155
0791....
Обратите внимание, где теперь находится OK, а где текст (+CMGR)! Приплыли. Разумеется, управляющая программа на такой авангард реагирует несколько нервно.
Проверялось на 12-й на 14-й прошивке, поведение аналогичное.
Maxim Kutnyashenko
Sep 18 2007, 17:07
Дык ить не успевает он просто... Пока в симку обратится, пока она передаст... Поэтому я в прошивках после всех команд, задействующих сим, задержку не менее 0,1с делаю и только потом обрабатываю ответ...
stream
Sep 19 2007, 11:21
Тут все несколько хуже - по общепринятому стандарту, да и по самой же симкомовской доке сначала должна выдаваться "содержательная" часть ответа, а потом OK/ERROR и т.п., говорящее об окончании обработки команды. Когда же порядок ответов меняется по желанию левой пятки, совершенно неясно, как обрабатывать - ждать, несмотря на OK, "а вдруг оно все-таки ответит" ? Сколько ждать? Напомню, что при отсутствии SMS в ячейке в ответ на команду чтения приходит голый OK.
Задержку _перед_ командой я, конечно, поставлю, но... как-то криво все это.
Maxim Kutnyashenko
Sep 19 2007, 11:56
Цитата(stream @ Sep 19 2007, 15:21)

Задержку _перед_ командой я, конечно, поставлю, но... как-то криво все это.
Ха... Я вот, когда экспериментировал, пару раз получал ответы от двух последовательных команд в обратном порядке... И ничего... Челюсть подобрал, понял, что без задержек никуда, и больше голову не забиваю...
Maxim Kutnyashenko
Sep 19 2007, 20:06
Кстати, интересно, кто сталкивался с проблемами потери модулем сети через некоторое время непрерывной работы, каким это было время? Я вот думаю, ставить мне ключи на питание или нет, жалко одну ногу контроллера под это отдавать... Тестовая партия из 20 штук на SIM300D с 10 прошивкой проработала непрерывно уже 1,5 месяца и до сих пор глюков не замечено. Может проблема не столько в прошивке, сколько в том же питании, например? Я, в отличие от даташита, поставил не танталовый на 100 мкФ, а LowESR электролит на 1000мкФ непосредственно рядом с модулем. И антенна подключается почти к самим выводам - линия меньше 1 см длиной.
Йокамон
Sep 20 2007, 20:42
задержка ответов - проблема в планировщике. KADAX рулит :-) у меня свои куски под сим писаны - а как работет планировщик - до сих пор не вкурю... по крайней мере блокировок пока не нашел... странно как это несколько апп одновременно в порт не срут.
Perepic
Oct 11 2007, 07:18
А как Вам такое:
Работаем с модемом через GPRS, HTTP-соединение открываем, передаем данные, в ответ ждем того же. Ждем, ждем. Бух, выпадает "CONNECTION CLOSED". Мля, епрст, долго ругаемся, ставим флажок повторить позже, и делаем IPSHUT. И тут на тебе, приезжают данные... После закрытия соединения он мне вываливает 390 байт. Это так китайцы, наверно, думали: лучше поздно, чем никогда.
Я почему говорю про никогда, потому что в режиме "transparent" ответ вообще не приходит. Круто! Кста, гневное письмо, отправленное в евромобайл, с просьбой передать узкоглазым, так и осталось без ответа.
Master of Nature
Oct 11 2007, 09:05
К евромобайлу бесполезно обращаться.
Они сами технической поддержкой не занимаются.
Сам пробовал их допросить.
Толкового ответа так и не получил. И то реакция была только потому (мне кажется) что я им постоянно названивал.
Perepic
Oct 12 2007, 06:31
Цитата(Master of Nature @ Oct 11 2007, 13:05)

К евромобайлу бесполезно обращаться.
Тогда к кому? Узкоглазые на письма упорно не отвечают...
Perepic
Oct 19 2007, 06:28
Сегодня поставили на прогонку уст-во с модемом SIM300. Оно постоянно лезет на сервер по GPRS. Ну и так уж получилось, что сервер сдох. После нескольких попыток модем на комманду AT+CIPSTART долго думал, а потом вдруг потерял сеть. И все. "ОК" или "ERROR" так и не появился. Такое впечатление, что повис. Оператор говорит, что абонент вне сети. Питание в норме, "POWER DOWN" не было. ЧТо за фигня?
CADiLO
Oct 19 2007, 07:25
>>>>>Кстати, интересно, кто сталкивался с проблемами потери модулем сети через некоторое время непрерывной работы, каким это было время? Я вот думаю, ставить мне ключи на питание или нет, жалко одну ногу контроллера под это отдавать...
Эта ошибка признана Симкомом - исправлена в версиях 12 и выше.
с меньшими версиями сеть нужно контролировать и иметь возможность снять питание.
alexey123
Oct 19 2007, 12:37
Цитата(CADiLO @ Oct 19 2007, 11:25)

..... и иметь возможность снять питание.
Я бы добавил, что такую возможность необходимо иметь всегда. И не только с SIM300..
По опыту работы с десятком разных модемов и модулей могу честно сказать, что периодически сбрасывать питание приходится на всех без исключения.
Не дождался RING'а 3 часа - сброс на 10 сек, не смог выйти в GPRS - туда-же..
метод туповатый, зато избавляет от исследований чужих багов.
Цитата(CADiLO @ Oct 19 2007, 11:25)

>>>>>Кстати, интересно, кто сталкивался с проблемами потери модулем сети через некоторое время непрерывной работы, каким это было время? Я вот думаю, ставить мне ключи на питание или нет, жалко одну ногу контроллера под это отдавать...
Эта ошибка признана Симкомом - исправлена в версиях 12 и выше.
с меньшими версиями сеть нужно контролировать и иметь возможность снять питание.
то есть +cfun=0, +cfun=1 недостаточно? и выключения через cpowd тоже?
Цитата(alexey123 @ Oct 19 2007, 15:37)

Я бы добавил, что такую возможность необходимо иметь всегда. И не только с SIM300..
По опыту работы с десятком разных модемов и модулей могу честно сказать, что периодически сбрасывать питание приходится на всех без исключения.
Не дождался RING'а 3 часа - сброс на 10 сек, не смог выйти в GPRS - туда-же..
метод туповатый, зато избавляет от исследований чужих багов.
+1
mikekk
Mar 31 2008, 02:17
Цитата(stream @ Sep 18 2007, 20:04)

Прошивка вся какая-то настолько асинхронная, что живет своей жизнью и просыпается в самые неожиданные моменты - в результате ответы модема непредсказуемо меняются местами и путаются.
Допустим, SMS номер один отсутствует (уже стерто), в наличии есть SMS номер 2. Пробуем читать SMS по порядку в терминалке:
AT+CMGR=1
OK
AT+CMGR=2
+CMGR: 1,,155
0791.... и т.д.
OK
Все нормально, строго по доке.
Теперь делаем то же самое, но быстро - например, повесив эти две команды на хоткеи терминалки и нажимая их с небольшой паузой, или делаем крохотную тестовую программку на управляющем контроллере, которая ждет ответа (OK <cr> <lf>) на первую команду и немедленно посылает вторую:
AT+CMGR=1
OK
AT+CMGR=2
OK
+CMGR: 1,,155
0791....
Обратите внимание, где теперь находится OK, а где текст (+CMGR)! Приплыли. Разумеется, управляющая программа на такой авангард реагирует несколько нервно.
Проверялось на 12-й на 14-й прошивке, поведение аналогичное.
.
Это я поборол таким макаром. Сначала читаю все СМС по CMGL. Ловлю номер первого (фича такая, что их нужно обрабатывать по порядку). Запоминаю номер. Плюс к этому, необходимо узнать номер СМС, для того что-бы его удалить. Потом читаю одно СМС по CMGR по номеру, который поймал и уже его обрабатываю. Для удаления номер беру тот-же. Потом удаляю то СМС что обработал, и повторяю все сначала. Конечно тоже криво, но более лучшего алгоритма придумать не смог.
Цитата(CADiLO @ Oct 19 2007, 11:25)

>>>>>Кстати, интересно, кто сталкивался с проблемами потери модулем сети через некоторое время непрерывной работы, каким это было время? Я вот думаю, ставить мне ключи на питание или нет, жалко одну ногу контроллера под это отдавать...
Эта ошибка признана Симкомом - исправлена в версиях 12 и выше.
с меньшими версиями сеть нужно контролировать и иметь возможность снять питание.
Ты меня убиваешь. У меня достаточно большое количество модулей 10 версии. Снять питание невозможно. Можно только выключть - включить. Батарейка. Может их перепрошить? Подскажешь как? Модули 1008B10SIM300C32_SPANSION
CADiLO
Mar 31 2008, 05:49
>>>>Можно только выключть - включить
Этого вполне достаточно.
Перепрошить тоже без проблем - прошивки и прогу я выкладывал - внимательно смотрим по форуму. Процесс тоже был неоднократно описан.
Vitaliy_ARM
Mar 31 2008, 21:31
Всем доброго времени!
Не хотел плодить тем. Приобрел платку с процессором и модемом SIM300 (1008B10SIM300M32_SPANSION). Не получается запустить.
После включения подаю импульс включения. Модем заводится, находит сеть (смотрю по светодиоду).
Но как написано в руководстве по быстрому старту ответов от него, типа
RDY
+CFUN:1
нет.
При попытке дозвониться, дергается ножка Ring и идет гудок. И на выходе модема ничего нет.
(Если я правильно понял, должно быть: RING RING RING). Подозреваю, что модем находится в другом режиме.
Помогите его победить
Ответов типа
RDY
+CFUN:1
не будет если модем стоит в автоопределении скорости
переводим его в нужную фиксированую - например 115200
AT ( - синхронизируется)
AT
- OK (- ответ модема)
AT&F (поставить заводские настройки)
AT+IPR=115200 (поставить фиксированую скорость 115200)
- OK
AT&W (запомнить настройки)
- OK
выключаем, включаем и видим ответы, и работаем на фиксированой скорости.
Цитата(mikekk @ Mar 31 2008, 05:17)

.
Ты меня убиваешь. У меня достаточно большое количество модулей 10 версии. Снять питание невозможно. Можно только выключть - включить. Батарейка. Может их перепрошить? Подскажешь как? Модули 1008B10SIM300C32_SPANSION
А у меня эти модули (тьфу-тьфу-тьфу )работают месяцами без перезагрузки и вроде всё ОК, а вот которые на ССТ там говорят не всё так хорошо.
Цитата(stream @ Sep 18 2007, 19:04)

Прошивка вся какая-то настолько асинхронная, что живет своей жизнью и просыпается в самые неожиданные моменты - в результате ответы модема непредсказуемо меняются местами и путаются.
Это точно! Вот пример, на который я сразу налетел. Модем SIM300Z - 1008B15
При включении модема без сим-карты и с ней порядок ответов различный.
Без сим-карты:
RDY
+CPIN not inserted
+CFUN:1
С сим-картой:
RDY
+CFUN:1
+CPIN READY
Так что вполне возможно, что с различными симками порядок ответов тоже будем различный.
Цитата(alexey123 @ Oct 19 2007, 15:37)

По опыту работы с десятком разных модемов и модулей могу честно сказать, что периодически сбрасывать питание приходится на всех без исключения.
Как раз на днях удалось подвесить вышеупомянутый модуль прямо "на столе".
Игрался с ручной подачей команд, и после какой-то последовательности команд модуль стал странно отвечать. Но отвечал! Попытки выключить его при помощи PWRKEY успеха не поимели (сигнал выключения на модуле был - проверял осциллом прямо на модуле). После подачи команды AT+CPOWD=1 окончательно затих и COM-порт модуля, но модуль не выключился.
Помогло только передергивание питания
Alex_TAV
Apr 3 2008, 04:34
Один блок после долгой работы, в очередной раз отказался регистрироватся в сети GPRS , т.е. включение блока проходит , есть "Call Ready" и на все команды инициализации приходят ответы "Ok", а вот на команду AT+CIPSTART отвечает Error - прошивка 13 на SST - прошивка целая, считал - верификацию проходит.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.