schisik
Oct 3 2011, 19:41
Здравствуйте все. У меня такая проблема Собрал схему на sim900 питание по даташиту связь с компом через ft232rl. Преобразование уровней Трансмитер модуля через 2 транзистора с привязкой к vbat рессивер через резистор 3 ком и стабилитрон на 2,7 вольта. Конденсатор на 47 мкф вместо батарейки. Проблема в следующем модуль включается проходит регистрацию в сети начинает коротко моргать раз в 3 секунды, но СОВЕРШЕННО НЕ ВОСПРИНИМАЕТ КОМАНДЫ. Он их зеркально отсылает обратно, никаких OK и так далее. При включении тоже ничего не показывает никаких FF . Когда звонишь на модуль терминал принимает RING/ Отменяешь он показывает NO CARRIER. Но ни какие команды в себя не принимает. Кроме начальной команды A во время включения после этого RING и NO CARRIER начинают отображаться. В чем дело пробовал перепрошивать новой прошивкой, результат тот же самый купил второй модуль, та же картина, думал запалил вход RX модуля. Я так понимаю интерфейс связи в порядке раз по нему я перешивал модуль, переставив провода с TXD и RXD на DBG_TXD и DBG_RXD. Читал на вашем форуме про такую проблему, там решение сводилось в том что человек не переводил каретку, но я так понимаю в терминале есть галочка CR=CR+LF. Тоесть я думаю можно просто вводить, команду или я не прав, помогите на вас вся надежда. Прошу сильно не критиковать, GSM модуль подключаю впервые, наверняка я в трех соснах заблудился, но выйти не могу уже неделю. Может какую команду надо послать чтобы модуль стал общаться с терминалом как надо или как ? Уже все форумы облазил. И почему в момент загрузки он ничего не отсылает в терминал никаких 00 49 49 49 49 FF FF FF FF и прочей информации. Что не так ?
В разных форумах рекомендуют одни CTS соединить с RTS другие RTS посадить на массу. Я ничего этого не делал, может что то просто забыл какие ножки на массу посадить, не знаю уже что и думать.
MKdemiurg
Oct 3 2011, 20:31
Недавно столкнулся с забавным моментом когда подключал другой девайс через ft232rl - эта микруха инвертирует сигнал. Т.е. логический ноль , а не 1 , для неё - отсутствие сигнала... Модуль получает данные и отправляет обратно, а распознать не может... Воспринимается как зеркалирование...
Однозначно RTS на землю. И будет Вам счастье. Я в далекие-далекие времена тож на такие грабли наступлал. Еще на SIM300.
Возможно, под TXD и RXD есть замыкание - и соответственно преобразователь уровней зеркалит сам себя, а до модуля не доходит. а перекидывая на порты ДЕБАГ там, соответственно, замыкания нет. Насчет инверсии сигнала - раз перепрошился, то преобразователь работает нормально. у меня была похожая проблема из-за замыкания.Модулю тупо не хватало сигнала, что-ли... убрал - заработало. RTS у меня никакого значения не имеет.
1 может выпаять модуль и проверить сопротивление между ТХ и РХ, и соответственно между ними и землей. А потом, не впаивая модуль, проверить то же самое сопротивление на соответствующих площадках. А может правда спалил...
2 Убери лишнее - кондер или батарейка для запуска не нужен
Romashki
Oct 4 2011, 07:24
С FT232 все нормально, ничего она не инвертирует. На землю тоже в сим900 не нужно садить ни CTS ни RTS (если Вы конечно не включаете аппаратный или программный контроль этих линий). У верен все дело в месте между модулем и FT232. Попробуйте по этому сделать
http://microchip.ua/simcom/GSM-GPRS-GPS/SI...%20to%203v3.JPG
schisik
Oct 4 2011, 08:23
У меня линии TXD и RXD между собой не замкнуты, прозванивал. Спаял уже два модуля, второй впаивал молясь и с заземлением спалить точно не мог ножки rx tx прозванивал относительно земли звонится как диод, я так понимаю что супрессор не спалил. Но вот еще раз спрашиваю должен ли он в терминал какие значения посылать или пока команды какие не введешь ничего не будет
Ведь самое интересное прошивка то меняется значит линия связи в порядке тоесть FT232 стабилитрон с резюком и транзисторная часть. Почему складывается впечатление что именно рессивет не воспринимает команду. Хотя нет одну воспринимает всеже любую команду начинающуюся с A но больше ничего и еще если нетрудно поясните какие именно символы переноса нужно добавлять, может всетаки в них дело, ну неужто все не разрешимо ?
Romashki
Oct 4 2011, 08:24
Должен в терминал обязательно выдавать... и по включению тоже (на 115200 б/с).
Символы 0x0D при посылке
Например
AT+CBC[0x0D]
schisik
Oct 4 2011, 08:27
И зеркалить команды он начинает только после любой команды лишь бы там был символ A Тоесть и рессивер и трансмитер получается всеже работают, в чем тогда дело. Я в слезах
Спасибо Romashki вечером как с работы приду попробую так ввести
Romashki
Oct 4 2011, 08:28
Покажите что он Вам отвечает например просто на AT[0x0D].
schisik
Oct 4 2011, 08:29
Но по включению вообще ничего не дают оба модуля только при выключении NORMAL POWER DOWN пробовал в 3 разных терминальных программа hyper terminal breyyевский терминал и встроенный в XP
Romashki
Oct 4 2011, 08:30
Видимо по включению терминал у Вас настроен НЕ на 115200
schisik
Oct 4 2011, 08:32
Когда я отправляю команду AT он ее зеркально мне отправляет назад, но после этого как звонишь на модуль он пишет ring больше ничего не выдает никакого ответа только обратно AT или лубую другую кракозябру отсылает обратно
нет он на 9600 настроен, но ведь он мне присылает в какой надо кодировке ответы при выключении или надо именно ту скорость ставить, какую вы написали, извиняюсь за возможно глупые вопросы, но он ведь вроде бы сам синхронизирует скорость с терминалом
Romashki
Oct 4 2011, 08:36
По умолчанию модуль настроен на auto baud rate, поскольку по включению модуль еще не получал команд, он посылает на 115200, но как только Вы ему пришлете первую (любую) команду - он перестроится автоматически на ту скорость, на которой пришла команда. И до выключения или до явного указания скорости - останется на ней.
schisik
Oct 4 2011, 08:50
Тоесть если я скорость в терминале ставлю отличную от 115200 то он не воспринимает, но как он тогда мне ответы о выключении посылает, значит нужно запустить терминал на скорости 115200 и послать AT я так понимаю ?
Если видны сообщения типа RING, NORMAL POWER DOWN - уже хорошо, значит, по крайней мере скорости совпали. Теперь надо разобраться, это модем возвращает эхо, или сама терминальная программа ? При выключенном модеме что-то в ответ на нажатие клавиш поступает ? Если нет - значит, все ж модем. Теперь надо разбираться, почему модем не распознает команды - скажем, на "AT" должно вернуться "AT", и затем "OK", отдельной строкой. Команды, естественно, должны завершаться кодом <Cr> (0D hex). Не получается ? Похоже, проблема в согласовании уровней от терминала к модему. Если там сигнал ограничивается стабилитроном (схемку, кстати, в студию, и сразу с номиналами), то, возможно, из-за высокоомного токоограничительного резистора и собственной емкости стабилитрона слишком искажены фронты, искажено соотношение "0" и "1", и, как следствие, система автонастройки скорости у модема сходит с ума (была бы зафиксирована - вероятно, работало бы). Так что схемку в студию. И посмотрите уровни осциллографом.
Поставьте сниффер, покажите лог(причем в hex), а так... гадание на кофейной гуще. После ввода команды enter нажимали(это тот самый 0x0d)?
Romashki
Oct 4 2011, 08:54
Судя по тому, что прошивка становится - уровни вроде бы как согласованы. Но на схемку не мешалобы взглянуть.
Вобщем нужна схемка согласования и лог с тем что Вам не нравится. Так быстрее все решится.
Верно - схему в студию.
И еще - как подаем команды и на какой скорости ?
Желательно лог.
Цитата(Romashki @ Oct 4 2011, 12:36)

