|
|
  |
SIM900 НАВЕРНОЕ НЕПРАВИЛЬНО, Обнаружена неправильная работа |
|
|
|
Jan 26 2011, 20:28
|
Частый гость
 
Группа: Участник
Сообщений: 97
Регистрация: 2-01-09
Пользователь №: 42 891

|
Цитата(CADiLO @ Jan 25 2011, 14:01)  Написал я им - посмотрим что скажут. Китайцы ответили что нибудь?
Сообщение отредактировал grinux - Jan 26 2011, 20:33
|
|
|
|
|
Jan 28 2011, 22:46
|
Частый гость
 
Группа: Участник
Сообщений: 97
Регистрация: 2-01-09
Пользователь №: 42 891

|
Цитата(CADiLO @ Jan 27 2011, 10:28)  На эту тему еще нет - я пока с ними по поводу JD и RI бодался. Отдам подтверждение на исправление ошибок и напомню про ">" Понятно. Вы уже предварительно анонсируете 8 прошивку, можно ли ожидать что в ней, кроме всего прочего, и эту проблему решат?
|
|
|
|
|
Feb 21 2011, 10:18
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
Было: >>>>Проблема в том, что на 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.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Feb 21 2011, 14:58
|
Группа: Новичок
Сообщений: 6
Регистрация: 30-11-10
Пользователь №: 61 283

|
Странно то, что эта задержка требуется даже в режиме (AT+CIPSPRT=1). То есть: 1) AT+CIPSEND=<Len> 2) жду "> " 3) delay(100ms) // на 50 ms работает нестабильно (изредка не проходит) 4) отправляю данные.
забыл указать: SIM900D 1137B05SIM900D64_ST PS: может в более новой прошивке этой проблемы уже нет?
|
|
|
|
|
Feb 21 2011, 15:17
|
Группа: Новичок
Сообщений: 6
Регистрация: 30-11-10
Пользователь №: 61 283

|
Вышесказанное справедливо для CIPMUX=1. При CIPMUX=0 приведённая схема не заработала даже с 500мс задержками. =(
|
|
|
|
|
Feb 22 2011, 12:09
|
Группа: Новичок
Сообщений: 6
Регистрация: 30-11-10
Пользователь №: 61 283

|
Обновил до 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". Складывается впечатление, что и первый вызов сработал, но модем "забыл" ответить.
|
|
|
|
|
Feb 22 2011, 13:52
|
Группа: Новичок
Сообщений: 6
Регистрация: 30-11-10
Пользователь №: 61 283

|
Цитата(CADiLO @ Feb 22 2011, 16:05)  Какой используете контроллер, напряжение его питания, какой кварц (или какой процент разбега по частоте обмена)? Как сделано сопряжение контроллер-модуль? На какой скорости общаетесь с модулем, выключено ли автоопределение, используется ли RTS-CTS? Вряд ли копать надо в эту сторону. Всё отлажено и работает с SIM300DZ. Мы заменили модуль на SIM900D. Изменили AT-команды.... Изменения можно сказать косметические. Скорость фиксированная 115200,8N1 RTS-CTS не используется (данные идут малыми порциями, отправляются они редко) автоопределение не выключал AT+IPR? возвращает "+IPR: 0" (для синхронизации после включения делаю паузу потом посылаю "AT" потом снова паузу и "AT" пока не ответит "OK" - работает стабильно)
|
|
|
|
|
Feb 23 2011, 09:30
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 23-09-08
Из: Россия
Пользователь №: 40 430

|
Здравствуйте.
Чтобы не плодить лишнюю тему пишу сюда.
Модуль SIM900. Прошивка версии 6. Аппаратное управление потоком.
Пакет двоичных данных с некоторой периодичностью отправляется на сервер в командном режиме по команде AT+CIPSEND с указанием фиксированной длины пакета.
Обнаружил такой нюанс.
Во время работы отсоединяю антенну от модуля. После подачи команды AT+CIPSEND модуль выдает приглашение для ввода пакета данных.
Передаю в модуль пакет. Сигнал CTS становится неактивным. И от модуля после этого нет никакого ответа. Ни SEND OK, ни SEND FAIL, ни CLOSED, ни PDP DEACT. Ждал минут 20. Дальнейшее подключение антенны и регистрация модуля в сети ни на что не влияет. От модуля никакой реакции. Прошивка послушно ждет возвращения сигнала CTS в активное состояние.
Если через некоторое время начать передавать модулю команды, не обращая внимание на состояние сигнала CTS, то где-то после 2-й - 3-й команды модуль оживает и сигнал CTS становится активным.
SIM300CZ в этой ситуации выдавал ошибку передачи или сообщение о закрытии сокета.
Кто нибудь с таким сталкивался? Возможно есть команда установки каких-либо таймаутов, но я в даташите таких не нашел. Мне кажется, поведение SIM300 в такой ситуации было более правильным и логичным.
|
|
|
|
|
Feb 24 2011, 07:43
|
Группа: Новичок
Сообщений: 6
Регистрация: 30-11-10
Пользователь №: 61 283

|
Цитата(CADiLO @ Feb 22 2011, 17:00)  не совсем - если с 300D стыковались на 3.3 вольта, то для 900D это уже проблема. Поясните, пожалуйста. Я изучил матчасть только касательно программирования. Аппаратной частью занимаются мои коллеги. Возможно они что-то упустили из виду.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|