Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы питания СИМ карты
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Палыч
Есть пара сотен устройств на базе SIM300, которые периодически сообщают с помощью СМС о контролируемых параметрах. Исключительно редко (два раза за два года на разных устройствах) была выявлена следующая ситуация: устройство перестало отправлять СМС, и при его вскрытии и проверке оказалось, что модуль SIM300 на ноге SIM_VDD не выдаёт питание на СИМ карту; при перезапуске модуля SIM300 нормальная работа возобновилась. Подключение СИМ карты к модулю - согласно даташиту. Питание модуля - всё чисто и надёжно, дублированно АКБ.
Вопрос: что заставило (какая причина) модуль SIM300 снять питание с СИМ карты? Как (какой командой) можно надёжно определить эту ситуацию? Как можно надёжно заставить SIM300 выйти из этой ситуации (кроме как перезапуск модуля - это уже проверено)?
HARMHARM
Цитата(Палыч @ Jan 27 2009, 19:26) *
Вопрос: что заставило (какая причина) модуль SIM300 снять питание с СИМ карты?

Если был плохой контакт, модуль может через некторое время потерять карту.
Цитата
Как (какой командой) можно надёжно определить эту ситуацию?

AT+CPIN, ответ +CPIN: NOT INSERTED или +CMS ERROR: 517 (SM BL NOT READY). После включения, пока идет инициализация карты, тоже говорит +CMS ERROR: 517, у меня обычно секунд 5-10.

По идее еще AT+CSMINS, думаю должно зависить от того, есть ли на модуле контакт SIM INSERTED, может не подойти.
Цитата
Как можно надёжно заставить SIM300 выйти из этой ситуации (кроме как перезапуск модуля - это уже проверено)?

Можно дать AT+CFUN=0, потом AT+CFUN=1.
M_Z
Цитата(Палыч @ Jan 27 2009, 21:26) *
Есть пара сотен устройств на базе SIM300, которые периодически сообщают с помощью СМС о контролируемых параметрах. Исключительно редко (два раза за два года на разных устройствах) была выявлена следующая ситуация: устройство перестало отправлять СМС, и при его вскрытии и проверке оказалось, что модуль SIM300 на ноге SIM_VDD не выдаёт питание на СИМ карту; при перезапуске модуля SIM300 нормальная работа возобновилась. Подключение СИМ карты к модулю - согласно даташиту. Питание модуля - всё чисто и надёжно, дублированно АКБ.
Вопрос: что заставило (какая причина) модуль SIM300 снять питание с СИМ карты? Как (какой командой) можно надёжно определить эту ситуацию? Как можно надёжно заставить SIM300 выйти из этой ситуации (кроме как перезапуск модуля - это уже проверено)?

Да это может быть обычный глюк модуля. иногда, довольно редко это случается.

можно периодически проверять регистрацию в сети и в случае потери AT+CFUN=0, потом AT+CFUN=1 . Об это не раз писалолось на форуме.
Но это не всегда помогает. Иногда модуль уходит в ступор и кроме как выклбчение его не оживляют.

Ккак я понимаю контроллер управляющий модулем является инициатором отправки СМС через какой то промежуток времени.
значит второй вариант и более надежный да и более простой следующий. Как только Вы пытаетесь отправить СМСку и модуль снял питание с карточки, то не сможете послать СМСку. не получите приглашения >. значит пора выключать модуль и включать по новой. Эта процедура снимет очень многие проблемы.
Палыч
Цитата(HARMHARM @ Jan 27 2009, 23:48) *
Если был плохой контакт, модуль может через некоторое время потерять карту.
Вполне возможно. Однако в модуле SIM300 есть вход присутствия СИМ карты SIM_PRESENCE. На этом входе модуля у меня висит постоянный сигнал - "карта вставлена". Логично предположить, что если этот сигнал присутствует, то модуль мог бы после потери СИМ карты периодически её "искать"... Однако, разработчики похоже обрабатывают этот сигнал только наоборот - нет SIM_PRESENCE, то питание с СИМ карты снять.

Цитата(HARMHARM @ Jan 27 2009, 23:48) *
AT+CPIN, ответ +CPIN: NOT INSERTED или +CMS ERROR: 517 (SM BL NOT READY). После включения, пока идет инициализация карты, тоже говорит +CMS ERROR: 517, у меня обычно секунд 5-10.
Ээээ... Это команда (AT+CPIN) - ввод PIN-кода... Вы предлагаете посылать запрос "АТ+CPIN?" и если всё нормально с СИМ картой, то должно прийти "+СPIN: READY"? Кстати, ответа "+CPIN: NOT INSERTED" в моём документе SIM300_ATC_V2.02 - нет. Старый документ?

