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

Купил себе SIM300D для поделок, начал возиться - и наткнулся на проблемы. Форум почитал, но до конца все равно ясности не появилось.

Проблем такая:
1. Случайным образом слетает регистрация в сети. Если дать AT+CREG=2, и затем AT+CPIN=...., то регистрация как правило появляется, но потом довольно быстро исчезает - последовательно проскакивают +CREG: 1, +CREG: 0. Но иногда схватывает и работает нормально, дольше часа я не смотрел. После того, как вылазит CREG: 0 - на команды работы с симкой выдает ошибку 769 и все тут.
2. Стал пробовать нынче в командировке - дал команду AT+CREG=0, чтобы в сеть не лез. После ввода пина, пытаюсь дать AT+CMGR=1 (оно там точно есть и раньше читалось) - выдает ошибку 517. Повторно - и снова вылазит 769.

Народ писал про проблемы с питанием. Поначалу у меня было спаяно на LM2574, и пошли такие проблемы. Заменил микросхему на 2576 - у нее ток выше, должно бы хватить. Плюс конденсатор 1000 мкф. Проблемы нисколько со сменой микросхемы не поправились. Разводка интерфейса сделана на ADM208, запитанной от того же 4В выхода, что и SIM300D. Писали также про проблему с прошивкой.

Подсобите, куда копать ?
CADiLO
>>>>>ADM208, запитанной от того же 4В выхода, что и SIM300D

невнимательно читали форум.

ну и как подключена симка расскажите...

ADM208 питаем от стабилизатора 3 вольта, причем питание на ней должно появиться не раньше чем STATUS

смотрим тут - http://microchip.ua/simcom/GSM-GPRS-GPS/Ap...0%20seminar.ppt

страничка 10 - получение Vext для запитки согласования
relentless
Цитата(CADiLO @ Sep 17 2010, 18:16) *
невнимательно читали форум.
ну и как подключена симка расскажите...
ADM208 питаем от стабилизатора 3 вольта, причем питание на ней должно появиться не раньше чем STATUS
страничка 10 - получение Vext для запитки согласования


Вот теперь более-менее ясно, спасибо. Я понадеялся, что штатной документации должно было быть достаточно.
Вы считаете что все проблемы связаны именно с несогласованием уровней ?
CADiLO
ну по фотографии я не умею лечить....

но возможно и так.

кстати расскажите все-таки как подключили симку - с номиналами деталей.
rat12
При приеме-передаче текстовых строк посредством gprs через sim300dz (версии прошивки, к сожалению, не знаю) иногда наблюдаю следующее.
Есть набор команд, идущих от сервера через сотовую сеть, через модем на получающий команды процессор. Результаты возвращаются на сервер. Есть команды условно № 1, 2, 3, 4.
Сервер отсылает 1, приходит ответ на 1.
Пауза.
Отсылает 2, приходит ответ на 1 с новыми данными (как будто модем повторил на процессор команду 1 второй раз).
Пауза.
Отсылаем 3, приходит ответ на 2.
Пауза.
Отсылаем 4, приходит ответ на 3.

Причем старые строки-команды падают на процессор из симкома в момент прихода новых через gprs.
Паузы существенные, баги из-за недостаточной пропускной способности канала по времени маловероятны.
Что бы это могло быть??
Harbinger
А что, версию фирмваре так сложно спросить? smile.gif
ATI3 в общем (ну почти) случае, в случае с SIMCOM можно просто ATI.
rat12
Неа, вообще несложно. Просто муторно, поскольку прямой выход на модуль имеет только процессор, нужно только прошивку переписать, а это займет определенное время smile.gif Бага вылезла недавно, вот решил спросить, может быть это всем известная бага, а я голову ломаю над ней.
Master of Nature
Цитата(rat12 @ Sep 17 2010, 20:44) *
Причем старые строки-команды падают на процессор из симкома в момент прихода новых через gprs.
Паузы существенные, баги из-за недостаточной пропускной способности канала по времени маловероятны.
Что бы это могло быть??

