Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900 очередной глюк
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
ssokol
Здравствуйте уважаемые форумчане. Имеем:
SIM900 R11.0
SimCom LTD
SimCom_SIM900
REVISION 1137B04SIM900M64_ST
Подаю команду , например AT+CSQ, сразу же, как только получаю на нее ответ с ОК в конце, подаю другую команду , например AT+CBC, в таком случае на CBC вообще никакого ответа нет, но стоит после ответа на CSQ подождать 100милисекунд и ответ на CBC приходит.
Сим900 впаял в устройство при переходе с СИМ300ДЗ, на котором все работало без всяких доп задержек. (Да и какого черта давать ОК на предыдущую команду, если не готов принять следующую)
Может кто встречался с подобным, посоветуйте, куда копать, менять прошивку на семерку?
Aner
а 4 версию на 7 поменять можете?
ssokol
Цитата(Aner @ Jan 25 2011, 04:17) *
а 4 версию на 7 поменять можете?

Это пока единственное, что приходит на ум, тк даже задержку непонятно сколько надо.
CADiLO
Кстати да - первое что надо сделать, это обновиться.
Затем отключить автоопределение скорости.

ssokol
Цитата(CADiLO @ Jan 25 2011, 10:21) *
Кстати да - первое что надо сделать, это обновиться.
Затем отключить автоопределение скорости.

Здравствуйте уважаемый CADiLO.
Разъясните, пожалуйста один момент с автоопределением скорости. Автоопределение включено. Скорость 19200.
После вкл сима даю АТ, получаю ОК, далее все остальный команды начиная с АТ, в процессе работы скорость не меняю.
Вопрос - автоопределение в таком процессе работы срабатывает перед каждой командой, либо один раз вначале и до тех пор
пока , если не изменится скорость не срабатывает.
Данный алгоритм без проблем работал на 300, 300с,300дз начиная еще даже с 10ой версии прошивки, неужели в 900 это стало хуже.
И еще просьба, если не затруднит, поделиться семеркой для сим900 и прошивальщиком, я доступа в свои пока не имею, а в евромобайле
как-то все очень медленно получается да и шлют , частенько не то, что просишь.
S2-1040S-Z090C
SN MP0610250007649
IMEI 012207000371176
alex_sokolov<собака>pisem.net
Спасибо
CADiLO
Ответил по E-mail.
stream
Цитата(ssokol @ Jan 25 2011, 12:08) *
Вопрос - автоопределение в таком процессе работы срабатывает перед каждой командой, либо один раз вначале и до тех пор
пока , если не изменится скорость не срабатывает.

На SIM900 оно срабатывает один раз после включения и больше не срабатывает никогда. Раньше были китайские ватты, а теперь - вот такой вот китайский автобод.
av-master
Цитата
китайский автобод.
а какты подругому себе это представляеш?
CADiLO
Самое интересное что мыши мучаются, колются, но кактус грызут.
Что для 300-й серии, что для 900-й уже не раз говорилось - не используйте автоопределение.
Нет, надо создать себе проблему, а потом на нее же и жаловаться.

Only the strings “AT” or “At” (not “aT” or “at”) can be detected when auto-bauding is enabled.
It is recommended that ALL AT commands shall be prefixed with “AT”.

Отсюда следует что пересинхронизация идет по КАЖДОЙ АТ команде.

stream
Цитата
Отсюда следует что пересинхронизация идет по КАЖДОЙ АТ команде.

sm.gif sm.gif sm.gif Вы же разработчик со стажем, зачем вы верите (а) современной (б) китайской документации? Попробуйте сами.

1. "По каждой команде" с грехом пополам работало в SIM300. В SIM900 это уже сломали, а документацию поправить забыли. Срабатывает один раз - причем почти идеально - быстро, на любую скорость, включая 115200 (о чем в доке тоже забыли написать). А вот после этого при смене скорости - только кракозябрики.

2. По "at" не автободится. Никак и никогда. Только по "AT".

Да, SIM900B 5-я прошивка. Вдруг они отличаются.

Цитата
Самое интересное что мыши мучаются, колются, но кактус грызут.

Мне лично все равно, мои приборы закладываются на автобод только при первом включении устройства со свежеустановленным модулем, после чего автоматом делают AT+IPR=NNN &W и сводят задачу к решенной.
Aurochs
Цитата(CADiLO @ Jan 25 2011, 11:18) *
Что для 300-й серии, что для 900-й уже не раз говорилось - не используйте автоопределение.

Ну, вообще не использовать его же нельзя - автоопределение инициализируется в соответствии с фабричными установками. Лично я использую его по такой схеме
1. Посылаем команду AT
2. Ждем OK в течение 1 сек.
3. Если не дождались то к п.1
4. Явно прописываем в модем текущую скорость.
Работает со 100%-ным результатом. А если отказ модеиа - то крутимся в бесконечном цикле.
rx3apf
Цитата(stream @ Jan 25 2011, 13:17) *
sm.gif sm.gif sm.gif Вы же разработчик со стажем, зачем вы верите (а) современной (б) китайской документации? Попробуйте сами.

1. "По каждой команде" с грехом пополам работало в SIM300. В SIM900 это уже сломали, а документацию поправить забыли. Срабатывает один раз - причем почти идеально - быстро, на любую скорость, включая 115200 (о чем в доке тоже забыли написать). А вот после этого при смене скорости - только кракозябрики.

Угу. Но, тем не менее, если не отключить, то при отсутствии задержек между командами иногда просто не берет очередную команду, даже эхо ломается (проходит частично, совсем не проходит). Так что отключать надо, оно само не отключается полноценно.

ssokol
Цитата(CADiLO @ Jan 25 2011, 12:18) *
Самое интересное что мыши мучаются, колются, но кактус грызут.
Что для 300-й серии, что для 900-й уже не раз говорилось - не используйте автоопределение.
Нет, надо создать себе проблему, а потом на нее же и жаловаться.

Only the strings “AT” or “At” (not “aT” or “at”) can be detected when auto-bauding is enabled.
It is recommended that ALL AT commands shall be prefixed with “AT”.

Отсюда следует что пересинхронизация идет по КАЖДОЙ АТ команде.

Мы не мыши , не артисты
а разработчики-мазохисты.
(Благодаря Китаю)
Как Вы посмотрите на такое: Вкл сим900 (аутободинг enable), даю АТ, после получения ОК даю AT+IPR=19200 ,ОК, и дальше все остальное, что вот собственно в следующем посте, пока я писал, участник stream подтвердил.
Но уж, позвольте Вас мучать так до конца - сколько раз &W можно сказать памяти сим900?
CADiLO
Хм... перепроверил... Таки да. Чтобы сменить в процессе работы скорость надо с DTR извращаться. SIM900 v7
Вот так и умирает вера в светлое будущее sm.gif

А 115200 детектится - но только при рассогласовании скорости не более 0.5%
У клиента на атмеле проект, там на 115200 ошибка в скорости была примерно 1.5% - не определялось.
Он автодетектился на 9600 и потом переходил на фиксированую 115200.


Так - нашел фичу - если дать команду AT+IPR=0 и сразу сменить скорость, то меняется без извратов с DTR.
Следующая АТ уже определяется на новой скорости.
stream
Цитата(ssokol @ Jan 25 2011, 14:45) *
Как Вы посмотрите на такое: Вкл сим900 (аутободинг enable), даю АТ, после получения ОК даю AT+IPR=19200 ,ОК, и дальше все остальное, что вот собственно в следующем посте, пока я писал, участник stream подтвердил.
Но уж, позвольте Вас мучать так до конца - сколько раз &W можно сказать памяти сим900?

Можно и не мучить флеш, а сначала спросить "AT+IPR?" и проанализировать ответ. Если в ответе ноль - тогда и выдавать +IPR=19200 и AT&W. Иначе в модуле и так уже все нормально настроено на 19200 с прошлого раза. Можно еще поизвращаться, анализируя, пришло ли после включения RDY, +CPIN: и т.д., что приходит только при фиксированной скорости, но это на любителя.


Цитата(CADiLO @ Jan 25 2011, 14:49) *
А 115200 детектится - но только при рассогласовании скорости не более 0.5%
У клиента на атмеле проект, там на 115200 ошибка в скорости была примерно 1.5% - не определялось.

Понятно... Современный ARM с дробными делителями на UART сильно облегчает жизнь. У меня при тактовой 60MHz ошибка на 115200 составляет 68,4 бода, т.е. 0,06%

Цитата
Так - нашел фичу - если дать команду AT+IPR=0 и сразу сменить скорость, то меняется без извратов с DTR.
Следующая АТ уже определяется на новой скорости.

Предполагаю, что и AT&F тоже поможет - т.е. все, что почистит состояние каких-то переменных в модуле.
CADiLO
&W можете не давать - запоминается автоматически само.

SIM900_Sim300_ATC_Comparison_V1.01.pdf - тут есть сводный список команд которым теперь не нужно давать принудительное запоминание.

>>>Понятно... Современный ARM с дробными делителями на UART сильно облегчает жизнь. У меня при тактовой 60MHz ошибка на 115200 составляет 68,4 бода, т.е. 0,06%

Если бы клиент согласился поставить кварц на 18.432MHz у него тоже было бы все в норме по делителям.
Но он решил остаться на 20 мегагерцах и переделать инициализацию.

ssokol
Цитата(ssokol @ Jan 24 2011, 23:57) *
Подаю команду , например AT+CSQ, сразу же, как только получаю на нее ответ с ОК в конце, подаю другую команду , например AT+CBC, в таком случае на CBC вообще никакого ответа нет, но стоит после ответа на CSQ подождать 100милисекунд и ответ на CBC приходит.
Сим900 впаял в устройство при переходе с СИМ300ДЗ, на котором все работало без всяких доп задержек. (Да и какого черта давать ОК на предыдущую команду, если не готов принять следующую)

Короче, все заработало, все дело в кривости аутободинга сим900, даже по сравнению с сим300, при включении сим900 - аутободинг- сразу в качель! maniac.gif
To CADiLO - требуйте от китайцев, в том что будет после сим900, уже не автободинг, а старые добрые перемычки, а то вообще не включить будет. smile3046.gif
ВСЕМ ОТКЛИКНУВШИМСЯ ОГРОМАДНЕЙШЕЕ СПАСИБО!!!
P.S.Но прошивку всеж надо обновить...
P.P.S.На сим900 4 прошивке заметил, субъективно конечно, но команды дольше исполняются чем на 300дз с 14 прошивкой.
CADiLO
Дык это даже сами китайцы говорят

- определил скорость - выключи автоопределение и работай нормально на фиксированой.
Peps
Цитата
А 115200 детектится - но только при рассогласовании скорости не более 0.5%

Кстати, с удивлением прочитал в мануалках, что SIM900D на 115200 не детектится... Пол года назад, как только появились SIM900D впаял его вместо SIM300D и благополучно работает по сей день... Видимо ошибка в скорости маленькая...

Из коего вопрос: таки да - скорость нужную установим, не проблема. Вопрос в том, на какой скорости начинает работать модем перед запуском процедуры автоопределения скорости, так сказать скорость по умолчанию? В SIM300В четко было написано, что на 115200.
HARMHARM
SIM900 нормально автободит 115200. Сразу фиксирую и вперёд.
ssokol
Цитата(CADiLO @ Jan 26 2011, 09:52) *
Дык это даже сами китайцы говорят
- определил скорость - выключи автоопределение и работай нормально на фиксированой.

