|
SIM900, Перестает передавать |
|
|
|
Jul 14 2015, 07:23
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Добрый день! От предыдущего разработчика достался GPS треккер, не совсем правильно разведеный, разводку чуть изменили, програму пришлось переписать, при передаче данных через этот модем обнаружил странные вещи: 1) при включении питания модуля ожидаю Call Ready через несколько секунд, но не все модули выводят это сообшение, все модули из одной партии 2) При передаче данных на UDP или TCP сервер через какое то время после нормалных передач передача заканчивается сообщением +PDP: DEACT, далее через несколько минут передача может проснуться. CODE sprintf(str, "AT+CIPSEND=%d\r\n", len); gprs_send_str(str); /* Ждем строчки с приглашением */ res = gprs_wait_for_str(">", WAIT_TIME_10SEC); gprs_flush(GPRS_BUF_IN); /* Затрем приемный */
if (res == RES_OK) { gprs_send_buf((u8 *) buf, len); res = gprs_wait_for_str("SEND OK", WAIT_TIME_10SEC * 2); } else if(res == RES_DEACT) { gprs_send_str("AT+CGATT?\r\n"); gprs_wait_for_str("+CGATT:", WAIT_TIME_10SEC); gprs_flush(GPRS_BUF_IN); } Кто с таким сталкивался и как с этим бороться?
|
|
|
|
|
Jul 14 2015, 08:08
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(Aner @ Jul 14 2015, 10:37)  У SIM900 какая версия прошивки модуля. Да и на схему взглянуть интересно, может там кучка кривоты. кривоты там достаточно
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 14 2015, 08:38
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 14-02-10
Пользователь №: 55 490

|
Цитата(inventor @ Jul 14 2015, 11:23)  1) при включении питания модуля ожидаю Call Ready через несколько секунд, но не все модули выводят это сообшение, все модули из одной партии Версия -- не у всех установлена фиксированная скорость
--------------------
#define TRUE (4==(2*2))
|
|
|
|
|
Jul 14 2015, 08:41
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(CADiLO @ Jul 14 2015, 11:26)  Ну если учесть что самая большая кривота - несогласованные уровни между модулем и контроллером, то все остальное мелкая фигня. Какая версия прошивки в модулях? Интересно что мешало оба стабилизатора запитать от 12 входного, выключать их штатными EN, а ключи выкинуть к ....ням.  какой командой можно узнать?
|
|
|
|
|
Jul 14 2015, 08:55
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(Aner @ Jul 14 2015, 11:43)  Первую строчку, та что на SIM900 модулях напишите, скажем какая версия. S2-1040S-Z092Z Цитата(CADiLO @ Jul 14 2015, 11:47)  а как вы для них программу переписывали не читая документацию ? А зачем мне знать ВСЕ команды? Меня интересует исключительно то, что относится к соединению GPRS и создания UDP клиента ну а обычные AT команды я из модемов помню.
|
|
|
|
|
Jul 14 2015, 09:07
|

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

