реклама на сайте
подробности

 
 
15 страниц V  « < 10 11 12 13 14 > »   
Reply to this topicStart new topic
> AT команды, всякие мелкие вопросы
Aurochs
сообщение Dec 20 2011, 09:14
Сообщение #166


Ортодокс
***

Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775



Цитата(CADiLO @ Dec 19 2011, 09:44) *
Полной "защитой от дурака" является только перепрошивка модуля - тогда полностью обновится область настроек.

+100
Золотые слова!
Хочется вот только уточнить: о каком дураке речь? Дураке-пользователе или же дураке-разработчике?
Хотя, если принять во внимание факт, что для сброса ВСЕХ настроек вместо того, чтобы просто сбросить их одной командой (между прочим, специально для этого предусмотренной в стандарте!) приходится перепрошивать модуль, то ответ и так достаточно очевиден.
Go to the top of the page
 
+Quote Post
Apik
сообщение Dec 22 2011, 12:32
Сообщение #167


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-04-10
Пользователь №: 56 995



Вопрос может не совсем по АТ-командам, но не хочу создавать новую тему.
При AT+CREG=1 — разрешается выдача сообщения о смене регистрации в сети.
Антенна у меня PCB, и ловит заррраза хорошо, не могу сэмулировать пропажу сети.
Так вот - когда теряется сеть - что мне присылает модуль? Сперва +CREG: 0, потом +CREG: 2, и когда найдет сеть +CREG: 1? Или может +CREG: 0 пропустит, и сразу перейдет к +CREG: 2?
Go to the top of the page
 
+Quote Post
molecul
сообщение Dec 22 2011, 13:00
Сообщение #168


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 19-01-11
Из: СПб
Пользователь №: 62 326



Цитата(Apik @ Dec 22 2011, 16:32) *
Вопрос может не совсем по АТ-командам, но не хочу создавать новую тему.
При AT+CREG=1 — разрешается выдача сообщения о смене регистрации в сети.
Антенна у меня PCB, и ловит заррраза хорошо, не могу сэмулировать пропажу сети.
Так вот - когда теряется сеть - что мне присылает модуль? Сперва +CREG: 0, потом +CREG: 2, и когда найдет сеть +CREG: 1? Или может +CREG: 0 пропустит, и сразу перейдет к +CREG: 2?

Рискну предположить, что это зависит как от модуля, так и от поведения чужих сетей. Telit GL868 + МТС:
Цитата
// включили модуль с антенной
at+creg?

+CREG: 0,1

OK

at+creg=1

OK
// отключили антенну
+CREG: 3 // видимо, сеть конкурентов в антенне не нуждается sm.gif
// подключили антенну обратно
+CREG: 1


Сообщение отредактировал molecul - Dec 22 2011, 13:03
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Dec 22 2011, 13:17
Сообщение #169


Гуру
******

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



У меня без антенны и пятерка иногда проскакивает - типа в роуминге.
Но чтобы долго держалась не получалось - пытаешься работать - хлоп - опять =0.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Apik
сообщение Dec 22 2011, 13:22
Сообщение #170


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-04-10
Пользователь №: 56 995



Т.е. получается надо обрабатывать все случаи, когда СREG не равно 1. Жаль, думал можно один обработать )))
Go to the top of the page
 
+Quote Post
megabuks
сообщение Mar 30 2012, 08:23
Сообщение #171


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 26-01-10
Из: Санкт-Петербург
Пользователь №: 55 080



Здравствуйте
А помогите разобраться чайнику,никогда не имевшему дела с Gsm модулями
Какая вообще последовательность инициализации модуля?
Собственно мне нужно - позвонить, установить csd соединение, передать пакет данных и разъединиться
Как это сделать?
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Mar 30 2012, 10:17
Сообщение #172


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



1. Подключиться терминалом к модулю и подать питание
2. Для некоторых модулей нужно притянуть сигнал ON/~OFF (он же PWR_KEY) к земле, а потом желательно отпустить.
3. Определить скорость, на которой работает модуль и поменять в терминале скорость на нужную, либо заставить сработать автодетект скорости на модуле, если он есть.
4. Подать команду AT и поглядеть ответ.
5. Установить режим передачи данных AT+CBST=71, хотя и без этого должно работать.
6. Набрать ATD+7номер телефона
7. Дождаться соединения: CONNECT 9600
8. Набрать что угодно в терминале - это будет передано по модему на удаленный модем.
9. Набрать +++
10. Набрать ATH

Всё.
Go to the top of the page
 
+Quote Post
megabuks
сообщение Mar 30 2012, 11:08
Сообщение #173


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 26-01-10
Из: Санкт-Петербург
Пользователь №: 55 080