Цитата(HARMHARM @ Jan 27 2009, 23:48) *
По идее еще AT+CSMINS, думаю должно зависит от того, есть ли на модуле контакт SIM INSERTED, может не подойти.
Я - тоже думаю, что эта команда связана со входом модуля SIM_PRESENCE и, в случае "потери" СИМ карты, модуль не скажет о том, что карта вставлялась/вынималась (проверить сейчас свои догадки неначем). В дальнейшем хотим перейти на SIM300DZ - в нём SIM_PRESENCE исключена. Как-то с командами определения, что СИМ карта подключена и работает с модулем - не богато... Или - "слепой, в упор не вижу"...

Цитата(HARMHARM @ Jan 27 2009, 23:48) *
Можно дать AT+CFUN=0, потом AT+CFUN=1.
Идея понятна, вот только уверенности, что поможет - нет. Да, и с определением как эту ситуацию (потеря СИМ карты) надёжно отловить что-то у меня нет.

Цитата(M_Z @ Jan 28 2009, 00:02) *
можно периодически проверять регистрацию в сети и в случае потери AT+CFUN=0, потом AT+CFUN=1 . Об это не раз писалолось на форуме. Но это не всегда помогает. Иногда модуль уходит в ступор и кроме как выклбчение его не оживляют.
Что-то с проверкой регистрации в сети мне не очень нравится... Сеть может пропасть и по другой причине: например, карьерный самосвал временно загородил видимость с сотовой станцией. Дёргать модуль при этом - как-то нехорошо...

Цитата(M_Z @ Jan 28 2009, 00:02) *
Как только Вы пытаетесь отправить СМСку и модуль снял питание с карточки, то не сможете послать СМСку. не получите приглашения >. значит пора выключать модуль и включать по новой.
Интересно. Об отсутствии приглашения я как-то не подумал... Точно - не будет приглашения? Проверить сейчас не могу - SIM300EVB под рукой сейчас нет. Правда, кроме передачи СМС устройство их ещё и принимает, поэтому, пока не прийдёт время передавать - ситуацию с потерей модулем карты не отловить, а хотелось бы "просечь" ситуацию как можно быстрее.
M_Z
Цитата(Палыч @ Jan 28 2009, 20:56) *
Интересно. Об отсутствии приглашения я как-то не подумал... Точно - не будет приглашения? Проверить сейчас не могу - SIM300EVB под рукой сейчас нет. Правда, кроме передачи СМС устройство их ещё и принимает, поэтому, пока не прийдёт время передавать - ситуацию с потерей модулем карты не отловить, а хотелось бы "просечь" ситуацию как можно быстрее.

Кнечно если устройство должно принимать, то этот метод не совсем подходит. Значит я не правильно понял задачу.
Палыч
Цитата(M_Z @ Jan 28 2009, 20:02) *
Конечно если устройство должно принимать, то этот метод не совсем подходит. Значит я не правильно понял задачу.
Я извиняюсь, что не сказал сразу, что устройство не только передаёт СМС с состоянием контролируемых параметров, но и ещё принимает СМС с заданием режима своей работы. Меня больше интересует как определить, что модуль "потерял" СИМку? Понятно, что можно запросить PIN-код (как выше предлогалось), или там номер какой из записной книжки... Но, это как-то - "через заднее крыльцо"... Нет ли какой "простой" команды? Что-то - "смотрю в книгу и вижу комбинацию из трёх пальцев". Что посоветуете?
Baser
Цитата(Палыч @ Jan 28 2009, 18:56) *
Ээээ... Это команда (AT+CPIN) - ввод PIN-кода... Вы предлагаете посылать запрос "АТ+CPIN?" и если всё нормально с СИМ картой, то должно прийти "+СPIN: READY"? Кстати, ответа "+CPIN: NOT INSERTED" в моём документе SIM300_ATC_V2.02 - нет. Старый документ?

С документацией у китайцев есть проблемы. Да в прочем, у какой фирмы их нет?

Если Симки нет вообще, то после включения модем говорит (текстом, при любых настройках)
RDY
+CPIN: NOT INSERTED
+CFUN: 1

А если Симка отвалилась и подать команду АТ+CPIN? то отвечает ошибкой +CME ERROR:

АТ+CPIN?
+CME ERROR: 10