Судя по описанию - дело не в модеме, а в работе с UART на уровне контроллера.
Вероятно невовремя читаете входной буфер.
Скорее всего у вас сделано на прерываниях и прерывание вызывается в момент поступления новых данных.
Но новые данные вы не прочитываете, вместо этого читаете предыдущий ответ.
rat12
Рассматривал данную гипотезу.
Ситуация несколько сложнее. После чтения буфера буфер обнуляется. А ситуация может быть и сложнее. На каждую новую команду следует ответ от блока например на команду номер 1. Т.е. :
Отсылаем 1 -получаем ответ на 1
(обнуляем приемный буфер, ожидаем)
Отсылаем 2 -получаем получаем ответ на 1
(обнуляем приемный буфер, ожидаем)
Отсылаем 3 -получаем получаем ответ на 1
(обнуляем приемный буфер, ожидаем)
Отсылаем 4 -получаем получаем ответ на 1
(обнуляем приемный буфер, ожидаем)

Всё сложнее... Мне кажется, что это всё-таки симкомовский модуль...
Master of Nature
Цитата(rat12 @ Sep 17 2010, 23:03) *
Всё сложнее... Мне кажется, что это всё-таки симкомовский модуль...

У всех работает - у вас не работает... странно

Как уже высказывались: "сложно лечить по фотографии"

Еще из идей: вы можете на сервере проконтролировать, что приходит.
Вообще - что вы используете в качестве сервера?
Идея 1: глючть сервер.
Идея 2: глючит отправка команд: происходит задержка или отправляется не тот буфер
rat12
Согласен про лечение по фотографии. Главное, что это нетиповая неисправность.

Насчет контроля на сервере- так и поступим.
В качестве веб-сервера - веб сервер smile.gif Со скриптами приема данных. Сервером занимается другой человек в команде, потому могу дать только общие сведения. Но там ошибка маловероятна, но возможна, конечно же.

В принципе, сервер переписывается на другую платформу, будем тестить.

Спасибо за советы.
Master of Nature
Цитата(rat12 @ Sep 17 2010, 23:25) *
Согласен про лечение по фотографии. Главное, что это нетиповая неисправность.

Насчет контроля на сервере- так и поступим.
В качестве веб-сервера - веб сервер smile.gif Со скриптами приема данных. Сервером занимается другой человек в команде, потому могу дать только общие сведения. Но там ошибка маловероятна, но возможна, конечно же.

В принципе, сервер переписывается на другую платформу, будем тестить.

Спасибо за советы.

Еще совет: попробуйте непосредственно подцепиться и промониторить обмен между контроллером и модемом.
Вдруг увидите что-то новое, неожиданное?
relentless
Итак, перепаял схему. Правда в том мухосранске, что я сейчас, с деталями полная труба - пришлось коммутатор напряжения для ADM208 спаять на паре КТ315+КТ3107+дополнительный диод - получилось что-то 2,8 вольта питания. Но, слава богу, связь по-прежнему имеет место - хоть и изредка проскакивают "левые" символы. Черт с ними, это все равно для отладки.

Ответ девайса по ATI:
SIMCOM_Ltd
SIMCOM_SIM300D
Revision:1008B14SIM300D32_SST34HF3284

Самое неприятное: проблема с error 769 никуда не ушла. Связь кратковременно пытается устанавливаться, проскакивает CREG: 3 (сейчас проверю, что у меня там с роумингом), после чего снова CREG: 0 и последующие команды отвечают 769. Но если попытаться читать SMS-ки - идет вот чего. Если запросить слишком быстро - отвечает error 517. Потом успеваю вычитать пару-тройку. И тут опять прут 769.

По интерфейсу симки. Спаяно напрямую без защит, с цоколевкой из даташита, разве что конденсатор керамика на 0,1 стоит по питанию. То есть ни резисторов, ни стабилитронов. Я не вполне понял про "установка внешних стабилитронов или супрессоров обязательна" - это от наводок ?
Мнение народа - впаивать таки туда резисторы и стабилитроны или дело не в этом ? Какую функцию несет подтягивающий резистор на SDAT ?

И еще просьба к rat12 - у вас совершенно другие проблемы из другой темы. Вас не затруднит открыть новую тему, дабы не создавать здесь помойку ?

Так, а откуда CREG: 3 - это ж вроде отказ в регистрации ? Вставил симку в телефон - без проблем вошла в сеть...
av-master
relentless

Зачем Вы делаете все неправильно ? эти темы тут описаны несколько десятков раз. просто немогу понять зачем Вы тратите свое время ? кучу рекомендаций Вам дали. а Вы все равно непонятно что делаете ? CREG 3 или может 5 ? как можно быть увереным что там ? напряжение 2.8 или +/- пол лаптя по карте ?

Подключитесь не к контроллеру а к терминалу. прощупайте его руками от и до. только потом можно цеплять к контроллеру. тысячами модули работают и никаких вопросов. у Вас 5 действий 5 проблем. сделайте все как положено. промойте плату и модуль. + нормальное питание. и все будет работать.

rat12 модуль тут на 99.9% ни причем копайте свои буфера и очистки буферов.
relentless
Цитата(av-master @ Sep 20 2010, 01:27) *
Зачем Вы делаете все неправильно ? эти темы тут описаны несколько десятков раз. просто немогу понять зачем Вы тратите свое время ? кучу рекомендаций Вам дали. а Вы все равно непонятно что делаете ? CREG 3 или может 5 ? как можно быть увереным что там ? напряжение 2.8 или +/- пол лаптя по карте ?

Подключитесь не к контроллеру а к терминалу. прощупайте его руками от и до. только потом можно цеплять к контроллеру. тысячами модули работают и никаких вопросов. у Вас 5 действий 5 проблем. сделайте все как положено. промойте плату и модуль. + нормальное питание. и все будет работать.


Дык прочитать сначала, а потом ответы писать слабо ? Забудьте о контролллере - и так терминал, контроллер сбоку висит.
1. По входам модуля напряжение до появления STATUS я убрал - об этом я собственно и написал.
2. Напряжение по входам снижено до уровня <3В.
3. Собственно, осталось пара моментов - симка и питание. По питанию стабилизатор стоит с запасом по току. Конденсаторы менял, ну можно еще напаять электролитов. А с симкой - ну буду напаивать огород из резисторов, которых в даташите производителя-то нет.
Harbinger
Цитата(relentless @ Sep 19 2010, 19:21) *
Так, а откуда CREG: 3 - это ж вроде отказ в регистрации ? Вставил симку в телефон - без проблем вошла в сеть...
Именно отказ в регистрации. Обычно это по причине фатальной просрочки оплаты, но здесь не тот случай. Если Вы из Украины или др. страны, где за IMEI следят - пробейте IMEI модуля по базе, мало ли что... если окажется "серый" или "чёрный", можно сменить на технологический - тот наверняка зарегистрируется.
CADiLO
В родном даташите симку нарисовали без резисторов ошибочно. Потому как в апнотесах и на EVB везде резисторы стоят.
Возьмите схему из материалов семинара и не забудьте хорошо помыть потом плату от остатков флюса или канифоли.
=F8=
2 rat12
Сталкивался недавно с похожей проблемой. Дело было в том, что время ожидания ответа было меньше чем задержки в сети. В результате имеем такую ситуацию:

1. Даем первый запрос, ждем ответа 1000мс.
1а. Ответ за 1000мс не приходит, фиксируем ошибку.
2. Даем второй запрос, ждем 1000мс.
2а. Через ~1500 мс приходит ответ на первый запрос который система, принимает за ответ на второй.
итд

В общем во первых надо увеличивать время ожидания, а во вторых, поскольку задержка в GPRS малопредсказуема, вводить в протокол обмена идентификатор пакета, чтоб отсеивать слишком запоздавшие пакеты. Собственно, чтоб не придумывать велосипед, за основу можно взять, к примеру, MODBUS-TCP.
av-master
1секунда ? это вы круто конечно ) лично у меня 8-мь сек. или до прихода чего нить. а вобще IDЗапроса+ответ самое оптимальное решение. если недо слать не дожидаясь ответов.
=F8=
Цитата(av-master @ Sep 20 2010, 12:11) *
1секунда ? это вы круто конечно ) лично у меня 8-мь сек. или до прихода чего нить. а вобще IDЗапроса+ответ самое оптимальное решение. если недо слать не дожидаясь ответов.

Это я для примера )) Я вообще до 20сек таймауты закладываю. А вообще хорошо если все в ваших руках, но бывает, что опрос ведет сторонняя прога которая не то, что посылать следующие запросы не дожидаясь ответов не может, но и таймаут понимает как время между опросами.
relentless
Цитата(Harbinger @ Sep 20 2010, 06:47) *
Именно отказ в регистрации. Обычно это по причине фатальной просрочки оплаты, но здесь не тот случай. Если Вы из Украины или др. страны, где за IMEI следят - пробейте IMEI модуля по базе, мало ли что... если окажется "серый" или "чёрный", можно сменить на технологический - тот наверняка зарегистрируется.


Карточка новая - неделю назад открыл номер. Дома в Питере все глючило как и тут, в командировке, но 3 не выдавало - а выдавало 2. А на Урале где я сейчас - выдает тройку. При том, что при вставлении той же симки в телефон входит в сеть без проблем. Может быть очередные войны провайдеров.

Цитата(CADiLO @ Sep 20 2010, 10:13) *
В родном даташите симку нарисовали без резисторов ошибочно. Потому как в апнотесах и на EVB везде резисторы стоят.
Возьмите схему из материалов семинара и не забудьте хорошо помыть потом плату от остатков флюса или канифоли.


Сегодня опробую, посмотрим. Вообще похоже то-ли с питанием глюк, то-ли наводка на провода симки - а то заглючивает именно в момент входа в сеть. Дома игрался с sms - слал на тот номер со своего мобильника - даже иногда в сеть входило, но как только начинает принимать sms - отваливается.
CADiLO
>>>заглючивает именно в момент входа в сеть.

Регистрация в сети это один из моментов максимального потребления тока. Может быть и глюк с питанием или наводками.
Harbinger
Да, там же авторегулировка мощности ещё не действует, лупит на максимуме...
relentless
Короче, тема отвалилась на 2 недели минимум - спалил adm208, замены в этой дыре купить невозможно.
CADiLO
Если коннектились к компу, то подойдите к торгующим мобильниками , купите китайский кабель для любого телефона, собраный на PL2003 -там как раз 3 вольта выход. И общайтесь через USB - драйвера под кабель в инете свободно.
А если на 3-х вольтовом FTDI найдете кабель, то и прошивальщик будет работать.

av-master
почти любой дата кабель от старых телефонов подходит. только дрова лучше с родного диска ставить. в инете полно всяких ка все перепробуете какраз неделя пройдет. ) только очень важно. сначала ставим дрова, а только потом втыкаем кабель...
relentless
Итак, чудом откопал в пакетике случайно завалившуюся MAX232 - живем !

1. Впаял, выкинул лишние линии связи - оставил только RX+TX (упрощенная схема, как в презентации). Но на 2,8 вольта запитывать ее побоялся,
в итоге на чип идет где-то 3,6В - выкинул лишний диод.
2. Перепаял схему запитки сим-карты как в презентации
3. Накопал в местном магазине электролит 3300x6,3В - от слов LowESR народ пугается, поэтому взял какой давали.

Заработало !!! По крайней мере сеть оно терять перестало. Позвонил, попосылал смс-ки - работает. И все при том, что на RX поступает те самые 3,6В. На контроллер буду заводить, резисторный делитель поставлю, а то там 3,3В.

Пока всем спасибо, будем жить. Идиотизм чистой воды у производителя - заранее выставлять даташиты с багами. Надо будет на досуге поиграться, что именно помогло - пункт 2 или 3.
Harbinger
(off) Что удивительно, так то, что MAX232 на 3,6 В заработал. Сколько ни перепробовал - ни один ниже 4 В не завёлся. 202-е, те да, и от 3 обычно работают (но на скоростях выше 115200 чудят).
CADiLO
>>>И все при том, что на RX поступает те самые 3,6В.