|
>>>А зачем мне знать ВСЕ команды? Можно и азбуку всю не учить А если серьезно, то как минимум ознакомиться со списком нужно обязательно. Тогда часто 90% вопросов просто не возникнут S2-1040S-Z092Z - 1137B11SIM900M64_ST это 11 евроверсия последняя в этом ряду - S2-1040S-Z1K0K = 1137B15SIM900M64_ST из новейших расширенных последняя апрельская - S2-1040S-Z1K0C = 1137B05SIM900M64_ST_ENHANCE теперь по исходным вопросам - очень желательно обновиться до последней версии и далее 1. проверьте чтобы у всех модулей настройки "по умолчанию" были одинаковы 2. обязательно отключайте автоскорость обмена что касается затыков в GPRS 1. не придерживаемся рекомендаций и последовательностей команд из SIM900_TCPIP_Application Note_V1.02.pdf 2. чудеса у оператора - тоже не последняя причина
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Jul 14 2015, 09:17
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
[quote name='CADiLO' date='Jul 14 2015, 12:07' post='1351464'] 1. не придерживаемся рекомендаций и последовательностей команд из SIM900_TCPIP_Application Note_V1.02.pdf CODE sprintf(str, "AT+CIPSEND=%d\r\n", len); gprs_send_str(str); delay_ms(DELAY_CMD_MS); /* Ждем строчки с приглашением */ res = gprs_wait_for_str(">", WAIT_TIME_10SEC); gprs_flush(GPRS_BUF_IN); /* Затрем приемный */
if (res == RES_OK) { gprs_send_buf((u8 *) buf, len); delay_ms(DELAY_CMD_MS); res = gprs_wait_for_str("SEND OK", WAIT_TIME_10SEC * 2); } else if(res == RES_DEACT) { gprs_send_str("AT+CGATT?\r\n"); delay_ms(CONNECT_TIMEOUT); gprs_wait_for_str("+CGATT:", WAIT_TIME_10SEC); printf("\nWait for 2 sec\r\n"); gprs_flush(GPRS_BUF_IN); }
Пардон, а что здесь неправильного? Я видел в даташитах, что можно следить за DTR/DSR - но они у меня в воздухе висят, стоит ли сигналы управления потоком перемычками на контроллер кинуть?
|
|
|
|
|
Jul 14 2015, 09:34
|

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

|
здесь неправильного немного, просто телепаты в отпуске....
как минимум я не вижу инициализации
и логи дают не в таком виде - не все знают С или кто на чем там пишет...
поэтому лучше приводить в таком формате
AT+CGATT=1
OK AT+CLPORT="UDP",03030
OK AT+CIPCSGP=1,"xxx.xxxxxxxx.xxx"
OK AT+CIPSTART="UDP","xxx.xxx.xxx.xxx","03031"
OK
CONNECT OK AT+CIPSEND=13
> \эђg‚ SEND OK
а еще лучше если в начале будут временные метки
вот примерно так
10:30:55 AT+CPOWD=1 10:30:55 OK 10:31:02 ATE1 10:31:03 OK 10:31:03 ATV1 10:31:03 OK 10:31:03 ATE1 10:31:03 OK 10:31:03 AT+IPR=9600 10:31:03 OK 10:31:03 AT+IFC=0,0 10:31:04 OK 10:31:04 AT+VTD=2 10:31:04 OK
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Jul 14 2015, 09:40
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(CADiLO @ Jul 14 2015, 12:34)  здесь неправильного немного, просто телепаты в отпуске....
как минимум я не вижу инициализации
и логи дают не в таком виде - не все знают С или кто на чем там пишет...
поэтому лучше приводить в таком формате
AT+CGATT=1
OK AT+CLPORT="UDP",03030
OK AT+CIPCSGP=1,"xxx.xxxxxxxx.xxx"
OK AT+CIPSTART="UDP","xxx.xxx.xxx.xxx","03031"
OK
CONNECT OK AT+CIPSEND=13
> \эђg‚ SEND OK
а еще лучше если в начале будут временные метки
вот примерно так
10:30:55 AT+CPOWD=1 10:30:55 OK 10:31:02 ATE1 10:31:03 OK 10:31:03 ATV1 10:31:03 OK 10:31:03 ATE1 10:31:03 OK 10:31:03 AT+IPR=9600 10:31:03 OK 10:31:03 AT+IFC=0,0 10:31:04 OK 10:31:04 AT+VTD=2 10:31:04 OK Понял, у меня в консоль выводит, щас попробую: Send :ATE0 ATE0 OK Send :AT+GSMBUSY=1 OK Send :AT+CSQ +CSQ: 13,0 OK Send :AT+COPS? +COPS: 0,0,"MegaFon RUS" OK Send :AT+CIPCSGP=1,"internet","gdata","gdata" OK Wait for 2 sec Send :AT+SAPBR=1,1 OK Wait for 2 sec Send :AT+SAPBR=2,1 My IP Addr: 10.188.233.145 GPRS connecting established Send :AT+CIPSTART="UDP","87.249.0.254","10025" OK CONNECT OK Теперь шлю данные: Send :AT+CIPSEND=35 > #12345678abcd«Í SEND OK res OK
|
|
|
|
|
Jul 14 2015, 09:51
|

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

