Страница 1 из 1

прблемы с режимом сна в sim800L

Добавлено: Пт май 05, 2023 12:40:36
ickatel
Друзья.
Вот так вот выясняешь одну проблему, как появляется другой и куда же обратится если не к форуму.
Нужно перевести gsm модуль sim800L в режим сна.
Естественно, прошолся по материалам и узнал ,что управлять сном и бодрствованием можно через контакт DTR. Для активации этого режима необходимо однократно отправить АТ команду "AT+CSCLK=1" на ножку Rx и для усыпления модуля - подать высокий уровень (около +3В) на контакт DTR.
Вроде как, написано черным по белому.
Сделал все на совесть ,но как был ток 11мА так он и остался.
Как тут ,быть куда поддатся?Нужен совет.
Заранее благодарен.

Re: прблемы с режимом сна в sim800L

Добавлено: Сб май 06, 2023 00:01:22
ickatel
Может есть какие то нюансы?

Re: прблемы с режимом сна в sim800L

Добавлено: Сб май 06, 2023 09:48:31
AAX
[uquote="ickatel",url="/forum/viewtopic.php?p=4411389#p4411389"]Для активации этого режима необходимо однократно отправить АТ команду "AT+CSCLK=1" на ножку Rx и для усыпления модуля - подать высокий уровень (около +3В) на контакт DTR.[/uquote]Всё верно, только сначала высокий уровень на DTR, потом убедиться, что модуль в IDLE (нет никаких не завершённых действий), потом AT+CSCLK=1
Ну, и этих модулей китайцы наделали миллион вариаций, не факт, что у Вас функциональность сна по DTR вообще реализована. Через AT+CSCLK=2 работает сон?

Re: прблемы с режимом сна в sim800L

Добавлено: Сб май 06, 2023 14:57:01
ickatel
Друзья ,примите мою искренную благодарность за желание помочь.

Martian
Вы пишете; "Есть дерганье микроконтроллером - нет спящего режима"
Как же тогда подавать команду "AT+CSCLK=1" ,
Вот я беру модуль и даю питание(больше ничего)
потом посылаю "AT+CSCLK=1" на Tx и после DTR +3в
Во время подачи усыпляющих сигналов модуль обсолютно спокоен.

AAX
А как определить что модуль в IDLE?
AT+CSCLK=2 не пробовал ,но сделаю тоже ,раз вы упомянули об этом.

Re: прблемы с режимом сна в sim800L

Добавлено: Сб май 06, 2023 17:49:06
ickatel
Дорогие Martian и AAX
Разрешите отчитатся по результатом проверки.
И так ,включаю адаптер 220-12в 3А и даю модуле 4в через китайский 3-х амперный регулятор.
Контроллирую общий ток потребления от 12в ,который в месте смодулем( который уже зарегистрировался в сеть )составил 12,8мА.
Без модуля китайский преобразователь потребляет 6мА от 12в, значит модуль потребляет 6,8мА в спокойном режиме.
Теперь руководствуясь советом AAX с перва подаю +3в на вывод DTR и затем посылаю команду (AT+CSCLK=1) на Tx без надежды ,что что то произайдет(ведь в даташите вроде наоборот).
Ну вот чудо!!!!!!!!!!!!!!!!!потребление сразу уменьшилось до 6,8мА (до потребления преобразователя 12-4в) и значит потребление модуля ументшилось до нуля.
Пока не могу придти в себя. Буду пробовать и пробовать усыплять и пробуждать.
Спасибо огромное.

Добавлено after 1 hour 29 minutes 52 seconds:
Да ,я многократно проделал это и все работает.
И так по AAX вход и выход в режим сна выглядит так;
-вход в сон.
-подаем +3в на вывод DTR и затем посылаем команду (AT+CSCLK=1) на Tx.
-снимаем +3 с DTR.
--------------------------------------------------------------------------------------------
-выход из сна.
-подаем землю на вывод DTR и затем посылаем команду (AT+CSCLK=0) на Tx.
-снимаем землю с DTR.
------------------------------------------------------------
Я бы с удовольствием назвал эту процедуру ,процедурой AAX.
Спасибо ему от имени всех любителей sim.

Re: прблемы с режимом сна в sim800L