это если у вас в профиле установлено +CMEE: 1
если стоит +CMEE: 2
то отвечает текстом

Этих CME ERROR Codes связанных с Симкой много. Я думаю, на АТ+CPIN? может ответить и другими подходящими по случаю кодами. Но прямо в документации про это нигде не написано...
PIC_Embedder
Цитата(Палыч @ Jan 28 2009, 21:17) *
Что посоветуете?

Мне представляется, что самое надежное в данном случае, проверять наличие питания SIM карты. Если его нет, то однозначно делать перезапуск.
M_Z
Цитата(PIC_Embedder @ Jan 28 2009, 21:56) *
Мне представляется, что самое надежное в данном случае, проверять наличие питания SIM карты. Если его нет, то однозначно делать перезапуск.

Очень даже неплохая мысль!
Палыч
Цитата(PIC_Embedder @ Jan 28 2009, 20:56) *
Мне представляется, что самое надежное в данном случае, проверять наличие питания SIM карты. Если его нет, то однозначно делать перезапуск.
Цитата(M_Z @ Jan 28 2009, 21:14) *
Очень даже неплохая мысль!
Конечно, такая мысль сразу приходит в голову... Но! Что делать с уже изготовленными и эксплуатирующимися изделиями? Оставить как есть и предусмотреть в новых... Но, аппетит у заказчика во время разработки устройства рос непомерно (благо - деньгами разработка не обижалась), и в устройство напихано столько возможностей и функций, что на микроконтроллере не осталось ни одной свободной ноги и возможности освободить ногу без потерь функционала - нет. Поэтому и ищется надёжный (и желательно - "простой") метод определения потери СИМки с помощью команд.
PIC_Embedder
Ещё вариант. Просто считать номер из записной книги SIM карты. Если в ответ получили ошибку, то...
Палыч
Цитата(PIC_Embedder @ Jan 29 2009, 14:35) *
Просто считать номер из записной книги SIM карты.
Как вариант, такое определение потери модулем СИМ карты мной рассматривался (см. выше). Что в нём не нравится: 1) СИМ карту необходимо специально готовить для работы с устройством (сейчас - купил СИМ карту и вставил; номера хранятся в ЕЕPROM МК, а задаюся(меняются) управляющими СМСками; при необходимости заменить СИМ карту - перенастраивать устройство нет необходимости; какие-то "левые" номера в СИМку не загоняются для проверок присутствия СИМ карты); 2) лишний обмен с СИМ картой (на форумах проскакивали сообщения о подвисании модуля SIM300 (P.S. а, может быть, самой СИМ карты) при чтении информации с СИМ карты - видно, модуль иногда впадает в ступор когда пытается записать что-то на СИМ, а его заставляют ещё и читать оттуда). Я думал, что кто-то может знает инженерную (может быть недокументированную, но присутствующую во всех модулях SIM300) команду, в ответ на которую явно присутствует информация "СИМ вставлена и в рабочем состоянии" или "С СИМ картой - проблема". Или может такая команда описана в документации на SIM300, но я её в упор не вижу, и кто-то ткнёт меня - "Да, вот же оно!"
PIC_Embedder
Цитата(Палыч @ Jan 29 2009, 16:16) *
1) СИМ карту необходимо специально готовить для работы с устройством (сейчас - купил СИМ карту и вставил; номера хранятся в ЕЕPROM МК, а задаюся(меняются) управляющими СМСками; при необходимости заменить СИМ карту - перенастраивать устройство нет необходимости; какие-то "левые" номера в СИМку не загоняются для проверок присутствия СИМ карты);

Не обязательно что-то записывать в СИМку. Можно например считать её номер. Сейчас не помню команду, но где-то видел что это можно сделать.

Цитата
2) лишний обмен с СИМ картой (на форумах проскакивали сообщения о подвисании модуля SIM300 (P.S. а, может быть, самой СИМ карты) при чтении информации с СИМ карты - видно, модуль иногда впадает в ступор когда пытается записать что-то на СИМ, а его заставляют ещё и читать оттуда).

Я думал, что кто-то может знает инженерную (может быть недокументированную, но присутствующую во всех модулях SIM300) команду, в ответ на которую явно присутствует информация "СИМ вставлена и в рабочем состоянии" или "С СИМ картой - проблема". Или может такая команда описана в документации на SIM300, но я её в упор не вижу, и кто-то ткнёт меня - "Да, вот же оно!"