За то , начальство увидав мои мытарства,поняло, что работать с GSM модулями- очень сложно, требуются большой опыт, знания и мастерство и оценило это небольшой премией,
а еслиб сразу все пошло, то ее ,как своих ушей не видать.
Перепрошился на 7 версию, ответ на команды (типа CSQ CREG CBC) идет раза в 2-3 дольше , чем на 300дз :-(
grinux
Цитата(ssokol @ Jan 26 2011, 14:57) *
За то , начальство увидав мои мытарства,поняло, что работать с GSM модулями- очень сложно, требуются большой опыт, знания и мастерство и оценило это небольшой премией,
а еслиб сразу все пошло, то ее ,как своих ушей не видать.
Перепрошился на 7 версию, ответ на команды (типа CSQ CREG CBC) идет раза в 2-3 дольше , чем на 300дз :-(


Да, по скороси ответов на эти команды можно покурить успеть.
CADiLO
Специально в понедельник поставлю сниффер с временными метками и выложу логи.
SIM900 на EVB ките, прошивка седьмая - смотрю терминалом.
Ответы появляются практически мгновенно. Никто ничего не ждет.
Набрал команду, нажал энтер, тут же ответ.

RTS, CTS и DTE куда прицеплены у Вас?

ssokol
Цитата(CADiLO @ Jan 28 2011, 18:37) *
Специально в понедельник поставлю сниффер с временными метками и выложу логи.
SIM900 на EVB ките, прошивка седьмая - смотрю терминалом.
Ответы появляются практически мгновенно. Никто ничего не ждет.
Набрал команду, нажал энтер, тут же ответ.

RTS, CTS и DTE куда прицеплены у Вас?

rts cts замкнуты через 100 ом, dte никуда т.к такого провода ни у сим300 ни у сим900 я не нашел, скорость 19200.
Я заметил замедление на подключенном к системе жк дисплее куда для контроля вывожу некоторые вещи, у меня перед подключением ГПРС идут
подряд несколько команд, получив ответ на предыдущую, тут же посылаю следующую, так вот на сим300 на жк они промелькивали так , что все сливалось, а на сим900 уже различаю, субъективизм, но тем не менее.
grinux
Цитата(CADiLO @ Jan 28 2011, 18:37) *
Специально в понедельник поставлю сниффер с временными метками и выложу логи.
SIM900 на EVB ките, прошивка седьмая - смотрю терминалом.
Ответы появляются практически мгновенно. Никто ничего не ждет.
Набрал команду, нажал энтер, тут же ответ.

RTS, CTS и DTE куда прицеплены у Вас?


Прицеплены на соответствующие ноги MCU, кроме DTE.

Речь идет только о командах запроса статуса регистрации и уровня сигнала в образном сравнении с SIM300. Работе это не мешает.
CADiLO
Из строки отправляется команда, тут же приходит ответ, время до 3-го знака - нету задержек.
Вот как лог записался, так и выкладываю. В СОМтулките можно отправлять заранее заготовленые строки, вот только энтер и успевал нажимать. Прошивка седьмая. На шестой тоже самое. В SIM300D те же временные значения.
Проверялось на EVB kit, скорость фиксированая 115200.
Терминал - http://www.compt.ru/ - точнее у меня нету, но не думаю что за 0.0001 секунды успеете покурить.


000001 12:04:20.187 41 54 2B 43 52 45 47 3F 0D 0D 0A 2B 43 52 45 47 AT+CREG?...+CREG
000002 12:04:20.187 3A 20 30 2C 31 0D 0A 0D 0A 4F 4B 0D 0A : 0,1....OK..

000003 12:04:21.234 41 54 2B 43 52 45 47 3F 0D 0D 0A 2B 43 52 45 47 AT+CREG?...+CREG
000004 12:04:21.234 3A 20 30 2C 31 0D 0A 0D 0A 4F 4B 0D 0A : 0,1....OK..

000005 12:04:22.140 41 54 2B 43 52 45 47 3F 0D 0D 0A 2B 43 52 45 47 AT+CREG?...+CREG
000006 12:04:22.140 3A 20 30 2C 31 0D 0A 0D 0A 4F 4B 0D 0A : 0,1....OK..

000007 12:04:24.375 41 54 2B 43 52 45 47 3F 0D 0D 0A 2B 43 52 45 47 AT+CREG?...+CREG
000008 12:04:24.375 3A 20 30 2C 31 0D 0A 0D 0A 4F 4B 0D 0A : 0,1....OK..

000009 12:04:25.218 41 54 2B 43 52 45 47 3F 0D 0D 0A 2B 43 52 45 47 AT+CREG?...+CREG
000010 12:04:25.218 3A 20 30 2C 31 0D 0A 0D 0A 4F 4B 0D 0A : 0,1....OK..

000011 12:04:26.421 41 54 2B 43 42 43 0D 0D 0A 2B 43 42 43 3A 20 30 AT+CBC...+CBC: 0
000012 12:04:26.421 2C 39 33 2C 34 31 30 34 0D 0A 0D 0A 4F 4B 0D 0A ,93,4104....OK..

000013 12:04:27.093 41 54 2B 43 42 43 0D 0D 0A 2B 43 42 43 3A 20 30 AT+CBC...+CBC: 0
000014 12:04:27.093 2C 39 33 2C 34 31 30 34 0D 0A 0D 0A 4F 4B 0D 0A ,93,4104....OK..

000015 12:04:27.828 41 54 2B 43 42 43 0D 0D 0A 2B 43 42 43 3A 20 30 AT+CBC...+CBC: 0
000016 12:04:27.828 2C 39 33 2C 34 31 30 34 0D 0A 0D 0A 4F 4B 0D 0A ,93,4104....OK..

000017 12:04:28.468 41 54 2B 43 42 43 0D 0D 0A 2B 43 42 43 3A 20 30 AT+CBC...+CBC: 0
000018 12:04:28.468 2C 39 33 2C 34 31 30 34 0D 0A 0D 0A 4F 4B 0D 0A ,93,4104....OK..

000019 12:04:29.250 41 54 2B 43 42 43 0D 0D 0A 2B 43 42 43 3A 20 30 AT+CBC...+CBC: 0
000020 12:04:29.250 2C 39 33 2C 34 31 30 34 0D 0A 0D 0A 4F 4B 0D 0A ,93,4104....OK..

000021 12:04:29.859 41 54 2B 43 53 51 0D 0D 0A 2B 43 53 51 3A 20 32 AT+CSQ...+CSQ: 2
000022 12:04:29.859 33 2C 30 0D 0A 0D 0A 4F 4B 0D 0A 3,0....OK..

000023 12:04:30.406 41 54 2B 43 53 51 0D 0D 0A 2B 43 53 51 3A 20 32 AT+CSQ...+CSQ: 2
000024 12:04:30.406 33 2C 30 0D 0A 0D 0A 4F 4B 0D 0A 3,0....OK..

000025 12:04:30.984 41 54 2B 43 53 51 0D 0D 0A 2B 43 53 51 3A 20 32 AT+CSQ...+CSQ: 2
000026 12:04:30.984 33 2C 30 0D 0A 0D 0A 4F 4B 0D 0A 3,0....OK..

000027 12:04:38.546 41 54 2B 43 53 51 0D 0D 0A 2B 43 53 51 3A 20 32 AT+CSQ...+CSQ: 2
000028 12:04:38.546 33 2C 30 0D 0A 0D 0A 4F 4B 0D 0A 3,0....OK..

000029 12:04:39.062 41 54 2B 43 53 51 0D 0D 0A 2B 43 53 51 3A 20 32 AT+CSQ...+CSQ: 2
000030 12:04:39.062 33 2C 30 0D 0A 0D 0A 4F 4B 0D 0A 3,0....OK..
ZyBEX
Цитата(ssokol @ Jan 28 2011, 21:37) *
...dte никуда т.к такого провода ни у сим300 ни у сим900 я не нашел...

И никогда не найдете. DTE - это обозначение стороны хоста. Есть еще DCE - сторона модема.

Раз уж речь зашла о сигналах, спрошу: Кто нибудь успешно использует подключение sim900 только по RxD и TxD ? (без cts, dts и т.д.)
CADiLO
DTE - моя опечатка. Правильно - DTR.
butthead2
Цитата(ZyBEX @ Feb 4 2011, 14:27) *
Раз уж речь зашла о сигналах, спрошу: Кто нибудь успешно использует подключение sim900 только по RxD и TxD ? (без cts, dts и т.д.)

Использую без проблем. Специально сутки мониторил состояние аппаратного управления потоком - ни разу не запросил остановки. Но gprs траффик был слабенький.
ZyBEX
А скорость 9600 ?
13amator
Цитата(ZyBEX @ Feb 4 2011, 14:27) *
И никогда не найдете. DTE - это обозначение стороны хоста. Есть еще DCE - сторона модема.

Раз уж речь зашла о сигналах, спрошу: Кто нибудь успешно использует подключение sim900 только по RxD и TxD ? (без cts, dts и т.д.)

Контроллер на подходе, а с персоналкой по Rx Tx проблем нет.
butthead2
Цитата(ZyBEX @ Feb 4 2011, 15:35) *
А скорость 9600 ?

19200. Больше смысла не было - контроллер переваривать не успевал.
stream
Цитата(ZyBEX @ Feb 4 2011, 15:27) *
Раз уж речь зашла о сигналах, спрошу: Кто нибудь успешно использует подключение sim900 только по RxD и TxD ? (без cts, dts и т.д.)

CTS обязательно потребуется, если будете использовать CSD (соединение будет 9600, а порт на 19200 или выше) или GPRS в режиме внешнего IP-стека. Очень похоже, что также потребуется, если будете использовать встроенный IP-стек в прозрачном режиме. Пока работаете AT-командами - прокатит и так.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.