Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900 НАВЕРНОЕ НЕПРАВИЛЬНО
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2
Дмитрий2212
По моему неправильно работает ответ на команду AT+CPAS.
1 Даю команду ATD>1; и не поднимаю трубку на телефоне куда делаю вызов.
2 На команду AT+CPAS модуль отвечает 4 (хотя должен 3 СИМ300Д отвечал именно так)
3 При соединении ответ тоже 4
Версия прошивки 7
rx3apf
Цитата(Дмитрий2212 @ Jan 11 2011, 19:58) *
По моему неправильно работает ответ на команду AT+CPAS.
1 Даю команду ATD>1; и не поднимаю трубку на телефоне куда делаю вызов.
2 На команду AT+CPAS модуль отвечает 4 (хотя должен 3 СИМ300Д отвечал именно так)
3 При соединении ответ тоже 4
Версия прошивки 7

3 - "Ringing" (входящий вызов)
4 - "Call in progress" (выполняется исходящий вызов).
Все логично. Странно, если в этой ситуации у SIM300 было 3...
Дмитрий2212
Может неправильно выразился.

Подаю команды ATE0,ATV0
При входящем звонке ответ на AT+CPAS---->2 (так у СИМ300Д)
Режим дозвона ответ на AT+CPAS---->3 (так у СИМ300Д)
При соединении ответ на AT+CPAS---->4 (так у СИМ300Д)
ssokol
Цитата(Дмитрий2212 @ Jan 11 2011, 19:58) *
По моему неправильно работает ответ на команду AT+CPAS.
1 Даю команду ATD>1; и не поднимаю трубку на телефоне куда делаю вызов.
2 На команду AT+CPAS модуль отвечает 4 (хотя должен 3 СИМ300Д отвечал именно так)
3 При соединении ответ тоже 4
Версия прошивки 7

а по-моему все правильно, см описание команд.
Дмитрий2212
Опять неправильно

Подаю команды ATE0,ATV0
При входящем модуль присылает в порт---->2 (так у СИМ300Д)
Режим дозвона ответ на AT+CPAS---->3 (так у СИМ300Д)
При соединении ответ на AT+CPAS---->4 (так у СИМ300Д)

СИМ300Д работал именно так как описал . Не один прибор на нем собрал.Пытаюсь перейти на 900.
Когда отключить Эхо и задать ответы в виде цифр ответы от модуля в 300 именно такие были
2 ----Входящий звонок
3--- Режим дозвона когда абонент еще не снял трубку
4 -- В режиме соединения
и СИМ300CZ такие же ответы давал. На макетной плате делал на 300CZ потом разводил под 300д без исправления программы и все работает!
rx3apf
Цитата(Дмитрий2212 @ Jan 11 2011, 20:37) *
2 ----Входящий звонок

Это противоречит описанию AT-команд для SIM300.
Дмитрий2212
Не знаю учился по книге АТ команд на русском языке.Теория подтверждалась практикой.Все совпадало.Повторяю СИМ 300Д давал такие ответы.
Как мне определить когда идет дозвон а когда абонент поднял трубку?
ssokol
Цитата(Дмитрий2212 @ Jan 11 2011, 21:18) *
Не знаю учился по книге АТ команд на русском языке.Теория подтверждалась практикой.Все совпадало.Повторяю СИМ 300Д давал такие ответы.
Как мне определить когда идет дозвон а когда абонент поднял трубку?

есть очень сильно засекреченая команда at+CLCC, только больше про нее никому ни слова ;-)))
Дмитрий2212
БОЛЬШЕ НИКОМУ НЕ СКАЖУ.Вопрос не в том. Работает не так как 300Д.По моему это называется результирующий код.Блин ну поправте меня если не прав.Всегда проверял статус устройства командой AT+CPAS. В режиме дозвона модуль отвечал --3,в режиме соединения---4
13amator
AT+CPAS
+CPAS: 0
Модем зарегистрирован в сети.
OK

RING
AT+CPAS
+CPAS: 3
Входящий звонок
OK

RING

NO CARRIER

RING
ATA
OK
AT+CPAS
+CPAS: 4
Установлено соединение
OK

