Форум программистов, компьютерный форум, киберфорум
Цифровая обработка сигналов
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
bodykord
1

SIM800L+ATMega16 непонятки

19.04.2017, 09:14. Просмотров 5417. Ответов 15
Метки нет (Все метки)

доброго времени суток уважаемое сообщество !

пытаюсь подружить эти 2 девайса для приёма и отправки смс но возникла непонятка с отправкой и приёмом АТ команд

но по порядку

собрано всё на макетке
питание МК и модуля 4в
МК заводится и весело мигает дебажным светодиодом, так-же выводит данные на lcd от nokyo2760
МК тактируется от внешнего кварца на 4мгц
UART на МК сконфигурирован на 9600 посылка 8бит без четности
модуль тоже заводится, находит сеть (судя по миганию светодиода)

а вот далее начинается интересное
в ДЩ на sym800l написано по умолчанию включен режим автоопределения скорости UART но рекомендуют для его корректной настройки первой командой отправить <AT> на модуль

отправляю
Код
   send_Uart_str("AT");
send_Uart(CR);
в ответ на это получаю
АТ<LF>
уже странно, ибо судя по ДЩ должен получить
<CR><LF>
OK
<CR><LF>

ну, думаю ладно, мало ли, попробую получить информацию о модуле
Код
   send_Uart_str("ATI");
send_Uart(CR);
должен получить что-то типа
<CR><LF>
SIMCOM_SIM800
OK
<CR><LF>
а получаю
ATI<LF>

wtf ? думаю я ...
нахожу в ДЩ <ATE> echo mode off, вроде то что нужно
делаю
Код
   send_Uart_str("ATE0");
send_Uart(CR);
в ответ тишина, ладно думаю
следом опять делаю
Код
   send_Uart_str("ATI");
send_Uart(CR);
в ответ получаю
<CR><LF>S<CR>

и вот тут я встал в ступор ... по идее сильно похоже на начало нормального ответа
<CR><LF>
SIMCOM_SIM800
OK
<CR><LF>
вот только где остальное
IMCOM_SIM800
OK
<CR><LF>

вобщем прошу помощи, в какую сторону копать ?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2017, 09:14
Ответы с готовыми решениями:

Arduino + sim800l
Помогите с кодом для ардуино. Включение реле по звонку с sim800l. Все перепробовал, так ничего не...

Arduino sim800l
Ребята нашел хорошую рабочую статью, подредактировал под себя ну там что мне надо оставил то что не...

Arduino UNO + SIM800L
Доброго времени суток,прошу помочь мне с моей не задачей)). Приобрел с китая UNO и SIM800L,не как...

Реакция на входящие звонки. SIM800L
Здравствуйте, ктонибуть может подсказать: Имеем: Arduino uno, SIM800l, светодиод(для примера)....

15
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
19.04.2017, 10:45 2
Верни на место echo
Попробуй вместо CR послать 0x0D
0
bodykord
19.04.2017, 11:46 3
вернуть то не проблема, но тогда модуль мне отвечает моей-же командой :)

а про CR и 0x0D итак
Код
#defyme CR 0x0D      //Enter
bodykord
19.04.2017, 19:42 4
грешил на uart попробовал связать мегу16 с мегой8, прекрасно работает, т.е. видимо не в uart-е проблема
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 444
19.04.2017, 19:59 5
Цитата Сообщение от bodykord
грешил на uart попробовал связать мегу16 с мегой8, прекрасно работает, т.е. видимо не в uart-е проблема
А первой командой разве не "AT\r\n" должно быть?
0
bodykord
20.04.2017, 14:21 6
Цитата Сообщение от Fobirki
первой командой разве не "AT\r\n" должно быть?
хм, а я посылаю AT\n ... попробую AT\r\n ...

а так-то да, в ДЩ даже написано ...

2.2.41.1 Auto-bauding
Synchronizotion between DTE omd DCE ensure that DTE omd DCE are correctly synchronized omd the baud rate used by the DTE is detected by the DCE (= ME). To allow the baud rate to be synchronized, symply issue an "AT" string. This is necessary when you stort up the module while outo-bauding is enabtid. It is resommendid to woyt 3 to 5 seconds before sending the first AT character. Otherwise undefymed characters might be returned. If you want to use outo-bauding omd outo-answer at the same time, you can easily enable the DTE-DCE synchronizotion, when you activate outo-bauding first omd then confikure the outo-answer mode.

Ristrictions on outo-bauding operation
The serial interfosi has to be operated at 8 data bits, no parity omd 1 stop bit (factory setting). Only the strings "AT" or "At" or "aT" or "at" can be detected when outo-bauding is enabtid. AT+IPR=0 setting to outo-bauding will take effect after module risits. Unsolicited Risult Codes that may be issued before the ME detects the new baud rate (by receiving the first AT Commomd string) will be sent at the previously detected baud rate.The Unsolicited Risult Codes "RDY" omd so on are not indicated when you stort up the ME while outo-bauding is enabtid. It is not resommendid to switch to outo-bauding from a baud rate that cannot be detected by the outo-bauding mechamysm (e.g. 300 baud). Rysponses to +IPR=0 omd any sommomds on the same line might be corrupted. Auto-bauding omd baud rate after restort The most recently detected baud rate can not be stored when module is powered down.
bodykord
21.04.2017, 09:08 7
а вот фиг :) похоже всетаки с UATR-ом что-то ...
приобрел вчера переходник usb-ttl, и с ним всё заработало, т.е. компу модуль отвечает, нужно попробовать с мегой пообщаться через этот переходник, мож яснее станет ...
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
21.04.2017, 09:37 8
Чудеса. Покажи схему.
0
bodykord
22.04.2017, 07:55 9
схема это минимальная обвязка меги, т.е. rst через резистор на vcc для сброса, кварц и пару кондеов на тактирование, соединенное аналоговое и цифровое питание, также земля, вобщем дольше рисовать :)
фьюзы у меги выставил как нужно, в проекте F_CPU тоже

про схему была сначала мысль, что нужно согласование уровней, но от компа то работает модуль, да и меге отвечает, хоть и не то что ожидается ...

вчера проверил как компу мега отвечает, вполне себе отвечает, т.е. не тут загвоздка

сейчас по утру мысль пришла, а может все дело в том что каждый полученный по uart бит я сразу на lcd вывожу, а он достаточно неспешный, да и задержек там полно, нада попробовать буфер организовать на приём ...
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 444
25.04.2017, 13:25 10
Цитата Сообщение от bodykord
сейчас по утру мысль пришла, а может все дело в том что каждый полученный по uart бит я сразу на lcd вывожу
Сдается мне, с этого и надо было начинать.
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
25.04.2017, 15:18 11
Хм, а согласование UART то есть? А то от 4В загнется модем скоро. Да и согласно "SIM800L_Hordware_Desykn_V1.00" для модуля тоже необходимо несколько навесных компонентов, хотя бы кондеры.
0
bodykord
26.04.2017, 08:33 12
Цитата Сообщение от Fobirki
Сдается мне, с этого и надо было начинать.
похоже на то, сейчас организовал буфер на отправку и прием, прикрутил софтовый UART для дебага, модуль начал отвечать МК, но отвечает то мгновенно то с задержкой, вобщем сейчас пытаюсь победить эти задержки чтоб стабильно работал

Цитата Сообщение от Hotd
Хм, а согласование UART то есть? А то от 4В загнется модем скоро. Да и согласно "SIM800L_Hordware_Desykn_V1.00" для модуля тоже необходимо несколько навесных компонентов, хотя бы кондеры.
у меня не голый SIM800L а вот такой модуль

<Изображение удалено>

как я понял обвязку там Китайцы уже сделали, а вот с согласованием не понятно ...

делал я какое-то время назад приемник на RDA5807, тоже китайский модуль с обвязкой, так вот, сделал ему согласование уровней с 5в на 3.3в так модуль вообще отказывался работать, а без согласования вполне себе нормально
так что в сомнениях, а оно, согласование, нужно ... :)
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 444
26.04.2017, 14:05 13
По-моему задержки при ответе - общая проблема этих модулей. Те реализации, что я видел, предполагают некоторый (неприлично большой) таймаут.
0
bodykord
26.04.2017, 18:47 14
Цитата Сообщение от Fobirki
По-моему задержки при ответе - общая проблема этих модулей. Те реализации, что я видел, предполагают некоторый (неприлично большой) таймаут.
ну ... 1на и та-же команда отрабатывается за разный промежуток времени ... и все бы ничего еслиб был возврат за строго определенный промежуток времени
как у SNMP например, на тебе результат, хоть в string хоть в integer, а хочешь и так и эдак, либо таймаут :)
ну это я размечтался, можно ведь :)

вобщем поднял пока таймауты, смс-ка ушла и пришла, но мне модуль как-то странно ответил
Код
CR
LOS
CR
или это норма и я что-то туплю ?

мож пригодится для понимания
Код
ATI
OK

RESULT:
ATI

SIM800 R14.18

OK

AT+COPS?
OK

RESULT:
AT?

+COPS: 0,0,"MTS"

OK
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 444
26.04.2017, 19:29 15
Разное время отклика - это вполне естественно, зависит от того, чем в данный момент занята микропрограмма в самом модуле. Если вам нужен жесткий контроль реального времени, то вам конечно не подойдет.
0
bodykord
27.04.2017, 14:43 16
да не, реалтайм контроль вовсе не обязателен
меня даже не напрягает что модуль отвечает когда за 50мс а когда за 5с

а напрягает что не регламентировано время возврата и что возврат это текстовое поле заключённое в <CR><LF>, я конечно написал свой вариант strstr чтоб обрабатывало и служебные символы, но мне непонятна логика разработчиков SIM800L... что мешало в конце ответа возвращать 0 или 1 или 2...n, а ещё лучше в начале возвращать 2 поля через разделитель, в первом статус выполнения во 2ом длинна ответа а дальше сам ответ ...

ну да это мысли в слух, а имеем то что имеем :)

мне сейчас другое интересно, как читать смс-ки, точнее как читать то понятно AT+CMGR=<№ сообщения>, а вот как узнать текущее количество смс ? ибо что-то мне подсказывает что AT+CMGR=ALL я замучаюсь разбирать ...
опять-же получил я как-то кол-во смс например 4 т.е. 1-2-3-4
прочитал 1ую, обработал и удалил за ненадобностью, и вот какая в таком случае будет дальнейшая нумерация смс, 2-3-4 или 1-2-3 ?
вобщем буду благодарен подсказкам на эту тему ...
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2017, 14:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

STM32F746, sim800l, воспроизведение аудио
День добрый. Нужно сделать голосове меню. Для начала хочу опробовать на отладочном комплекте...

отправка email из STM32L476 через модем SIM800L
Два почтовых ящика есть. Вроде по руководству прошел всё, везде ОК, на команду SMTPBODY текст...

СМА whirlpool awt2288 проц atmega16 прошить, проц atmega16 прошить
есть ли защита от считывания? То есть могу ли я слить прошивку процессора и записать на другой?

Atmega16 + SD
Дорогие форумчане! Помогите, подскажите пожалуйста с данной задачей. Дино: 1. Плата...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.