Настоятельно рекомендую так не делать.
2.85 - 3.0 вольта для модуля должно быть.
Иначе потом всплывут еще проблемы.

relentless
Цитата(CADiLO @ Sep 24 2010, 10:38) *
>>>И все при том, что на RX поступает те самые 3,6В.

Настоятельно рекомендую так не делать.
2.85 - 3.0 вольта для модуля должно быть.
Иначе потом всплывут еще проблемы.


Это само собой, просто драйвера низковольтного не достать тут, а потом будет без драйвера с контроллером на 3В общаться.
=F8=
Цитата(CADiLO @ Sep 24 2010, 09:38) *
>>>И все при том, что на RX поступает те самые 3,6В.

Настоятельно рекомендую так не делать.
2.85 - 3.0 вольта для модуля должно быть.
Иначе потом всплывут еще проблемы.

От 3.3 работает нормально, проверено не на одной тысяче девайсов. Это я не к тому, что так следует делать, но если уж сделано... В общем пока модуль включен он небольшое превышение напряжения выдержит. Но вот если модуль выключен, а питание на портах есть вот тут начинаются проблемы.
ArtemKAD
Цитата
Но вот если модуль выключен, а питание на портах есть вот тут начинаются проблемы.

Не просто проблемы - цирк... wink.gif
djoserzee
Добрый день, SIM300DZ периодически зависает.Питание +4,15В.Светодиодный индикатор Netlight перестает мигать.
В чем возможная причина ?
ArtemKAD
www.рук.нет
ЗЫ. Телепаты в отпуске.
Master of Nature
Цитата(djoserzee @ Oct 22 2010, 13:52) *
Добрый день, SIM300DZ периодически зависает.Питание +4,15В.Светодиодный индикатор Netlight перестает мигать.
В чем возможная причина ?

Хотя бы схему покажите.
DeVOuR
Здрасте всем!
такой вопрос по СИМ300Д.

AT+CPIN? возвращает что надо.
Код
14:28:13.038> +CPIN: SIM PIN
14:28:13.038>
14:28:13.038> OK


а вот непосредственно указав пин-код:
AT+CPIN=0000
модем с трудом понимает ее. как видите, команда повторяется раз в 1,5 сек, но вот доходит до модема с 4-го раза. а иногда и не доходит вообще, а иногда и с первого раза доходит.
Код
14:28:14.598>
14:28:14.598> ERROR
14:28:16.155>
14:28:16.155> ERROR
14:28:17.715>
14:28:17.715> ERROR
14:28:20.215>
14:28:20.275> +CPIN: READY
14:28:20.275>
14:28:20.275> OK


Аналогичный код для SIM300 - работает без проблем.
С остальными командами такого не наблюдается (их порядка 30-ти используется). Проблемма только с этой.
В чем может быть проблема?
Хотя, конечно, возможно после прошивки вопрос сам по себе пропадет, но перепрошить смогу только в среду.
Dron_Gus
Кавычки?
DeVOuR
Если бы проблема была в кавычках, то ошибка была бы постоянной, а так - иногда ж то доходит?
CADiLO
Автоопределение скорости используете ?
Отключить!

И если стыковка с контроллером по уровням на пределе, то тоже тупит.
DeVOuR
хм.
Автоопределение скорости отключено. все на 115200кбпс, фиксированно.

Цитата
стыковка с контроллером по уровням на пределе

это вполне вероятно, т.к. была проблема нехватки уровня на RX контроллера, что полечилось установкой диода с меньшим падением.
на RX модема вроде и было 2В с копейками, перемерять сейчас нечем. ладно, в пнд до осцыла доберусь, проверю.
M_Z
Цитата(DeVOuR @ Jan 21 2011, 16:30) *
хм.
Автоопределение скорости отключено. все на 115200кбпс, фиксированно.


это вполне вероятно, т.к. была проблема нехватки уровня на RX контроллера, что полечилось установкой диода с меньшим падением.
на RX модема вроде и было 2В с копейками, перемерять сейчас нечем. ладно, в пнд до осцыла доберусь, проверю.

