Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как начать работу с SIM300С
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
олег_уфа_81
здравствуйте. помогите пожалуйста наладить обмен с SIM300С. я реально понимаю, что многим такие вопросы набири аскомину, но я никак не могу понять в чем я ошибаюсь...

аппаратно модуль подключен следующим образом:
питание модуля 4.2В
питание процессора 3.3В

входы-выходы Rx-Tx модуля модуля и процессора развязаны резисторами 5к ( стелефоном семенс С35 так отлично работает) вывод RST подключен к земле.

обмен я пытался вести следующим образом:

1. настраиваем USART процессора след образом: 8 бит данных, паритета нет один стоп-бит. частота обмена 115200
2. включаем модуль. он регистрируется в сети, начинает жмургать светодиодом раз в 3 сек (индикация регистрации)
3. модуль выдает строку CallReady.
4. после получения этой строки отсылаю в модуль последовательность "AT\0x0D"
5. модуль должен ответить строкой "0x0D\0x0A OK 0x0D\0x0A"
6. при повтороной отпраке "AT\0x0D" выдается сообщение об ошибке...

в чем я ошибаюсь? в чем я неправ?
Палыч
Цитата(олег_уфа_81 @ Dec 28 2007, 14:18) *
отсылаю в модуль последовательность "AT\0x0D"
в чем я ошибаюсь? в чем я неправ?




Собственно, какую команду Вы передаёте? АТ - это префикс команды, за которым должны следовать какие-то буковки-циферьки, которые и определяют команду. Вместо "\0x0D" удобнее (нагляднее) применять "\r" (это, если Вы пишете на С). Т.е. команда будет выглядеть как-то, например, так



"ATE0\r"
олег_уфа_81
Цитата(Палыч @ Dec 28 2007, 22:05) *
Собственно, какую команду Вы передаёте? АТ - это префикс команды, за которым должны следовать какие-то буковки-циферьки, которые и определяют команду. Вместо "\0x0D" удобнее (нагляднее) применять "\r" (это, если Вы пишете на С). Т.е. команда будет выглядеть как-то, например, так
"ATE0\r"


на счет наглядоности согласен, а именно "AT\r" шлю из следующих соображений:

1.4 AT Command syntax
The "AT" or "at" prefix must be set at the beginning of each command line. To terminate a command line enter <CR>.
Commands are usually followed by a response that includes.”<CR><LF><response><CR><LF>”
Throughout this document, only the responses are presented, <CR><LF> are omitted intentionally.

2.2.45.1 AutoBauding
Synchronization between DTE and DCE ensure that DTE and DCE are correctly synchronized and the bit rate used by the DTE is detected by the DCE (= ME). To allow the bit rate to be synchronized simply issue an "AT" or "at" string. This is necessary when you start up the module while autobauding is enabled. It is recommended to wait 3 to 5 seconds before sending the first AT character. Otherwise undefined characters might be returned.
If you want to use autobauding and autoanswer at the same time, you can easily enable the DTE-DCE synchronization, when you activate autobauding first and then configure the autoanswer mode.

я понимаю так, что поскольку судя по описанию активизированна фукция автоподстройки частоты обмена и по умолчанию телефон отвечает на 115200, то эта строка позволит проконтрлировать понимает меня модуль или нет.

ктоме того:

Demonstration Syntax Expect Result
The AT command AT OK
interpreter is actively
responding to input.

так что вроде не в этом ошибка...

кстати, чуть не забыл! с наступающим! :-)
stream
Цитата(олег_уфа_81 @ Dec 28 2007, 15:18) *
1. настраиваем USART процессора след образом: 8 бит данных, паритета нет один стоп-бит. частота обмена 115200
2. включаем модуль. он регистрируется в сети, начинает жмургать светодиодом раз в 3 сек (индикация регистрации)
3. модуль выдает строку CallReady.
4. после получения этой строки отсылаю в модуль последовательность "AT\0x0D"
5. модуль должен ответить строкой "0x0D\0x0A OK 0x0D\0x0A"

все правильно.

Цитата
6. при повтороной отпраке "AT\0x0D" выдается сообщение об ошибке...

Т.е. пункты 1-5 проходят нормально, а проблема только с посылкой второй команды? Такого быть не может, ищи программный или аппаратный косяк.

Что за процессор используется? Посмотри электрическую спецификацию пинов на нем. Если написано, что пины "5V tolerant", то никаких резисторов ставить не надо, можно подключать напрямую.

В некоторых случаях есть проблема с тормозным автободингом, но, если на первую команду приходит нормальный OK, это не твой случай.

Цитата
вывод RST подключен к земле.

Что за RST? Может, имелось в виду RTS? Желательно подать ноль еще и на DTR.
олег_уфа_81
не совсем так. модель не отвечает и на первую посылку "АТ\0x0d"...
если делаю дознао но модуль, то он выкидывает наверх строку RING...

код вроде отлаженный. все процедуры и функции вполне корректно работали правда при общении с сименсом С35. код прогонял в отдачике.... щлются именно те посылки которые должны :-). БЛИН!

в названии вывода опечатка. ага это RTS. с DTRом обязательно попробую.... но что-то такое впечатление, что не с этим проблема....

просессор ATMEGA16

порылся по темам на этом же форуме - встретил такой момент, что народ для синхронизации обмена подает команду АТ через 0.5 секунд... и 10 таких попыток... что-то сомнения по этому поводу.

ниччччччего вобщем не понимаю.
Anthoni
Раза 2-3 я посылал AT что бы услышать OK. Между посылками делал паузу в 2 секунды. После установил фиксированную скорость.
Makey-2
Цитата(олег_уфа_81 @ Dec 29 2007, 13:58) *
порылся по темам на этом же форуме - встретил такой момент, что народ для синхронизации обмена подает команду АТ через 0.5 секунд... и 10 таких попыток... что-то сомнения по этому поводу.

Я подаю команду установки фиксированной скорости обмена например at+ipr=9600. В МК забит цикл передачи этой команды с периодом в 0.5 сек. Из цикла вылетаем по получению OK от модуля. (это может быть 1 попытка) всего прописано 10 циклов после которых МК считает,что произошла ошибка при включении модуля (типа завис или не включился или ещё какая беда wacko.gif ) и повторяет программу включения модуля smile3009.gif . Для повышения надёжности обмена, с МК работаю на фиксированной скорости.
олег_уфа_81
уважаемые!!! огромное спасибо за советы и помощь!!!

ларчик открывался просто: глянул осциллографом сигналы на линии TX от контроллера к модулю наблюдались заваленные фронты. Судя по всему великоваты были согласующие резисторы 5кОм по этим цепям. Уменьшил их до 500 Ом и SIM300Cначал меня понимать. перезагрузил его 3 раза подряд. все 3 раза он принял команду "АТ" и корректно мне ответил. 08.gif

скорее всего после того вопросов у меня только прибится, ведь тема для меня относительно новая. вот...

вобщем ещё раз спасибо. :-)
CADiLO
>>>>Судя по всему великоваты были согласующие резисторы 5кОм по этим цепям. Уменьшил их до 500 ....


Можно с этого места подробнее ?
какая схема согласования ?
вот этому соответствует ?
http://www.microchip.ua/simcom/SimCom/Sim3...C_AN_REFSCH.pdf
Anthoni
А я вообще забыл про резисторы на UART и СИМ-кард, пока всё работает нормально, 3.6В питание на МК и SIM.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.