Добавлено: Вс май 07, 2023 02:49:44
AAX
Martian, я бы предпочёл ростовой памятник в бронзе. И табличку: "AAX vs долб*бизм. 0:1"
[uquote="ickatel",url="/forum/viewtopic.php?p=4411917#p4411917"]А как определить что модуль в IDLE?[/uquote]У Вас должна быть реализована машина состояний, и должен быть способ получить текущее состояние. Соответственно, если модуль не занят выполнением Ваших команд, нет активной сессии голосовой или передачи данных - это состояние простоя, IDLE.
ickatel писал(а):И так по AAX вход и выход в режим сна выглядит так;
нет, не придумывайте.
Я бы описал процесс примерно так:
1. Подаём на DTR высокий уровень.
2. Проверяем, что модуль ничем не занят. Если мы в своём уме, и идём спать, а модуль занят - это какая-то активность со стороны сети. Входящий звонок, или СМС. Нужно дождаться окончания этой активности. Сбросить звонок. Прочитать СМС, если это важно :) Для этого опускаем DTR в низкий уровень, и возвращаемся без сна.
3. Если модуль в IDLE, отправляем AT+CSCLK=1
4. Если вернулось OK - делаем своё ничего. Выключаем остальную периферию, усыпляем мк и т.д по потребностям.
Пока мы держим DTR высоким, модуль спит.
Если от модуля нужна только неторопливая передача - СМС, данных, исходящие звонки - можно в начале процедуры засыпания скомандовать AT+CFUN=0, это выключит радио-часть, и позволит сэкономить батарейку.
Чтобы проснуться, делаем следующее:
1. Опускаем DTR в низкий уровень
2. Не допуская пауз длиннее 50-ти мс отправляем нужные AT-команды
3. Когда вся нужная работа проделана, поднимаем DTR снова.
Чтобы проснуться основательно, например для какой-то двусторонней коммуникации, когда нужно что-то передать, и понятно, что должен прийти ответ, подаём на DTR низкий уровень, и не позже, чем через 50 мс передаём AT+CSCLK=0. После "OK" пофиг, что будет на DTR, режим сна модуля отключён.
Если отключали коммуникации по AT+CFUN=0, не забываем поднять радио-часть при помощи AT+CFUN=1. Тут нужно включать ещё и голову, т.к. поиск сетей и регистрация достаточно энергоёмкий процесс. И если Вам нужно часто засыпать/просыпаться, отключением функциональности радио Вы только высадите батарею сильнее. А цена вопроса около 1 мА потребления :) Но если у Вас модуль раз в сутки выходит на связь - это позволит сэкономить 24 мА/ч батарейки. Ну, и нужно помнить, что поиск сетей и регистрация - процесс не мгновенный, по этому если Вам нужно ASAP передавать что-то - лучше радио не выключать.
Судя по тому, что Вы пишете, Вам подойдёт режим сна AT+CSCLK=2, он чисто программный, DTR не задействуется.
ickatel писал(а):Я бы с удовольствием назвал эту процедуру ,процедурой AAX.
Обычная история: сеешь разумное, доброе, вечное. Потом смотришь, что за концепции тебе приписывают - и охреневаешь :)

Re: прблемы с режимом сна в sim800L

Добавлено: Вс май 07, 2023 05:05:33
AAX
Так и режим AT+CSCLK=1 не выключает UART. Разницы потребления я не замечал. ТС так и подавно не заметит - модуль с включенным радио ест примерно миллиампера 2 с периодическими всплесками до примерно 0,2 А в момент перерегистрации в сети. А ТС видит ноль потребления :) Впрочем, как говорилось выше, китайцы штампуют эти модули кто во что горазд :( и что там будет работать, что не будет - большая китайская загадка. Разгадать которую можно только экспериментально.

Re: прблемы с режимом сна в sim800L

Добавлено: Вс май 07, 2023 17:19:18
AAX
А Вы этот модуль использовали? Или только даташит? ;-)
Просто в даташите там действительно написано, что нужно сперва передать AT+CSCLK=1, а потом подавать высокий уровень на ногу DTS. Но суть топика в том, что оно нихрина так не работает ;-)
И этот модуль шо в одном, шо в другом режиме сна, если не отключить радиотракт продолжает принимать входящие звонки и СМС. И передавать в UART так называемые Непрошенные Сообщения ;-), если они не отключены. Когда сеть теряется/находится. Когда звонок приходит, или СМС.

Re: прблемы с режимом сна в sim800L

Добавлено: Вс май 07, 2023 20:24:48
Mursik
Если звонки и смс не нужны, тогда AT+CFUN=2 поможет. Будет спать как убитый :tea: