Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900&MSP430
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
SidAlex
Добрый день всем.

У меня большая проблема и я пришел сюда за квалифицированной помощью. Она заключается вот в чем. У меня модем SIM900 и кристалл MSP4301611. МК управляет модемом, т.е. посылает ему AT команды и по идее модем должен присылать ответы на них. Но вот тут то меня ждало фиаско. Когда я включаю модем и смотрю, что у МК в RXD, то там лежит информация от модема в начальный момент его включения. После того, как модем мне полностью прислал ответ, я начинаю ему передавать AT команды, но в буфер TX МК они уходят причем все символы уходят я проверял, но ответа при этом никакого не приходит. Ждал я долго, прерывание на RX нет. В чем может быть проблема? Подскажите пожалуйста.

Заранее спасибо.
CADiLO
А передаете большими символами или маленькими?

по "АТ" засинхронизируется, а по "at" - нет
SidAlex
Я пробовал по всякому и с большой буквы и с маленькой. А по поводу синхронизации, если я правильно понял, она нужна только если бодрайт на авто настроен. Я настроил на 115200, и сохранил настройки. И потом, если тоже самое делать, но через терминал Винды, то там вообще не имеет разницы с какими буквами писать, если установить скорость обмена, а не оставлять ее на авто. Может я чего не правильно понял. Скажу еще раз, ответ от модема при первом его включении я получаю, значит UART модема и МК настроены правильно, так? Потом ожидание, я пока для отладки поставил 10 сек, затем команда AT большими буквами, как написано в мануале, но результата ноль.
M_Z
Цитата(SidAlex @ Nov 25 2010, 18:36) *
Я пробовал по всякому и с большой буквы и с маленькой. А по поводу синхронизации, если я правильно понял, она нужна только если бодрайт на авто настроен. Я настроил на 115200, и сохранил настройки. И потом, если тоже самое делать, но через терминал Винды, то там вообще не имеет разницы с какими буквами писать, если установить скорость обмена, а не оставлять ее на авто. Может я чего не правильно понял. Скажу еще раз, ответ от модема при первом его включении я получаю, значит UART модема и МК настроены правильно, так? Потом ожидание, я пока для отладки поставил 10 сек, затем команда AT большими буквами, как написано в мануале, но результата ноль.

с питанием модуля все нормально? при подключении к компу с этой же обвязкой по питанию работает нормально?
еще вопрос, не может ли покаким то причинам меняться скорость обмена контроллера? попробуйте посмотреть осциллографом или компом через какую нибудь терминалку что шлет котроллер.
я пока SIM900 не использовал. но очень немло работал с SIM300 и MSP430F1611. использовал скорость 115200. никаких настроек в модуле по поводу скорости не делал, она по умолчанию 115200. проблем никогда не возникало с обменом.
CADiLO
Вы все правильно поняли - на фиксированой скорости разницы в символах нет.
Кроме разности в скоростях обмена еще может быть железная причина.
Как стыкуете модуль с контроллером, какое питание контроллера, держите ли порт в третьем состоянии до появления STATUS?
SidAlex
Цитата(CADiLO @ Nov 25 2010, 17:56) *
Вы все правильно поняли - на фиксированой скорости разницы в символах нет.
Кроме разности в скоростях обмена еще может быть железная причина.
Как стыкуете модуль с контроллером, какое питание контроллера, держите ли порт в третьем состоянии до появления STATUS?


Я честно говоря не понял третий вопрос. По соединение модема и МК следующие. На демострухе установлен модем. Он питается от сети 5V. У модема есть нога VDD_EXT, через которую можно питать МК, там 2,7-2,95В. UART обвязан следующим образом: ну TX и RX, это понятно. Но там есть еще сигнальные линии: DTR, RTS, RI, CTS и еще не помню. Так вот эти выводы куда цеплять и как? А забыл про GND... Но с этим вроде понятно. В UART сигнал изменяется относительно земли - я имею ввиду 0 и 1. Не знаю, понятно написал или нет.

Ребята, если не сложно можете показать как вы сочленяли МК с модемом. Я меня МК на демонстрационной плате и модем тоже на демонстрационной плате. И с платы модема я беру питание на МК. Как? Я написал выше.
M_Z
Цитата(SidAlex @ Nov 25 2010, 23:22) *
Я честно говоря не понял третий вопрос. По соединение модема и МК следующие. На демострухе установлен модем. Он питается от сети 5V.

не многовато ли 5В ?
SidAlex
Цитата(M_Z @ Nov 25 2010, 23:01) *
не многовато ли 5В ?


Так там все нормально, там потом через стабилизатор.
CADiLO
Первое условие которое должно выполняться - на цифровых ногах модуля до появления STATUS не должно быть НИКАКИХ сигналов.
SidAlex
Товарищи. Я тогда так перефразирую. Помогите пожалуйста советом, как соединяется UART модема с UART MSP. Не хочет он понимать команды. НО при этом показывает:
IIIIþþþþ
RDY
+CFUN: 1
+CPIN: READY
Call Ready

Что означает, если я правильно понимаю, готов работать. Так вот как только я начинаю посылать AT команду, он молчит, т.е. ответа от модема нет. Эхо выключено. Скорость выбрана 115200, об этом я уже писал. Еще момент такой: когда включаешь Power загорается индикатор и ногах TX и RX есть напряжение относительно земли. Это нормально? Т.е. PWRKEY еще не нажата и индикаторы STATUS и NETLIGTH не горят и не мигают.
CADiLO
Стоп.

>>>На демострухе установлен модем

Это штатный EVB kit? А буфера RS-232 которые на нем, Вы отключили перед тем как свой контроллер к ножкам модуля припаивать ?
А то у Вас вполне конфликт может быть по ножкам.
SidAlex
Отключил две ноги RX и TX. Результат остался неизменным. Так же я убрал RTS, DTR, CTS, RI. Теперь они просто висят в воздухе. Если вы спросите, почему я их оставил в воздухе, отвечу. Я и припаивать их пробовал к портам MSP как написано в мануале для SIM900 и закарачивал RTS-CTS, DTR-DCD. Результат всегда один и тот же. Команда до модема доходит но ответа нет.
CADiLO
Тогда смотрим насколько ваша команда доходящая до модема отличается от скорости 115200.
SidAlex
Ребята, я вам одно а вы мне совсем другое. Можно просто ответить на вопрос. Как соединить МК с SIM900 так чтобы SIM воспринимал AT команды. По поводу скорости рассогласований нет. Потому что ответ от модема я принимаю нормальный в момент его инициализации. Мерил осциллографом команда доходит до модема. Она просто не выполняется. Пробывал AT+CPOWD=1(выключение). Не отключается. Сейчас полностью откинул com, просто отпаял нужные ноги. Результат остался неизменным.
CADiLO
Закольцуйте свой прием и передачу и посмотрите для начала принимаете ли Вы то что сами передаете .
Если принимаете - ищите ошибку в соединении. Если нет - то в скорости или логике передачи.
Трудно быть телепатом.....
SidAlex
Цитата(CADiLO @ Nov 30 2010, 10:53) *
Закольцуйте свой прием и передачу и посмотрите для начала принимаете ли Вы то что сами передаете .
Если принимаете - ищите ошибку в соединении. Если нет - то в скорости или логике передачи.
Трудно быть телепатом.....


Может я ничего не понимаю, но пожалуйста, поясните, что значит логика передачи???
Мой алгоритм таков:
1. Включили модем. По TxD модема на MSP пришел сигнал, что модем включился.
2. После того как пришел последний символ я жду какое-то время (сейчас оно достаточно большое 10 сек.).
3. Формирую простую команду "AT\r\n\0" и по символьно записываю ее в TxD MSP.

Потом молчек... ответа от модема никакого нет.

Какие настройки я выполнял. Убрал эхо. ATE0. Настроил фиксированную скорость AT+IPR=115200. Выполнил сохранение настроек AT&W. Может я что-то упустил??? Просто я работал до этого но с другим модемом и никаких проблем при этом не возникало. Может здесь есть какие-то тонкости? crying.gif