NO CARRIER
.
СИМ 900 2 версия
ssokol
Цитата(Дмитрий2212 @ Jan 11 2011, 22:14) *
БОЛЬШЕ НИКОМУ НЕ СКАЖУ.Вопрос не в том. Работает не так как 300Д.По моему это называется результирующий код.Блин ну поправте меня если не прав.Всегда проверял статус устройства командой AT+CPAS. В режиме дозвона модуль отвечал --3,в режиме соединения---4

Может на какой прошивке так и было , но это не правитльно.
Из своего опыта скажу, что такое вы могли видеть на сотовике сименс с62, это я запомнил, т.к. на этом прокололся. А так - забейте на правила, как на них забивают производители, где даже команды из спецификации GSM работают у всех по-разному.
printline
Цитата(13amator @ Jan 12 2011, 03:40) *
AT+CPAS
+CPAS: 0
Модем зарегистрирован в сети.
OK

RING
AT+CPAS
+CPAS: 3
Входящий звонок
OK

RING

NO CARRIER

RING
ATA
OK
AT+CPAS
+CPAS: 4
Установлено соединение
OK

NO CARRIER
.
СИМ 900 2 версия


Проверил. То же самое на SIM300D, факт. Но сам пользуюсь CLCC
Дмитрий2212
ВОТ ВОТ.Придется перибирать программу.Обидно .
CADiLO
все банально просто - достаточно открыть ITU0707-700 и посмотреть статусы для команд.

CPAS
Implementation: Mandatory when ME can be operated from TE (refer subclause "Mobile Equipment control mode +CMEC").

То есть как будет отрабатывать CPAS задается в команде CMEC. Но весь фокус в том что CMEC актуально только для устройств где есть индикатор и клавиатура. Так как перенаправляет результат от CPAS для работы с клавиатурой и индикацией.
Кроме того из опыта могу сказать, что еще когда вместо модуля в сотовые мосты ставили Ericsson A1018, то там CPAS тоже неправильно работал.

Для модулей по M2M стандарту рекомендовано использовать дополнительную, но более информативную команду

CLCC Implementation: Optional. Recommended when +CHLD command is implemented.


Description:
Returns list of current calls of ME. If command succeeds but no calls are available, no information response is sent to TE.
Refer subclause 9.2 for possible <err> values.
Defined values

<idx>: integer type; call identification number as described in GSM 02.30 [19] subclause 4.5.5.1;
this number can be used in +CHLD command operations

<dir>:
0 mobile originated (MO) call
1 mobile terminated (MT) call

<stat> (state of the call):
0 active
1 held
2 dialing (MO call)
3 alerting (MO call)
4 incoming (MT call)
5 waiting (MT call)

<mode> (bearer/teleservice):
0 voice
1 data
2 fax
3 voice followed by data, voice mode
4 alternating voice/data, voice mode
5 alternating voice/fax, voice mode
6 voice followed by data, data mode
7 alternating voice/data, data mode
8 alternating voice/fax, fax mode
9 unknown

<mpty>:
0 call is not one of multiparty (conference) call parties
1 call is one of multiparty (conference) call parties

<number>: string type phone number in format specified by <type>

<type>: type of address octet in integer format (refer GSM 04.08 [8] subclause 10.5.4.7)

<alpha>: string type alphanumeric representation of <number> corresponding to the entry found in phonebook;
used character set should be the one selected with command Select TE Character Set +CSCS
grinux
Новую тему создавать не стал, пишу сюда.
На SIM300 всегда передавал данные в командном режиме(кто бы что не говорил, а все работает без глюков)
Код
AT+CIPSPRT=0
OK
.....
CONNECT OK
AT+CIPSEND=4
test
SEND OK
.

Проблема в том, что на SIM900 для того, чтобы он передал данные, нужна задержка после команды CIPSEND и собственно данными!
Пока 500мс поставил, работает, но это никуда не годится!

Вопрос к Cadilo, можете ли вы проверить это на 7-й прошивке?
Скорость порта 115200. autobaud отключен.
rx3apf
Цитата(grinux @ Jan 24 2011, 00:13) *
Проблема в том, что на SIM900 для того, чтобы он передал данные, нужна задержка после команды CIPSEND и собственно данными!
Пока 500мс поставил, работает, но это никуда не годится!