По умолчанию модуль настроен на auto baud rate, поскольку по включению модуль еще не получал команд, он посылает на 115200, но как только Вы ему пришлете первую (любую) команду - он перестроится автоматически на ту скорость, на которой пришла команда. И до выключения или до явного указания скорости - останется на ней.
если автободинг включен-то можно хоть через каждую команду менять скорость.
schisik -
в самом начале какая скорость стояла?
если работаете через гипертерминал, то стоит "восстановить умолчания". или вообще установить минимальную скорость для модуля (2400 по-моему)
если на этой скорости что-то выдает (а должен,так стоит автободинг) то можно переключить в настройках гипертерминала скорость на 115200,я так думаю.
Может быть правда слишком искажены фронты, но на маленькой скорости - может прокатит...
Romashki
Oct 4 2011, 11:20
Если прошивка проходит (по умолчанию по моему 460800 б/с), то должно на 115200 все быть ОК.
schisik запустите терминал на 115200 и после этого включите модем. Выложите лог здесь и тогда разберемся.
Про схемку согласования не забудте.
Для SIM900 максимальная гарантированая скорость для автоопределения 57600
115200 может работать с автоопределением, но малейший уход по скорости в % в сторону и все.
Поэтому рекомендуется законектиться на 9600, установить принудительно 115200 и работать.
Не забывайте что при автоопределении первое AT - только большими буквами!!!
В остальном давайте смотреть схему
schisik
Oct 4 2011, 19:02
Выкладываю схему преобразователя уровней. Схему питания думаю смысла нет выкладывать он из даташита и работает, а нормальный согласователь уровней типа микросхемы серии lvc у нас в городе не продают, заказывать думаю на стабилитроне не лучший вариант но пока ничего лучше не видел
Ну наконец то заработало. Достаточно было сменить терминал я все опыты проводил в TERMINAL v1.9b от Br@y в нем команда уходит зеркалируется и не ответа не привета. Через встроеныый терминал Windows xp заработало наконец то. Тоесть включаю подаю команду AT он мне ее зеркалит и отвечает OK ну и дальше что вздумается ATD(номер телефона); идет дозвон и т.д. Вроде все как надо, но при включении всеравно ничего на терминал не приходит, только на скорости 115200 во время включения модуля приходят символы(IIII)и больше ничего. Всем спасибо за консультацию. Еще такой вопрос тоесть в терминале мне достаточно нажать ENTER и он автоматом добавит символ перевода строки, а если через микроконтроллер мне понадобиться добавить к команде (0d) я правильно понимаю?
Причем в терминале TERMINAL v1.9 ни на какой скорости не идет обмен команду AT воспринимает но больше ничего, в общем ну его...
Прошивка по умолчанию не заливалась, скорость снижал до 115200 вроде если не забыл тогда нормально зашилось. Остался вопрос почему при включении ничего не приходит на модуль ни на каких скоростях, кроме 115200 в виде 4 символов I
Romashki
Oct 4 2011, 19:14
Цитата(schisik @ Oct 4 2011, 22:02)

