Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900 не выходит из спящего режима
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
kem41k
Добрый вечер.

Возникла проблема с SIM900. Я использую GSM/GPRS shield, подключенный к Arduino Mega 2560. Коммуникация была налажена, посылал АТ-команды и получал ответы, как говорится, что еще нужно для счастья?

Т.к. данная связка предназначена для мониторинга и отправки данных на сервер раз в сутки, было нецелесообразно оставлять шилд все время в активном режиме, поэтому я использовал команду "AT+CSCLK=1" (шилд может переходить в спящий режим, если DTR=1 и не может, если DTR=0).

Однако после этого шилд перестал отвечать на любые АТ-команды. Он функционирует, т.к. при включении выдает стандартные ответы в COM-порт:

Код
RDY
+CFUN: 1
+CPIN: READY
Call Ready


В одном из мануалов (стр.21) написано, какие действия выводят sim900 из этого режима (перевод DTR в 0, например), но по каким-то причинам это не помогает.

Читал, что сброс до заводских настроек не поможет, нужно отменить команду "AT+CSCLK=1" командой "AT+CSCLK=0", но я не могу этого сделать, т.к. шилд не реагирует на команды. Что в данной ситуации я могу сделать?
Pavel☺
Цитата(kem41k @ Jun 15 2015, 22:06) *
Добрый вечер.

Возникла проблема с SIM900. Я использую GSM/GPRS shield, подключенный к Arduino Mega 2560. Коммуникация была налажена, посылал АТ-команды и получал ответы, как говорится, что еще нужно для счастья?

Т.к. данная связка предназначена для мониторинга и отправки данных на сервер раз в сутки, было нецелесообразно оставлять шилд все время в активном режиме, поэтому я использовал команду "AT+CSCLK=1" (шилд может переходить в спящий режим, если DTR=1 и не может, если DTR=0).

Однако после этого шилд перестал отвечать на любые АТ-команды. Он функционирует, т.к. при включении выдает стандартные ответы в COM-порт:

Код
RDY
+CFUN: 1
+CPIN: READY
Call Ready


В одном из мануалов (стр.21) написано, какие действия выводят sim900 из этого режима (перевод DTR в 0, например), но по каким-то причинам это не помогает.

Читал, что сброс до заводских настроек не поможет, нужно отменить команду "AT+CSCLK=1" командой "AT+CSCLK=0", но я не могу этого сделать, т.к. шилд не реагирует на команды. Что в данной ситуации я могу сделать?


Вам стоит проверить уровень на DTR (он вообще управляется?), а также проверить, доходят ли сигналы по UART_Rx линии модуля. Чудес не бывает.

Также могу предложить перешить модуль. Могу прислать последнюю прошивку и инструкции по прошиванию. Для этого с Вас - письмо мне на почту chpa[so6аka]mt-system.ru с указанием надписи на Вашем модуле (S2-10...-...)
kem41k
Цитата(Pavel☺ @ Jun 16 2015, 07:42) *
Вам стоит проверить уровень на DTR (он вообще управляется?), а также проверить, доходят ли сигналы по UART_Rx линии модуля. Чудес не бывает.


Благодарю за оперативный ответ.

Похоже, что уровнем DTR я управлять не могу, нет пина, отвечающего за DTR на шилде, который я бы мог к Arduino подключить.
Подскажите, пожалуйста, сбросит ли перепрошивка все настройки до заводских, то есть, переведется ли настройка AT+CSCLK из текущего состояния 1 в 0 (мне это и нужно сейчас, в принципе)? Читал в теме, что АТ-команда сброса настроек до заводских данный параметр не меняет.
kem41k
Еще раз спасибо за помощь, как всегда, подвела невнимательность. Припаяли к ноге DTR на SIM900 проводок, его завели к пину Arduino, теперь уровень DTR можно программно регулировать.
alfik777
Сейчас бьюсь с данной проблемой просыпания. Вернуть в нормальный режим удается подачей команды AT+CSCLK=0 после HARD-RESET модуля, т.е. перепрошивка не нужна. Ну это полдела. А как же всё таки им пользоваться если не использовать DTR ? Я пробую режим AT+CSCLK=2, тогда он просыпается когда появляется что-то на serial-порту у него, т.е. когда нужно проснуться я закидываю ему в порт с надеждой AT+CSCLK=0, он просыпается на время передачи данных, но .... но команду не проглатывает, т.е. игнорирует. В чем смысл тогда такого режима- просыпаться на время передачи в serial и никак не реагировать? Или я не так что-то делаю?
CADiLO
>>>он просыпается на время передачи данных, но .... но команду не проглатывает, т.е. игнорирует.