Цитата(andrewlekar @ Mar 30 2012, 13:17) *
1. Подключиться терминалом к модулю и подать питание
2. Для некоторых модулей нужно притянуть сигнал ON/~OFF (он же PWR_KEY) к земле, а потом желательно отпустить.
3. Определить скорость, на которой работает модуль и поменять в терминале скорость на нужную, либо заставить сработать автодетект скорости на модуле, если он есть.
4. Подать команду AT и поглядеть ответ.
5. Установить режим передачи данных AT+CBST=71, хотя и без этого должно работать.
6. Набрать ATD+7номер телефона
7. Дождаться соединения: CONNECT 9600
8. Набрать что угодно в терминале - это будет передано по модему на удаленный модем.
9. Набрать +++
10. Набрать ATH

Всё.

Так заработало
Большое спасибо.
А я начал с discovery tools сиерровской, думал там подсмотрю чего шлеться,
- а с нее даже позвонить не получается sad.gif

Go to the top of the page
 
+Quote Post
Maratt
сообщение Apr 13 2012, 12:32
Сообщение #174


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Помогите чайнику. Собрал охранное устройство + модем на SIM300DZ. Звонит, отправляет SMS.Не отвечает на запросы с текстом stat и rst.
Вот выдержка из описания устройства.
Данное устройство предназначено для охраны и наблюдения за удаленными объектами. Оно может дозваниваться до телефонных номеров из списка (не более 3), записанных в EEPROM PIC'a, а также отправлять SMS. Основу составляет PIC16F628A. Он отсчитывает необходимые интервалы времени и управляет мобильным телефон посредством некоторых AT команд, а именно:
• ATD<тел. номер>; - вызов.
• ATH - отмена вызова.
• AT+CMGS=<pdu length> - отправка SMS.
• AT+CMGR=n - читать SMS с sim.
• AT+CMGD=n - удалить SMS c порядковым номером n.
Чтобы процессор знал о приходе новой SMS, устанавливается режим индикации входящих сообщений командой AT+CNMI=1,1,0,0,1.
Есть возможность узнать в любой момент состояние всех четырех датчиков, для этого надо отправить на номер SIM карты используемого в устройстве мобильника сообщение с текстом "stat". Для сброса устройства необходимо использовать текст "rst"
Ввожу команду AT+CNMI=1,1,0,0,1 Пишет: OK.
Спрашиваю AT+CNMI? Отвечает AT+CNMI:1,1,0,0,0
Как ни бился последнюю цифру изменить не смог. У автора телефон Siemens C35, у меня модем на SIM300DZ. Что я не так делаю?
Суважением.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Apr 13 2012, 12:58
Сообщение #175


Гуру
******

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



>>>Что я не так делаю?

Не читаете документацию

+CNMI: <mode>,<mt>,<bm>,<ds>,<bfr>

SIM300_ATC_V2.03.pdf
страничка 3
4.2.9 AT+CNMI Remove the value 1 of parameter <bfr>

Поэтому последний параметр всегда и будет 0


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Maratt
сообщение Apr 13 2012, 14:51
Сообщение #176


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Я не программист, я практик. Почитал форум, купил SIM300D, спаял схему и получил облом.
Текст SMSок и номера телефонов записаны в контроллере. На SIM карте ни чего не должно откладываться. В буфере модема тоже. Вся информация при приходе SMS должна идти сразу в контроллер. Почитал Руководство по использованию АТ-команд для GSM/GPRS моде- мов.: Пер. с англ. – М.:
9.9. Индикация нового сообщения: +CNMI
9.9.1. Описание
Данная команда производит отбор процедуры индикации о получении но¬вого сообщения.

И если честно мало что понял.
Может, подскажете, какие значения нужны в моем случае?
С уважением.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Apr 13 2012, 20:54
Сообщение #177


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Подозреваю что таки AT+CNMI=2,2
Go to the top of the page
 
+Quote Post
Maratt
сообщение Apr 14 2012, 07:30
Сообщение #178


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Спасибо. В понедельник попробую. Дома нет СОМ порта. Остальные значения можно оставить как есть? - AT+CNMI:2,2,0,0,0
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Apr 23 2012, 14:30
Сообщение #179


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Вот есть вопрос по автомату состояния, обслуживающему входной поток символов от модуля (SIM900). Собственно, хочется сделать его относительно гибким, чтобы можно было усложнять функции, а также как-то упорядочить процесс их выполнения при асинхронном возникновении различных событий.
Пока что имеем такие задачи:
1) Отправка SMS по событию, детектированному прибором с датчика.
2) Прием SMS из сети с просьбой подключится к серверу
3) Установление GPRS-соединения с сервером и отправка журнала работы, прием команд и сопутствующих бинарных данных.