|
AT+SAPBR - используем только для FTP или HTTP AT+CIPCSGP - 300 лет тут не нужно >>>+CSQ: 13,0 - на пределе для GPRS, может рвать связь - желательно CSQ не хуже 18-20 настоятельно рекомендую согласовать уровни с контроллером, дабы в будущем не менять модули и проверить антенную часть на предмет маловатого уровня сигнала программно делаем все по апнотесу - вся последовательность приведена и неоднократно проверена. если не работает так как написано - пинаем оператора.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Jul 14 2015, 10:03
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(CADiLO @ Jul 14 2015, 12:51)  AT+SAPBR - используем только для FTP или HTTP
AT+CIPCSGP - 300 лет тут не нужно
>>>+CSQ: 13,0 - на пределе для GPRS, может рвать связь - желательно CSQ не хуже 18-20
настоятельно рекомендую согласовать уровни с контроллером, дабы в будущем не менять модули и проверить антенную часть на предмет маловатого уровня сигнала
программно делаем все по апнотесу - вся последовательность приведена и неоднократно проверена. если не работает так как написано - пинаем оператора. спасиб. даташиты есть у меня а что за беда в уровнях, нельзя напрямую ноги на контроллер подавать?
|
|
|
|
|
Jul 14 2015, 10:37
|

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

|
>>>>а что за беда в уровнях, нельзя напрямую ноги на контроллер подавать? при питании контроллера 3.0 вольта - можно, так как предельный максимум для модуля 3.1 вольта у вас контроллер запитан 3.3 - через время можете получить кирпич вместо SIM900 и неустановка 1 полевика для согласования обойдется в цену модуля. поэтому для контроллеров с питанием свыше 3.0 вольта делаем следующее
Эскизы прикрепленных изображений
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Aug 2 2015, 08:09
|
Группа: Новичок
Сообщений: 9
Регистрация: 29-09-14
Пользователь №: 82 949

|
Товарищи, подскажите пожалуйста! SIM900R. Подключаюсь к серверу по TCP, отправляю посылку 32 байта, сервер отвечает и модем шлет на МК уведомление "+CIPRXGET=1", проблема в том, что уведомление приходит только один раз, о следующих посылках модем не уведомляет, причем если сделаю реконнект к серверу, то опять первая посылка от сервера доходит, остальные молчат, а отправлять на сервер получается без проблем((( Кто-нибудь сталкивался с таким явлением?
|
|
|
|
|
Aug 3 2015, 03:27
|
Частый гость
 
Группа: Свой
Сообщений: 145
Регистрация: 12-01-07
Из: Россия, г. Омск
Пользователь №: 24 357

|
Цитата(CADiLO @ Jul 14 2015, 16:37)  >>>>а что за беда в уровнях, нельзя напрямую ноги на контроллер подавать?
при питании контроллера 3.0 вольта - можно, так как предельный максимум для модуля 3.1 вольта
у вас контроллер запитан 3.3 - через время можете получить кирпич вместо SIM900 и неустановка 1 полевика для согласования обойдется в цену модуля.
поэтому для контроллеров с питанием свыше 3.0 вольта делаем следующее А обязательно полевик? Диод Шотки(например SS12) нельзя?
|
|
|
|
|
Aug 3 2015, 12:29
|

Евгений
  
Группа: Участник
Сообщений: 341
Регистрация: 13-10-11
Пользователь №: 67 706

|
Цитата(TukiTip @ Aug 2 2015, 12:09)  Товарищи, подскажите пожалуйста! SIM900R. Подключаюсь к серверу по TCP, отправляю посылку 32 байта, сервер отвечает и модем шлет на МК уведомление "+CIPRXGET=1", проблема в том, что уведомление приходит только один раз, о следующих посылках модем не уведомляет, причем если сделаю реконнект к серверу, то опять первая посылка от сервера доходит, остальные молчат, а отправлять на сервер получается без проблем((( Кто-нибудь сталкивался с таким явлением? Пришлите пож. ваш полный АТ-лог (запросы+ответы) на почту bator.batuev собака sim.com
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|