А промптера (">") дождались ?
grinux
Цитата(rx3apf @ Jan 24 2011, 00:29) *
А промптера (">") дождались ?


AT+CIPSPRT=0;
CADiLO
Передавать данные не дождавшись приглашения не есть правильно.
Стек другой чем был в 300-й серии и ориентироваться на временные задержки ну никак нельзя.
Дождались ">" и отправляем данные. Спешка в этом случае вредна - а если оператор выставил "занято"
и не готов от вас принимать ? Будете в никуда отправлять ?
grinux
Цитата(CADiLO @ Jan 24 2011, 10:18) *
Передавать данные не дождавшись приглашения не есть правильно.
Стек другой чем был в 300-й серии и ориентироваться на временные задержки ну никак нельзя.
Дождались ">" и отправляем данные. Спешка в этом случае вредна - а если оператор выставил "занято"
и не готов от вас принимать ? Будете в никуда отправлять ?


Какая спешка, вы о чем?

Приглашение отключено командой CIPSPRT.

Вот именно, что зажержки неуместны коли выбран режим работы без ">".
av-master
Цитата
Вот именно, что зажержки неуместны коли выбран режим работы без ">".
а вчем собственно выигрыш?
неуместные задержки и GPRS - это несоместимые понятия. сама сеть может до минуты тормозить в ЧНН.
grinux
Цитата(av-master @ Jan 24 2011, 12:39) *
а вчем собственно выигрыш?
неуместные задержки и GPRS - это несоместимые понятия. сама сеть может до минуты тормозить в ЧНН.


Я сейчас не о выигрыше, и не о совместимости понятий, а о соответствии реальной работы и документации.
Должно работать, и работало на SIM300:

AT+CIPSEND=4<CR><LF>test

на SIM900 работает, только если

AT+CIPSEND=4<CR><LF><delay>test

Если задержку не делать то теряются все данные, вне зависимости от размера, модем молчит и отправляет 4 байта команды обработки таймаута передачи, в моем случае AT+CIPLOSE. Т.е. удаленная сторона вместо test получает AT+C.
CADiLO
Если джип проехал по луже, то это не значет что там не утонет запорожец.
Я уже написал что стек совершенно другой и ровняться на то как было в 300-м не нужно.
Нужно делать правильно - дождаться приглашения и передавать данные.
А не отключать признак готовности и потом думать "а куда ж оно передалось"
Может в 300-м буфер по другому работал - не задумывались?
И модуль не передавал сразу данные, а проглатывал и отдавал в эфир по готовности оператора.

Так вот для любителей не читать документацию- AN_SIM900_TCPIP_V1.01.pdf

Note[2]: You should write data ONLY AFTER the promoting mark ”>” ,and then use CTRL+Z to send.
You can use command ”AT+CIPSPRT” to set whether echo promote ”>” after issuing ”AT+CIPSEND”.

Данные передавать ТОЛЬКО ПОСЛЕ появления ">"
Aurochs
Цитата(CADiLO @ Jan 24 2011, 09:18) *
Передавать данные не дождавшись приглашения не есть правильно.
Стек другой чем был в 300-й серии и ориентироваться на временные задержки ну никак нельзя.
Дождались ">" и отправляем данные. Спешка в этом случае вредна

Спешка действительно вредна, а вот повысить скорость работы не помешает. И ожидание подсказки НЕ ДОЛЖНО БЫТЬ ОБЯЗАТЕЛЬНЫМ. Это снижает скорость отправки данных, особенно если отправляющий контроллер из-за загруженности не может быстро реагировать на реплики модема.
Цитата(CADiLO @ Jan 24 2011, 09:18) *
а если оператор выставил "занято"
и не готов от вас принимать ? Будете в никуда отправлять ?

Дык достаточно в таком случае SEND FAIL вернуть - и все будут довольны.