То есть, нужна команда тестирования СИМки, но не нужен с ней обмен. Не замечаем противоречия?
Палыч
Цитата(PIC_Embedder @ Jan 29 2009, 15:54) *
Можно например считать её номер.
Скажите, пожалуйста, о каком номере идёт речь?

Цитата(PIC_Embedder @ Jan 29 2009, 15:54) *
То есть, нужна команда тестирования СИМки, но не нужен с ней обмен. Не замечаем противоречия?
Не нужен лишний обмен. Модуль и сам с СИМкой обмен ведёт без дополнительных команд, и, наверное, знает о том, в порядке связь с СИМкой или нет.
P.S. Вот это знание модуля о состоянии связи его с СИМ картой, в идеале, я бы и хотел запросить у модуля некой командой.
CADiLO
Например IMSI

AT+CIMI

Execution command causes the TA to return <IMSI>, which is intended to permit the TE to. identify the individual SIM which is attached to ME
Палыч
Цитата(CADiLO @ Jan 29 2009, 16:10) *
Например IMSI
Ну, что же... Если других команд нет, то прийдётся запрашивать IMSI. Осталось определить: по команде модуль запросит IMSI у СИМки, или отдаст IMSI из своей памяти? Я так понимаю: IMSI используется модулем и считывается им в начале работы в память?
CADiLO
Из симки.
Палыч
Цитата(CADiLO @ Jan 29 2009, 16:34) *
Из симки.
Спасибо.

Решение о переделках/доделках ПО МК окончательно ещё не принято. Если будут у кого интересные идеи - буду рад их принять!
CADiLO
Если не хватает ног контроллера, соедините вход ADC модуля с VSIM и контролируйте напряжение, вплоть до того какая карточка стоит 3.3 или 1.8 вольта. Только через делитель - для ADC 2.4 вольта максимум.
Палыч
Цитата(CADiLO @ Jan 29 2009, 17:05) *
Если не хватает ног контроллера, соедините вход ADC модуля с VSIM
Хорошая мысль. Нарекания на работу ADC модуля были? Вам, наверное, о всех проблемах SIM300 хорошо известно...
CADiLO
ADC из модуля известные мне потребители не используют, так что по его работе ничего не скажу. При проверке - работало.

Вобщем самое простое соединить и поиграться - только делитель должен быть достаточно высокоомным чтобы VSIM не просадить.
Я бы поставил 1 резистор (между ADC и VSIM) - вторым было бы входное сопротивление ADC.
M_Z
Цитата(CADiLO @ Jan 30 2009, 10:39) *
Я бы поставил 1 резистор (между ADC и VSIM) - вторым было бы входное сопротивление ADC.

А чему равно входное сопротивление входа ADC? Я что то не нашел в пдфке.
Палыч
Цитата(CADiLO @ Jan 30 2009, 09:39) *
ADC из модуля известные мне потребители не используют, так что по его работе ничего не скажу.
Жаль. Но, идея использования ADC мне нравится больше, чем запрос IMSI.
CADiLO
В PDF нету, но вычислить можно - меряем 1.5 вольта напрямую, потом через 1К, 10К, 100К, 1М. И 5 минут на калькулятор.....
M_Z
Цитата(CADiLO @ Jan 30 2009, 11:58) *
В PDF нету, но вычислить можно - меряем 1.5 вольта напрямую, потом через 1К, 10К, 100К, 1М. И 5 минут на калькулятор.....

Да но это слишком радиолюбительский подход. Если параметр изготовителем не оговорен, то он может меняться от партии к партии.
К тому же там может оказаться МОП вход с входным близким к бесконечности.
Так что если использовать то конечно стоит попытаться определит что там? И ставить 2 резистора, номиналом как минимум в 10раз меньше чем входное.
CADiLO
Скажем так - резисторы такие чтобы не просадить VSIM
M_Z
Цитата(CADiLO @ Jan 30 2009, 12:00) *
Скажем так - резисторы такие чтобы не просадить VSIM

А какой минимальный резистор может быть?
В пдфке я нашел упоминание что SIM_VDD 10мА. Я так понимаю что забрать можно не более 1мА. Т.е. минимальные резисторы это 1,5кОм. Входное ADC уж наверняка больше чем 30кОм.
Единственное что все таки нижний резистор стоит шунтировать емкостью. Многие ADC, даже с высокоомным входом при преобразовании осуществляют какие то внутренние коммутации и на вход ADC наводятся импульсы. И в таком случае без шунтирующей емкости при достаточно большом выходном сопротивлении делителя, измерения неправильные.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.