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

 
 
> autobauding и DTR -- не работает!
Frolov Kirill
сообщение Sep 13 2011, 10:30
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 2-02-11
Пользователь №: 62 643




В этом документе (http://www.mt-system.ru/documents/sim900 at compare to sim300.pdf) указывается, на странице 6, что импульс DTR включает т.н. autobauding, в случае, если изначально скорость была насильно задана через AT+IPR. Импульс лог. 1 не менее 2-х секунд мол включает.

Ничего не включает. И если для SIM300 можно было установить скорость, но он её автоматически не запоминал, то с SIM900 возникает дурная история. Когда модуль запоминает скорость и после включения питания сразу работает только на ней. Функция autobauding более в принципе не работает.

Нехорошая ситуация, если стоит задача обновления ПО, при этом в старой версии используется другая скорость. Лучше было бы иметь всегда включенный autobauding после включения питания (не запоминать настройку AT+IPR, как и SIM300).


Забыл сказать. Не отключать autobauding тоже дурная идея, ибо глючит. На длинных последовательностях передаваемых данных собственно данные искажаются. Прошивка B08, ST.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
CADiLO
сообщение Sep 13 2011, 11:26
Сообщение #2


Гуру
******

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



При выходе из спячки при CSCLK=2 потеряется первый байт.

4.3.5
Wake Up SIM900 from Sleep Mode 2 (AT+CSCLK=2)
When SIM900 is in sleep mode 2 (AT+CSCLK=2), the following methods can wake up the module:
.............
* Note: The first byte of the user’s data will not be recognized.


Кроме того я повторюсь: рекомендую не использовать автоопределение вообще - избавит от множества проблем.
Ну а то что нужны более высокие скорости.... PIC12 с софтовым обменом чудненько общается на 115200 без всяких FIFO и при этом еще и два датчика обрабатывает. Писано правда на ассемблере - но тут С и не годится если хотим по временам укладываться.


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


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 2-02-11
Пользователь №: 62 643



Цитата(CADiLO @ Sep 13 2011, 15:26) *
При выходе из спячки при CSCLK=2 потеряется первый байт.


С +CSCLK=2 история такова. Версии по B05 включительно не засыпали нормально при +CSCLK=1. А SIM300 засыпал. Сейчас версия B08 тоже засыпает при +CSCLK=1. Было поставлено +CSCLK=2. Тогда все SIM900 любых версий засыпают и даже работают нормально. Первый байт, на самом деле, никогда не теряется, потому, что логика работы осталась от того варианта, где +CSCLK=1 -- перед командой будет смена DTR с 1 на 0 -- вот он и проснётся. Первый байт не теряется. Теряется где-то в середине длинной AT-команды или при передаче длинных данных.

Цитата
Ну а то что нужны более высокие скорости.... PIC12 с софтовым обменом чудненько общается на 115200 без всяких FIFO и при этом еще и два датчика обрабатывает. Писано правда на ассемблере - но тут С и не годится если хотим по временам укладываться.


Успеет или нет зависит от двух причин:

1) от латентности обработчика прерываний. Где могут быть более высокоприоритетные прерывания (звук, например). Или не может быть нормальной системы приоритетов (PIC18). Это тот случай, когда FIFO полезен (медленный обработчик прерываний). И не надо PIC12 с ассемблерами притягивать за уши, который ничем больше не занят. 486DX40 вон не успевал, без 16550A если. Для PIC18 -- 800 тактов на байт. Он успеет, но он ничем другим больше занят не будет.

2) от скорости обработки поступающих данных. FIFO уже не поможет. Только если программный FIFO большего объёма, или снижение скорости передачи. Потому, что программа поступающие данные с такой скоростью обрабатывать не может. Тут конечно вспомнят о том, что есть RTS/CTS (которые глючат в SIM300...), XON/XOFF, GSM 07.10...


Цитата(CADiLO @ Sep 13 2011, 15:50) *
SIM900B мы не поставляем и что там с прошивками не знаю. Но по остальным модулям жалоб на неудобства с сохранением IPR не было. Думаю что стоит Вам просто еще раз продумать алгоритм инициализации и переключения скорости.


Если убрать автосохранение, то это нисколько не мешает тем, кому оно нужно: сохранят в первой команде (&W в конец добавить).

Если не убирать автосохранение, то это мешает тем, кто хочет всё-же менять скорость при смене прошивки прибора. Ничто не мешает стартовать в режиме +IPR=0 и первой командой сделать +IPR=38400, например. И работать на фиксированной скорости. Но если следующая прошивка захочет +IPR=115200 -- ей ничего не помешает это сделать (после включения питания модема). А сейчас нужно все скорости подряд перебирать пока на нужную не наткнёшься -- ненужное извращение.

Более того, это автосохранение доставляет... радости. Когда модем втихую перезапускается (из-за глюков в его прошивке) и делает вид, что дальше работает. Потому, что он не всё подряд автосохраняет... Лучше бы делал вид, что завис.
Go to the top of the page
 
+Quote Post



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

 


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


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