а чему равно напряжение питания контроллера. если 5В то 2В на его входе мало. если 3В то зачем диод на входе RX модема?
DeVOuR
питание МК - 5 В. сейчас на RX контролера порядка 2.7В = лог. 1. На грани.
В обратную сторону, на RX модема = 2В с копеками.
M_Z
Цитата(DeVOuR @ Jan 22 2011, 00:45) *
питание МК - 5 В. сейчас на RX контролера порядка 2.7В = лог. 1. На грани.
В обратную сторону, на RX модема = 2В с копеками.

Первое: сделай нормальное согласование уровней и проблемы скорее всего уйдут.
Второе что мне непонятно почему используете контроллеры с питанием 5В. я уже давно забыл что есть такие. применяйте контроллер работающий на напряжении 3В и ниче согласовывать не надо будет. схема проще и соответственно глюков меньше.
DeVOuR
Вобщем, согласовал уровни четко. 2.7В на входе модема, как в аптеке, по даташиту, Все равно на команду AT+CPIN=0000 через раз ругается.
Грешу на прошивку, завтра буду пробовать.

Почему 5В? потому что дешевле согласовать уровни с модемом, чем с остальными девайсами.
МК используется с двумя ЮАРТами, причем второй ЮАРТ еще в придачу мультиплексируется на 3 разных выхода в зависсмости от режима + 4й будет отладочный.
Короче, потому шо так надо))
av-master
Паразитной запитки нет ?
CADiLO
>>>Почему 5В? потому что дешевле согласовать уровни с модемом, чем с остальными девайсами.

Есть контроллеры с 3 вольтами питания и входами толерантными к 5 вольтовой логике.
Внешним 5 вольтовым железякам 3 вольтовой еденицы с головой хватает (ну разве что где-то триггер шмидта по входу)

>>>МК используется с двумя ЮАРТами, причем второй ЮАРТ еще в придачу мультиплексируется на 3 разных выхода в зависсмости от режима + 4й будет отладочный.

У PIC24 есть модели с 4 и даже 6 аппаратными UART

>>>Короче, потому шо так надо))

Вот это и есть самая главная причина. Проще побороть трудности чем сделать правильно.
В сумме то что пытались съэкономить перекроется затратами на устранение глюков в серии.
DeVOuR
Цитата
В сумме то что пытались съэкономить

Заказчик требует, наше дело маленькое.
Цитата
Паразитной запитки нет ?

Нет.
Дело в том, что схема подключения уже много раз себя испробовала и оправдала, и раншье проблеммы в ней возникали только в случае, если нужной детали не оказалось на руках, и впаяли "почти такую же". Но делалось в основном на каких-то там промежуточных макетах. На производстве и на финальных макетах проблем, связанных со схемой, небыло вообще.

Вобщем схема исключена (конечно не на 100%, мало ли где что).

ВОбщем, остается прошивка. Модем лежал без дела года 2.

Повторюсь, проблемма только в том, что модем не всегда понимает "AT+CPIN=0000" (Возвращает ERROR). "Не всегда понимает" подразумевает в себе то, что иногда понмает. Так что команда правильная.
Осталаьные команды (в программе используется регулярно около 30-ти) воспринимаются на ура.
автоопределение скорости отключено. все на 115200кбпс.

Будет результат - отпишу в чем косяк был.
av-master
попробуйте карту 2-х летней давности )) или хотябы просто другую. с новыми картами много лузлов люди ловят. включая меня (((
DeVOuR
Цитата
попробуйте карту 2-х летней давности ))

ха-ха)
После очередного дня плясок с бубном, и попыток работы на разных версиях прошивки (от 14й, до 17й) решилось все до абсурда просто тупо и не понятно, на абум:
в подпрограмме отправки байта по юарт, красная строка была перенесена с начала подпрограммы, в конец:
Цитата
SEND_BYTE_UART0:
SB_U_1:
sbis UCSR0A, UDRE0
rjmp SB_U_1
out UDR0, tempL ;send byte to uart0
ret


разницы в упор не вижу, окромя экономии нескольких милисекунд. Но работает стабильно.
Спасибо всем, кто откликнулся.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.