а документацию внимательно читали?

там есть время таймаута во время которого после просыпания модуль не реагирует на команды.
то есть первую команду он воспримет через ххх миллисекунд
читаем даташит и апнот по UART модуля

ну и не забываем смотреть чтобы прошивка была свежая sm.gif
RiseOfDeath
Цитата(CADiLO @ Jul 9 2015, 09:52) *
>>>он просыпается на время передачи данных, но .... но команду не проглатывает, т.е. игнорирует.

а документацию внимательно читали?

там есть время таймаута во время которого после просыпания модуль не реагирует на команды.
то есть первую команду он воспримет через ххх миллисекунд
читаем даташит и апнот по UART модуля

ну и не забываем смотреть чтобы прошивка была свежая sm.gif



Там вроде бы написано, что он при просыпании "теряет" первый символ.
p_kav
Чтоб не плодить темы, спрошу про спящий режим здесь.
Имеется SIM800C, распаянный на маленькой самодельной плате, развязка UART сделана по схеме из даташита с диодами.



DTR подтягивается к нулю полевиком.

После включения сделал
AT+IPR=9600
AT+CSCLK=1

Пока затвор полевика подключен к питанию модуль отвечает на команды, когда затвор сажаю на землю - перестает отвечать, но есть импульсы на NETLIGHT и можно на него позвонить и он выводит RING, т.е, судя по всему, в спящий режим я его положил корректно. Непонятки возникли с энергопотреблением - в спящем режиме (к модулю подключен только аккумулятор) через модуль идет ток около 10 мА, хотя обещалось всего 1 мА. Пока писал сообщение возникла мысль, что ток утекает через нижний резистор на схеме, с ножки модуля TXD через диод в землю. Такое возможно? UART модуля не отключается при входе в спящий режим?
CADiLO
1. какая версия прошивки?
2. меньше 1мА мы получали отключая разъем UART от EVB. Отсюда верная предпосылка что активный уровень на UART не дает уснуть.
p_kav
Цитата(CADiLO @ Jul 21 2015, 14:15) *
2. меньше 1мА мы получали отключая разъем UART от EVB. Отсюда верная предпосылка что активный уровень на UART не дает уснуть.


Я так понимаю, уснуть-то как раз модуль смог, т.к. ведет себя в точности как описано в документации, однако на ножке TXD при этом остается логическая единица, которая утекает в землю через диод и резистор. Видимо, для снижения энергопотребления нужно будет увеличить номинал резистора.

А в ваших экспериментах качество сигнала сотовой вышки влияло на энергопотребление в спящем режиме? Или в нем активна только принимающая ВЧ часть и её энергопотребление постоянно?
CADiLO
Должно конечно влиять, передатчик то в слоте работает. Но померить мгновенной потребление было нечем, а среднее было меньше миллиампера.
p_kav
А какой CSQ был в тот момент не смотрели?
Просто мне как-то не верится, что такое энергопотребление вообще достижимо. Ведь нет же телефонов-звонилок, работающих по месяцу от аккумулятора 1200 мАч с отключенным экраном и спящим процессором, просыпающимся от нажатия кнопки или поднятия ножки RI модуля.
CADiLO
>>>Ведь нет же телефонов-звонилок, работающих по месяцу от аккумулятора 1200 мАч с отключенным экраном и спящим процессором, просыпающимся от нажатия кнопки или поднятия ножки RI модуля.

А там это и не требуется. Политика не та.
Зачем делать бытовую технику которая будет "вечной" ???
А что потом продавать???