Еще такой вопрос тоесть в терминале мне достаточно нажать ENTER и он автоматом добавит символ перевода строки, а если через микроконтроллер мне понадобиться добавить к команде (0d) я правильно понимаю?
Верно.
Цитата(schisik @ Oct 4 2011, 22:02)

Прошивка по умолчанию не заливалась, скорость снижал до 115200 вроде если не забыл тогда нормально зашилось. Остался вопрос почему при включении ничего не приходит на модуль ни на каких скоростях, кроме 115200 в виде 4 символов I
А чем Вы его прошивали? (программа). Или Вы в его родном даунлоадере снижали до 115200? В принципе главное чтоб в конце он сказал что все нормально завершилось. А при включении он ничего больше и не пришлет Вам (собственно что нужно???). Дальше смотрите на ноги статус, RI и т.д.
Цитата(schisik @ Oct 4 2011, 23:02)

Выкладываю схему преобразователя уровней. Схему питания думаю смысла нет выкладывать он из даташита и работает, а нормальный согласователь уровней типа микросхемы серии lvc у нас в городе не продают, заказывать думаю на стабилитроне не лучший вариант но пока ничего лучше не видел
А чего не запитать VCCIO RL232 от модуля (VDD_EXT) ? И ничего согласовывать не придется. А при стыковке с трехвольтовыми микроконтроллерами - резисторный делитель все лучше, чем резистор плюс стабилитрон. Результат более предсказуемый.
Цитата
Еще такой вопрос тоесть в терминале мне достаточно нажать ENTER и он автоматом добавит символ перевода строки, а если через микроконтроллер мне понадобиться добавить к команде (0d) я правильно понимаю?
Правильно.
Цитата
Причем в терминале TERMINAL v1.9 ни на какой скорости не идет обмен команду AT воспринимает но больше ничего, в общем ну его...
Может быть, там какие-то свои сеттинги на порт (управление потоком или разрядность байта) ?
Цитата
Прошивка по умолчанию не заливалась, скорость снижал до 115200 вроде если не забыл тогда нормально зашилось. Остался вопрос почему при включении ничего не приходит на модуль ни на каких скоростях, кроме 115200 в виде 4 символов I
Это начальная посылка бутера, она идет на 115200. А поскольку скорость терминала в этот момент неизвестна, то никаких сообщений больше и не будет. А вот если зафиксировать скорость
(+IPR=xxxx), то будут еще сообщения (по крайней мере сообщение "Call Ready").
Romashki
Oct 4 2011, 19:40
Цитата(rx3apf @ Oct 4 2011, 22:23)

