kem41k
Jun 15 2015, 18: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", но я не могу этого сделать, т.к. шилд не реагирует на команды. Что в данной ситуации я могу сделать?
Pavel☺
Jun 16 2015, 04:42
Цитата(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
Jun 16 2015, 12:51
Цитата(Pavel☺ @ Jun 16 2015, 07:42)

Вам стоит проверить уровень на DTR (он вообще управляется?), а также проверить, доходят ли сигналы по UART_Rx линии модуля. Чудес не бывает.
Благодарю за оперативный ответ.
Похоже, что уровнем DTR я управлять не могу, нет пина, отвечающего за DTR на шилде, который я бы мог к Arduino подключить.
Подскажите, пожалуйста, сбросит ли перепрошивка все настройки до заводских, то есть, переведется ли настройка AT+CSCLK из текущего состояния 1 в 0 (мне это и нужно сейчас, в принципе)? Читал в
теме, что АТ-команда сброса настроек до заводских данный параметр не меняет.
kem41k
Jun 16 2015, 19:44
Еще раз спасибо за помощь, как всегда, подвела невнимательность. Припаяли к ноге DTR на SIM900 проводок, его завели к пину Arduino, теперь уровень DTR можно программно регулировать.
alfik777
Jul 9 2015, 06:02
Сейчас бьюсь с данной проблемой просыпания. Вернуть в нормальный режим удается подачей команды AT+CSCLK=0 после HARD-RESET модуля, т.е. перепрошивка не нужна. Ну это полдела. А как же всё таки им пользоваться если не использовать DTR ? Я пробую режим AT+CSCLK=2, тогда он просыпается когда появляется что-то на serial-порту у него, т.е. когда нужно проснуться я закидываю ему в порт с надеждой AT+CSCLK=0, он просыпается на время передачи данных, но .... но команду не проглатывает, т.е. игнорирует. В чем смысл тогда такого режима- просыпаться на время передачи в serial и никак не реагировать? Или я не так что-то делаю?
>>>он просыпается на время передачи данных, но .... но команду не проглатывает, т.е. игнорирует.
а документацию внимательно читали?
там есть время таймаута во время которого после просыпания модуль не реагирует на команды.
то есть первую команду он воспримет через ххх миллисекунд
читаем даташит и апнот по UART модуля
ну и не забываем смотреть чтобы прошивка была свежая
RiseOfDeath
Jul 10 2015, 06:51
Цитата(CADiLO @ Jul 9 2015, 09:52)

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

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

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

2. меньше 1мА мы получали отключая разъем UART от EVB. Отсюда верная предпосылка что активный уровень на UART не дает уснуть.
Я так понимаю, уснуть-то как раз модуль смог, т.к. ведет себя в точности как описано в документации, однако на ножке TXD при этом остается логическая единица, которая утекает в землю через диод и резистор. Видимо, для снижения энергопотребления нужно будет увеличить номинал резистора.
А в ваших экспериментах качество сигнала сотовой вышки влияло на энергопотребление в спящем режиме? Или в нем активна только принимающая ВЧ часть и её энергопотребление постоянно?
CADiLO
Jul 21 2015, 11:53
Должно конечно влиять, передатчик то в слоте работает. Но померить мгновенной потребление было нечем, а среднее было меньше миллиампера.
А какой CSQ был в тот момент не смотрели?
Просто мне как-то не верится, что такое энергопотребление вообще достижимо. Ведь нет же телефонов-звонилок, работающих по месяцу от аккумулятора 1200 мАч с отключенным экраном и спящим процессором, просыпающимся от нажатия кнопки или поднятия ножки RI модуля.
CADiLO
Jul 21 2015, 12:19
>>>Ведь нет же телефонов-звонилок, работающих по месяцу от аккумулятора 1200 мАч с отключенным экраном и спящим процессором, просыпающимся от нажатия кнопки или поднятия ножки RI модуля.
А там это и не требуется. Политика не та.
Зачем делать бытовую технику которая будет "вечной" ???
А что потом продавать???
В свое время, когда SAMSUNG выложил исходники для X-100, была альтернативная прошивка с оптимизированым питанием.
Eсли не говорить по телефону, то в дежурном режиме телефон жил до 12 дней. А со штатной прошивкой - 3 дня.
Eddy71
Jul 30 2015, 10:47
Цитата(p_kav @ Jul 21 2015, 15:07)

Ведь нет же телефонов-звонилок, работающих по месяцу от аккумулятора 1200 мАч с отключенным экраном и спящим процессором, просыпающимся от нажатия кнопки или поднятия ножки RI модуля.
Не согласен. Хоть модель и не помню, но видел своими глазами PHILIPS простенький с кнопочками, аккумулятором (кажется) на 800мАч который в неактивном состоянии жил месяц. И не сильно давно, года 2-3 назад.
aleksandr-zh
Jul 30 2015, 11:40
видел, тоже Филлипс, месяц в деж.режиме.
Если увижу приятеля - попробую узнать ту модельку, весьма древнюю ))
CADiLO
Jul 31 2015, 12:02
у меня SAMвсуньг S-5230
рекорд был 17 дней до отключения
3-4 звонка в день меньше минуты + будильник - все остальное выключено напфих
но единственное батарея не родная, стоит японец 2200 mA/h
Так 17 дней это ещё ладно, мой разум будоражит именно заявленные 1 мА в Slow Clock режиме. Это получается, что модуль SIM800C на таком же 2200 аккумуляторе способен работать больше месяца (по расчетам 2200/24 = 91 день)? Вы проводили такие тесты?
CADiLO
Jul 31 2015, 12:35
Я лично - нет.
Но в форуме есть ребята которые еще SIM900R гоняли в спячке по 2-3 недели.
Выйду из отпуска поищу темку - обсуждали уже это.
Интересно вогнать в такой режим, чтоб и жрало мало и сеть не теряло. Заманчиво..
У меня пока что не получилось. Заменил резистор в схеме согласования на 100к что должно дать ток 0,28 мА, однако от аккумулятора 1200 мАч SIM800c проработал всего 3 дня.
Не уверен, возможно, следует подтянуть DTR к V_EXT, а не просто закрыть NPN-полевик.
Скорость порта стоит фиксированная или автоопределение?
Режим второго UART отключен?
Скорость фиксированная 9600, я вижу сообщения модуля о старте типа +CFUN = 1 и Call Ready.
Второй UART я не трогал. Он по умолчанию включен?
Пока DTR притянут полевиком к земле я могу общаться с модулем, когда полевик закрывается модуль перестает отвечать на команды, но продолжает работать.
Ещё через полевик по схеме как в даташите включен светодиод NETLIGHT, по которому я и контролирую работу модуля. По идее и диод, и полевик при переключении потребляют энергию, но ведь не должны же они высадить 1200 мАч за 3 дня.
Модуль явно не засыпает. Где-то по UART, USB или GPIO есть втекающий или вытекающий ток который не дает уснуть модулю.
Или кроме модуля кто-то потребляет.
>>>1200 мАч за 3 дня
- это примерно 16-17 mA потребление устройства - надо смотреть кто так активно питается
Давайте смотреть схему - полностью обвязку модуля как сейчас сделано. Подумаем.
Так вытекающий есть - с ножки UART1_TXD черед диод и резистор на землю, схема согласования это подразумевает.
Плату прикрепляю к сообщению. Делал давно, некоторые вещи не учел (например, микрофон, в котором то всё чисто, то страшные наводки, или антенну bluetooth) , однако на ней удалось без проблем отладить код управляющего микроконтроллера. А вот сейчас решил попробовать на ней спящий режим, а энергопотребление не снижается.
Так а зачем плата???
Схему окончательную покажите.
Так я её не рисовал. Это не законченное устройство, а просто тестовая плата для модуля, поэтому сделал сразу плату по схемам из даташита.
Если для решения проблемы нужна схема, то перерисую с платы и приложу позднее.
Лучше срисовать в схему то что сделано на плате - так понятнее будет.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.