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

 
 
> SIM800 чтение SMS
an24
сообщение May 17 2016, 12:57
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 17-05-16
Пользователь №: 91 771



Привет всем!

Возникла у меня странная ситуация с SIM800.
Ожидаю смс вызовом в цикле AT+CMGR=1,0. Он мне возвращает OK пока смс не принят.
Посылаю смс на номер, после чего uart стоит по таймауту, буфер, естественно пустой.
Кто нибудь встречался с такой бедой? Таймаут 5 сек.

Да, и еще. Если смс отправить до того, как sim зарегистрировался в сети, то все
нормально отрабатывает. Получаем +CMGR: 1,...

Помогите люди добрые. Уже невмоготуууу...

Прошивка 1418B03SIM800C24
Uart на autoban(менял на фикс.скорость - не помогает)
Регистрируюсь в сети обычно.
AT+CFUN=1
AT+CSQ
AT+CPIN?
AT+CREG?
AT+CMGF=1
AT+CSCS="GSM"
AT+CPMS="SM"

M2M, МТС

Сообщение отредактировал an24 - May 17 2016, 12:59
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ArtemKAD
сообщение May 19 2016, 15:43
Сообщение #2


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

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



Цитата
Потому что в любой момент вам может приехать URC и заблокирует запись.

С чего вдруг блокировать запись? Входной поток отдельно, выходной отдельно. Они конечно могут стать зависимы, к примеру при отправке SMS когда от модуля надо дождаться приглашение на ввод, но это скорее исключение чем правило. Без прерывания можно только во время отправки не поймать часть входной строки по той мелкой причине, что тупая программа отправляет в цикле всю строку не обращая внимания на входящие символы.
Цитата
Чтобы повысить надежность мне пришлось перед записью проверять RXNE и читать. Короче, костыль.

Использовал бы по входящему потоку прерывание в котором входящие символы тупо кидал в буфер(к примеру FIFO) и не морочил бы себе голову с костылями.
Цитата
А для чего сделали два UART?

Изначально второй UART был как технологический, отладочный и для возможности перезаписи модуля не борясь с МК.
Цитата
Не для того ли, чтобы сделать нормальный full duplex?

Ни в коем случае. Первый UART и так нормальный full duplex. Да и при твоём построении программы без использования прерываний и передаче строки модулю тупым циклом, второй UART тебе не поможет потому как пока ты передаешь строку в один UART процессор занят исключительно этим и не обращает внимание ни на что, включая сообщения со второго UART-а.
Go to the top of the page
 
+Quote Post
an24
сообщение May 19 2016, 15:58
Сообщение #3





Группа: Участник
Сообщений: 13
Регистрация: 17-05-16
Пользователь №: 91 771



Цитата(ArtemKAD @ May 19 2016, 20:43) *
С чего вдруг блокировать запись? Входной поток отдельно, выходной отдельно. Они конечно могут стать зависимы, к примеру при отправке SMS когда от модуля надо дождаться приглашение на ввод, но это скорее исключение чем правило. Без прерывания можно только во время отправки не поймать часть входной строки по той мелкой причине, что тупая программа отправляет в цикле всю строку не обращая внимания на входящие символы.

Использовал бы по входящему потоку прерывание в котором входящие символы тупо кидал в буфер(к примеру FIFO) и не морочил бы себе голову с костылями.

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

Ни в коем случае. Первый UART и так нормальный full duplex. Да и при твоём построении программы без использования прерываний и передаче строки модулю тупым циклом, второй UART тебе не поможет потому как пока ты передаешь строку в один UART процессор занят исключительно этим и не обращает внимание ни на что, включая сообщения со второго UART-а.


Конечно UART принципиально ПОЛНОдуплексный. Но в SIM800 он реализован как полудуплексный, так как буфер на прием
и передачу на стороне SIM один. И команда записи блокирует чтение и наоборот. Это мне объяснили
мудрые люди и я это опробовал на железе. Все так и есть. Когда я пишу и читаю со своей стороны я могу соблюсти
нужную последовательность. Но тут вмешивается SIM, который шлет мне неожидаемый (это их термин) код, который
блокирует запись. А я то этого не знаю.

Поэтому пришлось делать костыль.


Можно было делать по прерываниям или DMA, но я доделывал программу, написанную ранее.
Не хотелось все переписывать. Может быть и зря.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- an24   SIM800 чтение SMS   May 17 2016, 12:57
- - Alechek   Чет так и не понял, в чем проблема и кто стоит. Ес...   May 17 2016, 17:50
|- - an24   Цитата(Alechek @ May 17 2016, 22:50) Чет ...   May 17 2016, 18:09
|- - Alechek   Для начала научитесь выражаться правильно. А то мо...   May 18 2016, 05:17
|- - an24   Цитата(Alechek @ May 18 2016, 10:17) Для ...   May 18 2016, 11:09
- - CADiLO   Чтобы не придумывать для себя проблемы с UART, нав...   May 18 2016, 11:17
|- - an24   Цитата(CADiLO @ May 18 2016, 16:17) Чтобы...   May 18 2016, 12:14
|- - Alechek   Цитата(an24 @ May 18 2016, 17:14) Естеств...   May 18 2016, 17:33
|- - an24   Цитата(Alechek @ May 18 2016, 22:33) Ваш ...   May 19 2016, 04:15
|- - Alechek   Цитата(an24 @ May 19 2016, 09:15) Боротьс...   May 19 2016, 04:26
- - CADiLO   Дык тот кто знаком с принципом приема SMS, в перву...   May 18 2016, 12:59
|- - an24   Цитата(CADiLO @ May 18 2016, 17:59) Дык т...   May 18 2016, 14:12
- - CADiLO   >>>И никто из них даже не упоминает, о то...   May 18 2016, 17:12
- - Rash   Цитата(an24 @ May 19 2016, 07:15) Боротьс...   May 19 2016, 05:40
- - Alechek   Rash, ему еще далеко до этого. Если он не понимает...   May 19 2016, 07:32
|- - an24   Цитата(Alechek @ May 19 2016, 12:32) Rash...   May 19 2016, 08:06
|- - Alechek   Цитата(an24 @ May 19 2016, 13:06) Полагаю...   May 19 2016, 08:45
|- - an24   Цитата(Alechek @ May 19 2016, 13:45) ко...   May 19 2016, 09:07
|- - Alechek   Цитата(an24 @ May 19 2016, 14:07) Нужно б...   May 19 2016, 11:15
- - ArtemKAD   ЦитатаОчевидно, что тот кто придумал такую обработ...   May 19 2016, 10:59
|- - an24   Цитата(ArtemKAD @ May 19 2016, 15:59) Вну...   May 19 2016, 15:41
- - Rash   тему в юмор можно занести, особенно про асинхронно...   May 19 2016, 14:13
|- - Alechek   Цитата(Rash @ May 19 2016, 19:13) тему в ...   May 19 2016, 16:46
|- - an24   Цитата(Alechek @ May 19 2016, 21:46) +1 Э...   May 19 2016, 16:55
|- - Alechek   Цитата(an24 @ May 19 2016, 21:55) Приколь...   May 20 2016, 07:28
|- - Baser   Цитата(an24 @ May 19 2016, 18:58) Конечно...   May 19 2016, 16:05
- - Baser   Цитата(an24 @ May 19 2016, 11:06) Я хотел...   May 19 2016, 15:48
- - ArtemKAD   ЦитатаНо в SIM800 он реализован как полудуплексный...   May 19 2016, 16:15
- - an24   Цитата(ArtemKAD @ May 19 2016, 21:15) Или...   May 19 2016, 16:29
|- - ArtemKAD   Цитата(an24 @ May 19 2016, 19:29) Я его в...   May 19 2016, 17:09
- - Baser   Цитата(ArtemKAD @ May 19 2016, 19:15) ЗЫ....   May 19 2016, 16:33
- - ArtemKAD   Цитата(Baser @ May 19 2016, 19:33) Не ста...   May 19 2016, 16:51


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 22:56
Рейтинг@Mail.ru


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