А чего не запитать VCCIO RL232 от модуля (VDD_EXT) ?
А вот этого делать не стоит!!!
Ток допустимый с VDD_EXT не более 10 мА, ток потребления FT232 (вернее ее трансмиттера) куда повыше!
Думаю правильнее было бы запитать VCCIO RL232 от стабилизатора 3х вольтового (например MCP1703T-3002E/CB). Тогда действительно можно забыть о согласовании.
Цитата(Romashki @ Oct 4 2011, 23:40)

А вот этого делать не стоит!!!
Ток допустимый с VDD_EXT не более 10 мА, ток потребления FT232 (вернее ее трансмиттера) куда повыше!
Думаю правильнее было бы запитать VCCIO RL232 от стабилизатора 3х вольтового (например MCP1703T-3002E/CB). Тогда действительно можно забыть о согласовании.
_Трансмиттера_. А VCC_IO питает _только_ линии связи с периферией. Если они ничем, кроме входов модуля не нагружены - откуда возьмется хоть какое потребление ? А 10 mA хватит еще и на статусные светодиоды.
>>>А чего не запитать VCCIO RL232 от модуля (VDD_EXT) ? И ничего согласовывать не придется.
>>>VCC_IO питает _только_ линии связи с периферией
Да, это проверено и работает - можно смело питать VCC_IO RL232 от V_ext. И выбросить все согласование.
>>>TERMINAL v1.9b от Br@y
Работал с этим терминалом, все нормально, инверсии не увидел.
Но предпочитаю старенький TERM90 из набора нортон командера.
http://www.ftdichip.com/Support/Documents/...s/DS_FT232R.pdfПосмотрите внимательно - каждый сигнал можно проинвертировать записав конфигурационное слово в ЕЕPROM
Возможно драйвер со стороны компа это и сделал.
DrGluck
Oct 5 2011, 06:58
Цитата
TERMINAL v1.9b от Br@y
- заметил "нехорошесть" ... при больших потоках входной инфы - не справляется (пропуски) (Win 7). FT232+SIM900 - при чтение странички сайта размерностью примерно в сотню кило.
Поствил терминалку ZOC - проблема исчезла.
P.S. Ув. CADiLO я там поднимал вопрос по реализации HTTP сервиса в SIM900 ... не прокомментируете при случае ?
("SIM900->HTTP сервис, метод POST (кто сталкивался)")
По HTTP пока не прокоментирую, но вопрос себе отметил - задам китайцам как приедут.
schisik
Oct 5 2011, 08:24
Огромное спасибо всем, особенно Romashki за помощь в подключении хрен с ним с Br@y terminal встроенный в винду работает на ура. Прошивал я через Simcom - sim900 Customer flash loader V1.01 снижал в ней же скорость все прошилось без проблем. А насчет резистора + стабилитрона, пожалуй правда подберу обычный делитель на резисторах, пока не купил нормальную микросхему преобразователя уровней
Цитата(schisik @ Oct 5 2011, 12:24)

Огромное спасибо всем, особенно Romashki за помощь в подключении хрен с ним с Br@y terminal встроенный в винду работает на ура. Прошивал я через Simcom - sim900 Customer flash loader V1.01 снижал в ней же скорость все прошилось без проблем. А насчет резистора + стабилитрона, пожалуй правда подберу обычный делитель на резисторах, пока не купил нормальную микросхему преобразователя уровней
зачем микросхему то...
Действительно - если остается RL232, то питаем ее IO от Vext.
А если ставим контроллер, так берем трехвольтовый и не мудрим ничего.
И никакого мазохима с согласованием уровней.
schisik
Oct 6 2011, 19:06
Дело в том, что вся обвязка уже на 5 вольт, реле и контроллер которые уже приобретены, поэтому кроме модуля все остальное на 5 вольт, значит проще подогнать уровни под модуль. Сегодня подключил модуль к меге8. Дозвон идет по команде ATDXXXXXXXXXX;\r с этим все понятно, немного смутила отправка СМС. Там после команды AT+CMGS=«ХХХХХХХХХХХ» Приходит ">" приглашая написать текст СМС и потом нужно ввести Символ ctrl+z сочетания клавиш, ну в терминале то понятно что работает, а как по нормальному ввести этот код в Компиляторе Си. Ничего лучше не нашел как тупо скопировал этот символ с терминала и вставил в компилятор и тогда все заработало, а как о нормальному вводить спецсимволы в окончание команды хотелось бы узнать. Ну на крайняк и так сойдет всеравно рад до усрачки что все работает
Romashki
Oct 6 2011, 19:25
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.