На данный момент разработана схема, где к микроконтроллеру подключены только RXD, TXD, RI, в расчете на Software flow control и аппаратное определение событий по сигналу RI, таких как прием СМС.

Вопросы:
1) Нужно ли работать с включенным эхо или нет? Вначале я думал по эху контролировать, что модуль честно принял команду, и можно перевести автомат обработки в состояние ожидания ответа, но на самом деле он может в ответ сам начать что-то слать в середине моей команды, см пример ниже. В этом случае получается какой-то непредсказуемый обмен.
2) Каким образом отслеживается условие, что модуль закончил ответ на последнюю выданную команду? Проблема заключается в том, что есть команды, которые выдают только один ОК, есть такие, которые выдают ответ, потом ОК, есть такие, которые выдадут ответ, но без отдельного ОК. Наконец, бывают такие, которые выдают сначала ОК, потом подумают, и еще чего выдадут, например AT+CDNSGIP. В итоге, идея о том, что можно будет сделать какой-то простой детектор, накрывается медным тазиком. В особенности, если учесть, что возможны вклинивающиеся ответы, см следующий пункт.
3) Каким образом отличать, что в ответе относится к ответу от моего запроса, от того, что пришло, скажем из сети. Ниже я привожу пример, как я стал писать команду AT+CPIN? и в этот момент позвонил на этот номер, потом повесил трубку и закончил ввод. В данном случае посыпался RING. Аналогично может посыпаться +CMTI от SMS и Бог его знает, сколько еще всего неизведанного. Можно ли так построить код, чтобы все подобные неожиданности не порушили задуманных алгоритм работы?
4) Как вообще правильно поступать, если возможны асинхронные события, порождающие независимые задания для модуля? Например, пришла СМС-ка, подключились к серверу, стали передавать ему журнал работы (лог). Пока передавали лог за сутки, сработал датчик, и теперь надо послать СМС. СМС подсистему можно дергать сразу или нужно дождаться конца сессии с сервером, успокоить модуль, забрать и проанализирвоать все статусы и вот потом начинать с ним затею с СМС?
5) Если много команд выдается подряд без эха, то как узнать где ответ на какую команду? Или, не надо так делать? Если ждать ответа на каждую, то скорость обмена падает. Хотя пока что для нас это не очень критично, объем данных относительно невелик, зато NAND-буферы огромны.

Насколько я понимаю, все эти проблемы не относятся напрямую к теме FLOW CONTROL, так как никто не отказывается от приема данных с максимальной скоростью, вопрос лишь в том, как их обрабатывать.

Вот такой фрагмент сессии из гипертерминала был:
Код
AT
OK
AT+CCID
89701200630012452255

OK
AT+C
RING

RING

RING
PIN?
+CPIN: READY

OK


вот такой вот бывает ответ на AT+CDNSGIP
Код
AT+CDNSGIP="mail.ru"
OK
... прошла одна секунда ...
+CDNSGIP: 1,"mail.ru","94.100.191.204"


Сообщение отредактировал Hoodwin - Apr 23 2012, 14:41
Go to the top of the page
 
+Quote Post
Aurochs
сообщение Apr 24 2012, 22:24
Сообщение #180


Ортодокс
***

Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775



1. Эхо рекомендую выключать. Кроме всего прочего оно существенно замедляет обмен.
2. Действительно, о простоте говорить не приходится.
3. Асинхронные посылки модуля НИКОГДА не попадают внутрь строки ответа модуля. Посему каждую строку принятую от модуля в процессе обработки команды нужно проверять на совпадение с ожидаемой асинхронной репликой (тем же RING, например) и регистрировать их в очереди входных событий. А очередь эту обрабатывать уже после завершения обработки самой команды.
4. Можно поступать, как душе угодно, но команды на модем должны отдаваться последовательно: следующая команда должна подаваться ТОЛЬКО ПО ЗАВЕРШЕНИИ предыдущей. Под завершением понимается выдача OK|ERROR. Все, что команда выдает после этого нужно уже рассматривать как асинхронную посылку.
5. Да, скорость обмена падает, но не настолько, как при включенном эхе. Но в данном-то случае нас интересует же не скорость обмена, а скорость выполнения команд.
Go to the top of the page
 
+Quote Post

15 страниц V  « < 10 11 12 13 14 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th August 2025 - 17:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01536 секунд с 7
ELECTRONIX ©2004-2016