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

 
 
> SIM300D CIPSEND - глохнет при большом размере?, При большом пакете бросает CTS и не поднимает
Овец
сообщение Sep 15 2008, 13:04
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 15-09-08
Пользователь №: 40 202



Наблюдаю такой эффект: в режиме TCP при посылке через AT+CIPSEND=size модем иногда наглухо бросает CTS, прекращает принимать команды (даже если игнорировать CTS) и лечится только перезапуском по питанию.

Эффект вероятностный и зависит от длины пакета данных, причем даже не в байтах, а от времени его передачи из контроллера. Например, на 57600 "критический" размер порядка 320 байт, а на 115200 - около 700. На 57600 пакет в 512 байт уже не передается практически никогда, 256 - не удалось поймать на зависании (вероятность маленькая?), а 320-384 раз на раз не приходится.

Вижу на осциллографе, что после команды CIPSEND модем опускает CTS примерно через 100 мс
после начала передачи данных, и это время, похоже, не зависит от размера данных. Собственно, пересылка через UART к этому времени уже закончена.
Потом в норме через несколько десятков мс (после передачи в GSM?) CTS возвращается
обратно. А если зависло - не возвращается.

Это баг в прошивке или я что-то делаю не так?

1008B14SIM300D32_SST34HF3284
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
skaarj
сообщение Sep 15 2008, 20:32
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 64
Регистрация: 2-08-08
Из: Киев
Пользователь №: 39 380



а при подаче ат команды какой размер данных указывали?


--------------------
Электроника- наука о контактах: или он есть там,где не должен быть, или его нет там где он нужен
Go to the top of the page
 
+Quote Post
Овец
сообщение Sep 16 2008, 07:52
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 15-09-08
Пользователь №: 40 202



Цитата(skaarj @ Sep 16 2008, 00:32) *
а при подаче ат команды какой размер данных указывали?

Тот, который я называю "длиной пакета" в исходном посте. То есть переменный, собственно о нем и речь.

Дальнейшие эксперименты показали, что при скорости порта 19200 эффект не наблюдается вообще, линия CTS не переходит в неактивное состояние даже кратковременно. Начиная с 28800 как будто бы меняется логика работы модема:
1) примерно через 100 мс после начала посылки CIPSEND модем бросает CTS
далее одно из двух:
2a) через время, на вид пропорциональное размеру посылки, CTS возвращается в активное состояние.
2b) CTS остается неактивным и модем перестает принимать команды до отключения питания.

Причем вероятность зависания зависит от длины посылки и скорости порта: я бы сказал, от заполнения передачей данных интервала в ~100мс до сброса CTS. Так, на 28800 при CIPSEND=256 зависнуть не удалось, а при 272 виснет в 3 случаях из 10 (дальше больше). На 38400, соответственно, критический размер около 320-336 байт. На 115200 - порядка 700-750.
Бросается в глаза, что модем переводит CTS в неактивное состояние не во время приема данных (как было бы логично по смыслу CTS), а - с точки зрения UART - на ровном месте. Команда-то уже принята, контроллер сидит себе и ждет ответа SEND OK...

На осциллографе это выглядит примерно так:
1. Не зависло
Прикрепленное изображение

2. Зависло
Прикрепленное изображение


А вот на 19200 хоть все 1024 байта посылай - эффект отсутствует.

Но, как я писал, связь нечеткая: бывает, что конец передачи от м/к в модем ближе к моменту опускания CTS, и не виснет, а в другой раз дальше - и виснет. Как будто бы команда CIPSEND вместе с указанным количеством данных должна уложиться в "случайный" интервал времени, мат. ожидание которого немного меньше 100 мс.


Цитата(edo @ Sep 15 2008, 20:00) *
первый вопрос - с питанием всё нормально?


По питанию стоит персональный LM2576. Коллега специально бился, чтобы шум при передаче не выходил за паспортные границы.
Какие-то помехи, конечно, есть но см. ответ skaarj - питанием трудно объяснить отличия в поведении при смене скорости порта и размера пакета. Просмотр VBAT вокруг момента зависания никаких красивых синхронных просадок не выявил...

Сообщение отредактировал Овец - Sep 16 2008, 07:53
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 09:03
Рейтинг@Mail.ru


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