В свое время, когда SAMSUNG выложил исходники для X-100, была альтернативная прошивка с оптимизированым питанием.
Eсли не говорить по телефону, то в дежурном режиме телефон жил до 12 дней. А со штатной прошивкой - 3 дня.
Eddy71
Цитата(p_kav @ Jul 21 2015, 15:07) *
Ведь нет же телефонов-звонилок, работающих по месяцу от аккумулятора 1200 мАч с отключенным экраном и спящим процессором, просыпающимся от нажатия кнопки или поднятия ножки RI модуля.


Не согласен. Хоть модель и не помню, но видел своими глазами PHILIPS простенький с кнопочками, аккумулятором (кажется) на 800мАч который в неактивном состоянии жил месяц. И не сильно давно, года 2-3 назад.
aleksandr-zh
видел, тоже Филлипс, месяц в деж.режиме.
Если увижу приятеля - попробую узнать ту модельку, весьма древнюю ))
CADiLO
у меня SAMвсуньг S-5230
рекорд был 17 дней до отключения
3-4 звонка в день меньше минуты + будильник - все остальное выключено напфих
но единственное батарея не родная, стоит японец 2200 mA/h
p_kav
Так 17 дней это ещё ладно, мой разум будоражит именно заявленные 1 мА в Slow Clock режиме. Это получается, что модуль SIM800C на таком же 2200 аккумуляторе способен работать больше месяца (по расчетам 2200/24 = 91 день)? Вы проводили такие тесты?
CADiLO
Я лично - нет.
Но в форуме есть ребята которые еще SIM900R гоняли в спячке по 2-3 недели.
Выйду из отпуска поищу темку - обсуждали уже это.



Eddy71
Интересно вогнать в такой режим, чтоб и жрало мало и сеть не теряло. Заманчиво..
p_kav
У меня пока что не получилось. Заменил резистор в схеме согласования на 100к что должно дать ток 0,28 мА, однако от аккумулятора 1200 мАч SIM800c проработал всего 3 дня.
Не уверен, возможно, следует подтянуть DTR к V_EXT, а не просто закрыть NPN-полевик.
CADiLO
Скорость порта стоит фиксированная или автоопределение?
Режим второго UART отключен?
p_kav
Скорость фиксированная 9600, я вижу сообщения модуля о старте типа +CFUN = 1 и Call Ready.
Второй UART я не трогал. Он по умолчанию включен?

Пока DTR притянут полевиком к земле я могу общаться с модулем, когда полевик закрывается модуль перестает отвечать на команды, но продолжает работать.
Ещё через полевик по схеме как в даташите включен светодиод NETLIGHT, по которому я и контролирую работу модуля. По идее и диод, и полевик при переключении потребляют энергию, но ведь не должны же они высадить 1200 мАч за 3 дня.
CADiLO
Модуль явно не засыпает. Где-то по UART, USB или GPIO есть втекающий или вытекающий ток который не дает уснуть модулю.
Или кроме модуля кто-то потребляет.

>>>1200 мАч за 3 дня

- это примерно 16-17 mA потребление устройства - надо смотреть кто так активно питается

Давайте смотреть схему - полностью обвязку модуля как сейчас сделано. Подумаем.
p_kav
Так вытекающий есть - с ножки UART1_TXD черед диод и резистор на землю, схема согласования это подразумевает.

Плату прикрепляю к сообщению. Делал давно, некоторые вещи не учел (например, микрофон, в котором то всё чисто, то страшные наводки, или антенну bluetooth) , однако на ней удалось без проблем отладить код управляющего микроконтроллера. А вот сейчас решил попробовать на ней спящий режим, а энергопотребление не снижается.
CADiLO
Так а зачем плата???

Схему окончательную покажите.
p_kav
Так я её не рисовал. Это не законченное устройство, а просто тестовая плата для модуля, поэтому сделал сразу плату по схемам из даташита.
Если для решения проблемы нужна схема, то перерисую с платы и приложу позднее.
CADiLO
Лучше срисовать в схему то что сделано на плате - так понятнее будет.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.