Так что Эдуард, пишите, пожалуйста, по этому делу баг-репорт.
Иначе как тогда трактовать команду AT+CIPSPRT=0?
Хочется все-таки руководствоваться логикой интуитивно понятной, а не китайской sm.gif
grinux
Цитата(Aurochs @ Jan 24 2011, 14:43) *
Спешка действительно вредна, а вот повысить скорость работы не помешает. И ожидание подсказки НЕ ДОЛЖНО БЫТЬ ОБЯЗАТЕЛЬНЫМ. Это снижает скорость отправки данных, особенно если отправляющий контроллер из-за загруженности не может быстро реагировать на реплики модема.

Дык достаточно в таком случае SEND FAIL вернуть - и все будут довольны.

Так что Эдуард, пишите, пожалуйста, по этому делу баг-репорт.
Иначе как тогда трактовать команду AT+CIPSPRT=0?
Хочется все-таки руководствоваться логикой интуитивно понятной, а не китайской sm.gif


Хоть кто то адеватно реагирует...

CADiLO, вы задумывались о том, зачем вообще опция, отключающая приглашение? Правильно, чтобы пристегнуть к данным, хоть ASCII, хоть бинарным, не важно, заголовок в виде команды и размера и запульнуть в модем, ожидая в ответ SEND OK, а не тратить время на ожидание >.
А вы мне про джип, запор и другой стек sad.gif
Это должно работать так, как заявлено.

Если же
Цитата
You should write data ONLY AFTER the promoting mark ”>”


Тогда нужно убрать из описания команду AT+CIPSPRT=0 и добавить в документ отличий AT команд от SIM300 соответствующий пункт о несовместимости работы CIPSEND.

Проверьте, у кого есть возможность, поведение на 7-й прошивке.
Aurochs
Цитата(grinux @ Jan 24 2011, 15:08) *
зачем вообще опция, отключающая приглашение?

Ну как же, китайская логика: "Сказал отключить приглашение - тебе его отключили, а про то что его уже ждать не нужно - уговора не было. К отключению приглашения претензии есть?"
wink.gif


Цитата(grinux @ Jan 24 2011, 15:08) *
Проверьте, у кого есть возможность, поведение на 7-й прошивке.

Да, не изменилось это поведение.
И в 8-й не изменится, если не пошлют им баг-репорт.
Как там в популярной программистской шутке: "Если Вам не хочется исправлять ошибку в программе, то задокументируйте ее как особенность реализации".

CADiLO
Написал я им - посмотрим что скажут.
Aurochs
Цитата(CADiLO @ Jan 24 2011, 17:31) *
Написал я им - посмотрим что скажут.

Большое спасибо. Так у нас будет хотя бы надежда. sm.gif
grinux
Цитата(CADiLO @ Jan 24 2011, 18:31) *
Написал я им - посмотрим что скажут.


Спасибо!
Alechek
Еще одна ошибка.
SIM900D прошивка 5 я (есть под него новее?)

Если позвонить на модуль сразу после его включения, то регистрации в сети не происходит. На вызывающем терминале гудков нет. Просто тупо висит на попытке соединения.
ОПСОС Пчелайн.
CADiLO
Для 900D была уже 6-я версия.
grinux
Цитата(CADiLO @ Jan 25 2011, 14:01) *
Написал я им - посмотрим что скажут.


Китайцы ответили что нибудь?
CADiLO
На эту тему еще нет - я пока с ними по поводу JD и RI бодался.
Отдам подтверждение на исправление ошибок и напомню про ">"

grinux
Цитата(CADiLO @ Jan 27 2011, 10:28) *
На эту тему еще нет - я пока с ними по поводу JD и RI бодался.
Отдам подтверждение на исправление ошибок и напомню про ">"


Понятно. Вы уже предварительно анонсируете 8 прошивку, можно ли ожидать что в ней, кроме всего прочего, и эту проблему решат?
CADiLO
Было:
>>>>Проблема в том, что на SIM900 для того, чтобы он передал данные, нужна задержка после команды CIPSEND и собственно данными! Пока 500мс поставил, работает, но это никуда не годится!

Цитирую дословно ответ:

We see this problem, and we think it is AT mechanism difference between SIM900 and SIM300. So it is difficult for us to remove the delay. Could you please persuade customer to add delay in his program?
You said it is 0.5s delay. But we think 50ms is OK. You can suggest customer to try 50ms and please let me if it is ok.
pjL7
Странно то, что эта задержка требуется даже в режиме (AT+CIPSPRT=1).
То есть:
1) AT+CIPSEND=<Len>
2) жду "> "
3) delay(100ms) // на 50 ms работает нестабильно (изредка не проходит)
4) отправляю данные.

забыл указать:
SIM900D
1137B05SIM900D64_ST
PS: может в более новой прошивке этой проблемы уже нет?
CADiLO
Для 900D есть уже 6 прошивка.
pjL7
Вышесказанное справедливо для CIPMUX=1.
При CIPMUX=0 приведённая схема не заработала даже с 500мс задержками. =(
pjL7
Обновил до 6-й версии - модем ведёт себя также.
Но самое печальное то, что даже 100мс задержка - не панацея!

Запустил тест:
12 байт запрос - 57 байт ответ, модем в режиме TCP-сервера.
следующий запрос только по получении ответа.
Совершенно вольготный режим обмена.
Результат:
Даже 5 минут не продержался - сбился!

Алгоритм повис в ожидании статуса отправки "0, SEND OK".
Я запустил терминалку - попробовал вручную несколько AT-команд.
Модем сначала упорно молчал, потом выдал "0, SEND OK", и уже
после стал отвечать на AT-команды.
Что любопытно, удалённой стороне отправились последние из набранных
мною в терминалке символов.
Это значит, что модем после выдачи им же самим приглашения "> "
висел в прострации, игнорируя все отданные ему данные, около минуты,
после чего очнулся принял данные и отправил.

Это конечно самый вопиющий случай, обычно же модем "висит" от долей до единиц секунд.

Кстати, иногда (~раз на сотню-две) модем выдаёт искажённый ответ:
вместо "0, SEND OK" выдаёт:
"0,D OK"
"0, SOK"
и т.д.
вместо "+RECEIVE,0,12:<данные>" выдаёт:
"+Rя«E,0,12<данные>"
"+IVE,0,12<данные>"
"+мусор<данные>"
и т.д.
При этом сами данные и другие ответы не искажаются.

И за одно, хотелось бы обратить внимание на команду "AT+CIPSERVER=1,<port>":
В 50% случаев после подачи этой команды модем ничего не отвечает.
Зато на повторную запрос сразу отвечает "SERVER OK".
Складывается впечатление, что и первый вызов сработал, но модем "забыл" ответить.
CADiLO
Можно ответы на следующие вопросы?

Какой используете контроллер, напряжение его питания, какой кварц (или какой процент разбега по частоте обмена)?
Как сделано сопряжение контроллер-модуль?
На какой скорости общаетесь с модулем, выключено ли автоопределение, используется ли RTS-CTS?
etoja
Цитата(CADiLO @ Feb 21 2011, 18:02) *
Для 900D есть уже 6 прошивка.


Парни, вы ещё не устали?
pjL7
Цитата(CADiLO @ Feb 22 2011, 16:05) *
Какой используете контроллер, напряжение его питания, какой кварц (или какой процент разбега по частоте обмена)?
Как сделано сопряжение контроллер-модуль? На какой скорости общаетесь с модулем, выключено ли автоопределение, используется ли RTS-CTS?


Вряд ли копать надо в эту сторону. Всё отлажено и работает с SIM300DZ. Мы заменили модуль на SIM900D. Изменили AT-команды.... Изменения можно сказать косметические.
Скорость фиксированная 115200,8N1
RTS-CTS не используется (данные идут малыми порциями, отправляются они редко)
автоопределение не выключал AT+IPR? возвращает "+IPR: 0"
(для синхронизации после включения делаю паузу потом посылаю "AT" потом снова паузу и "AT" пока не ответит "OK" - работает стабильно)
CADiLO
не совсем - если с 300D стыковались на 3.3 вольта, то для 900D это уже проблема.
tamam
Здравствуйте.

Чтобы не плодить лишнюю тему пишу сюда.

Модуль SIM900. Прошивка версии 6. Аппаратное управление потоком.

Пакет двоичных данных с некоторой периодичностью отправляется на сервер в
командном режиме по команде AT+CIPSEND с указанием фиксированной длины пакета.

Обнаружил такой нюанс.

Во время работы отсоединяю антенну от модуля.
После подачи команды AT+CIPSEND модуль выдает приглашение для ввода пакета данных.

Передаю в модуль пакет. Сигнал CTS становится неактивным. И от модуля после этого нет никакого ответа.
Ни SEND OK, ни SEND FAIL, ни CLOSED, ни PDP DEACT. Ждал минут 20. Дальнейшее подключение антенны и регистрация
модуля в сети ни на что не влияет. От модуля никакой реакции.
Прошивка послушно ждет возвращения сигнала CTS в активное состояние.

Если через некоторое время начать передавать модулю команды, не обращая внимание на состояние сигнала
CTS, то где-то после 2-й - 3-й команды модуль оживает и сигнал CTS становится активным.

SIM300CZ в этой ситуации выдавал ошибку передачи или сообщение о закрытии сокета.

Кто нибудь с таким сталкивался? Возможно есть команда установки каких-либо таймаутов, но я в даташите
таких не нашел.

Мне кажется, поведение SIM300 в такой ситуации было более правильным и логичным.
pjL7
Цитата(CADiLO @ Feb 22 2011, 17:00) *
не совсем - если с 300D стыковались на 3.3 вольта, то для 900D это уже проблема.

Поясните, пожалуйста. Я изучил матчасть только касательно программирования. Аппаратной частью занимаются мои коллеги. Возможно они что-то упустили из виду.
CADiLO
Входное напряжение по цифровым ножкам для SIM900 не должно превышать 3.0 вольта.
То же самое требование было и для SIM300D, но он нормально стыковался и с 3.3 вольтами, нужно было только добавить резисторы. И многие делали именно так.
Но если в такую плату впаять SIM900D не изменив согласование, то может быть все что угодно - от сбойной работы модуля до его сдыхания.
Если согласование правильное и нет разбега в скорости, то модуль не исказит данные. Потерять не вовремя поданые может, но искажений быть не должно однозначно.

Поэтому я и спросил - сколько вольт питание контроллера и как он стыкуется с модулем?
ssokol
Цитата(tamam @ Feb 23 2011, 12:30) *
Обнаружил такой нюанс.

Во время работы отсоединяю антенну от модуля.
После подачи команды AT+CIPSEND модуль выдает приглашение для ввода пакета данных.

Ну вы , блин, даете. А вы не пробовали шандарахнуть кувалдой по модулю, а потом сказать ,что он глючит? Вы почитайте , что такое свч передатчик и куда девается энергия при отключенной антенне и вам все станет ясно.
M_Z
Цитата(ssokol @ Feb 24 2011, 12:51) *
Ну вы , блин, даете. А вы не пробовали шандарахнуть кувалдой по модулю, а потом сказать ,что он глючит? Вы почитайте , что такое свч передатчик и куда девается энергия при отключенной антенне и вам все станет ясно.

тут товарищ имитирует таким образом выход из зоны покрытия. конечно это вариант не лучший правильнее было бы переключать антенну на нагрузку 50 Ом. но насколько мне известна у модуля есть защита от несогласованной антенны (отключенной, закороченной), то так тоже можно поступать.
ssokol
Цитата(M_Z @ Feb 24 2011, 12:28) *
но насколько мне известна у модуля есть защита от несогласованной антенны (отключенной, закороченной), то так тоже можно поступать.

А вот по моим сведениям у сим900 такой защиты нет, вот еслиб кто это официально опроверг-подтвердил ... (скрытый намек на CADiLO)
CADiLO
Усилитель стоящий в SIM900 - RF7161 не имеет защиты, и отдельно в модуле она тоже не предусмотрена.
Так что вполне можно угробить усилитель.

Peps
А в SIM300D такая защита была? Просто специально тестировал без антенны долго и упорно - модуль жил и радовался жизни, я даже спор по этому поводу выиграл. Да и другим модулям перепадало включаться и пытаться зарегистрироваться без антенны - все живы-здоровы. Вот с тех пор и укоренилось у меня мнение об великом изобретении китайского гения! А видимо это не фича, а простая случайность!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.