По поводу остальных ног, то в PDF на SIM900 написано, что если не используется, то они могут просто висеть в воздухе. Поэтому у меня подключено только RxD(sim)-TxD(msp), TxD(sim)-RxD(msp), GND, VDD_EXT(питает msp, чтобы не делать согласование по уровням.) Также там написано, DTR уже притянуто к VDD_EXT внутри через резистор и его подтягивать к плюсу не нужно. Тогда возникает у меня вопрос, если не используемые ноги висят в воздухе, то это может как-то повлиять на работу и взаимодействие?
CADiLO
Трудно с Вами, но попробуем.

Шаг первый - соедините на своем контроллере передачу и прием.

Принимаете ли Вы то что передаете ?

Если да, то разсоединив подайте передачу на комп.

Принимает ли комп то что Вы передаете ?

Если да, то програмную часть исключили будем смотреть аппаратную.

Если нет - проверяйте работу программы на передачу.
Reccer
Цитата(SidAlex @ Nov 30 2010, 16:26) *
3. Формирую простую команду "AT\r\n\0" и по символьно записываю ее в TxD MSP.


Попробуйте команду "AT\r"
SidAlex
Цитата(CADiLO @ Nov 30 2010, 17:28) *
Трудно с Вами, но попробуем.

Шаг первый - соедините на своем контроллере передачу и прием.

Принимаете ли Вы то что передаете ?

Если да, то разсоединив подайте передачу на комп.

Принимает ли комп то что Вы передаете ?

Если да, то програмную часть исключили будем смотреть аппаратную.

Если нет - проверяйте работу программы на передачу.


Соединял RxD и TxD MSP посылаю команду AT и ее же принимаю. На осциллографе все четко видно. К компу я не подключаю, но на ноге RxD модема при просмотре через осцилограф, то картинка такая же как и при соединении RxD TxD MSP. Теперь осталась аппаратная часть. В принципе именно на аппаратную часть я и грешил с самого начала.
av-master
Подключи на комп. советуют же.... то что сам ты ее принял еще не означает что ее обязаны принимать все....
SidAlex
Цитата(av-master @ Dec 1 2010, 10:09) *
Подключи на комп. советуют же.... то что сам ты ее принял еще не означает что ее обязаны принимать все....



К компу нет возможности подключить. Просто нет переходника с UART на COM. Вы меня, конечно извините, но в чем тут разница, я не совсем понимаю. Символы отправляются в ASCII и принимаются тоже в ASCII (может криво написал), где может быть непонимание. Тем более я уже писал, что при инициализации от модема я принимаю то что должен принять. Какая то однобокое непонимание, Вам не кажется???
M_Z

схему можно показать?
возможно тогда чтото можно будет подсказать.
av-master
Возьмите шнурок от кагонить страго мобильника. копейки стоит. и сразу 3Вольта на выходе.
SidAlex
Цитата(M_Z @ Dec 1 2010, 10:46) *
схему можно показать?
возможно тогда чтото можно будет подсказать.



Вот схема соединения MSP с SIM. Питание MSP от VDD_EXT SIM, который, в свою очередь, питается через отладочную плату.

Нажмите для просмотра прикрепленного файла

Земля общая. Используемые сигналы RxD, TxD. Остальные висят в воздухе.
av-master
CTS / RTS - попробуйте замкнуть. на модулке
SidAlex
Цитата(av-master @ Dec 1 2010, 14:35) *
CTS / RTS - попробуйте замкнуть. на модулке



Дополнительно ко всему, DTR посадил на GND, RTS/CTS замкнул между собой. Результат появился, но какой-то странный. Например, я ему отправляю команду AT+CPOWD=1, что значит "выключись", а он(модем) в ответ присылает какую-то хрень, извините, и не выполняет команду. Т.е. получается, что ответ то я получил, но от этого легче не стало. Но появился вопрос такой. Уровень единицы в модеме сколько должен быть (в диапазоне каком должен меняться). ПОтому что у меня на TxD MSP 3В, а на RxD MSP 2,9В. Это ничего страшного?
box415
Попробуйте первой подавать команду ATQ0. Возможно в настройках модема установлено ATQ1, то есть не отвечать. Вот он и не отвечает Один раз встречалась такая ситуация, но с другим модемом.
av-master
эта хрень в нечитаемом виде ? тогда дело в скорости. проверяйте кварц. и настройки генератора. ну и тд...
Смените модуль наконец. может он уже сдох - звените ))

Напряжение 1-цы = 2.8 но если 3-ка появляется на TX после включения модуля то нестрашно. до появления сигнала статус Ваш TX должен быть в Z state / или на вход как минимум.
SidAlex
Цитата(av-master @ Dec 1 2010, 16:52) *
эта хрень в нечитаемом виде ? тогда дело в скорости. проверяйте кварц. и настройки генератора. ну и тд...
Смените модуль наконец. может он уже сдох - звените ))

Напряжение 1-цы = 2.8 но если 3-ка появляется на TX после включения модуля то нестрашно. до появления сигнала статус Ваш TX должен быть в Z state / или на вход как минимум.



Модуль не сдох, потому что через HyperTerminal я общаюсь нормально. И потом вы пишите что дело в скорости, но на осциллографе картинки одинаковые, что при передаче модема, что при передаче в модем.
CADiLO
Вы на осциллографе увидите рассогласование скорости в 1-2 % ?

А вот модем уже не поймет при такой неточности.

Посчитайте свой делитель в контроллере и посмотрите точность передачи. На сколько Ваши 115200 отклоняются от номинала.

Кстати какой кварц стоит на контроллере ?

А еще лучше попробуйте общение с модемом на скорости у которой отклонение 0.5%

Раз общаетесь с модемом гипертерминалом - пообщайтесь и с контроллером - посмотрите получится ли.

Можно пробовать то что советуют и найти причину, а можно упереться и продолжать настаивать на своей правоте.
SidAlex
Цитата(CADiLO @ Dec 2 2010, 10:07) *
Вы на осциллографе увидите рассогласование скорости в 1-2 % ?

А вот модем уже не поймет при такой неточности.

Посчитайте свой делитель в контроллере и посмотрите точность передачи. На сколько Ваши 115200 отклоняются от номинала.

Кстати какой кварц стоит на контроллере ?

А еще лучше попробуйте общение с модемом на скорости у которой отклонение 0.5%

Раз общаетесь с модемом гипертерминалом - пообщайтесь и с контроллером - посмотрите получится ли.

Можно пробовать то что советуют и найти причину, а можно упереться и продолжать настаивать на своей правоте.



На своей правоте я не особо настаиваю, потому что мало что понимаю в схемотехнике. Но проблему я решил и она оказалась не такой уж большой. Просто есть нюансы про которые не пишут в мануалах, и что самое обидное не говорят об этом на форумах, в том числе и здесь, а я скажу. Ребята, действительно достаточно трех ног: RxD, TxD, GND. Для согласования уровней логики нужно взять + c VDD_EXT модема, а не с платы EVB. Следующий момент, отключите SLEEP MODE в модеме. Это команда AT&D(параметр посмотрите в доке по командам). Сохраните изменения. Можно отключить DCD, если вы его не будете контролировать. Эхо можете не отключать. И самое главное в модем команды передавайте с задержкой. Я поставил 1ms, можно поэкспериментировать, т.е. найти оптимальный вариант. А по поводу отключения буферных микросхем на EVB.Их можно не отключать, результат от этого не меняется.
Спасибо всем, кто пытался помочь в решении моей проблемы.
rx3apf
Цитата(SidAlex @ Dec 2 2010, 11:16) *
И самое главное в модем команды передавайте с задержкой. Я поставил 1ms, можно поэкспериментировать, т.е. найти оптимальный вариант.

А еще можно почитать форум - потому как все это давно обсуждалось. В частности, задержки нужны лишь тогда, когда используется автоопределение скорости, которое по возможности рекомендуется отключать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.