Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Инициализация SIM-карты
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
vka_
В девайсе на Sim900 cделал переключение двух симок о обнаружил, что при переключении симок "на ходу" регистрация с новым ОПСОСом происходит только после аппаратного ресета Sim900, что не есть хорошо, так как требуются дополнительные схемные навороты. Может кто знает как программно (командами) инициализировать вновь подключенную симку? В мануале найти не удалось.
Alechek
AT+CFUN
vka_
Цитата(Alechek @ Apr 6 2011, 12:45) *
AT+CFUN

Спасибо, AT+CFUN=1,1 работает. Но, к сожалению есть недостаток: сбрасывает в 0 порты GPIO, а у меня на них висит оборудование. Опять без рихтовки матчасти не обойдешься...
CADiLO
А если попробовать так:

AT+CFUN=4,0

пауза

AT+CFUN=1,0
Варяг
Цитата(vka_ @ Apr 6 2011, 12:31) *
Спасибо, AT+CFUN=1,1 работает. Но, к сожалению есть недостаток: сбрасывает в 0 порты GPIO, а у меня на них висит оборудование. Опять без рихтовки матчасти не обойдешься...

Зачем на порты вешать оборудование? пускай оно питается непосредственно от ИП. Кинь проводок и все
CADiLO
Так вопрос не в питании, а например в том что тем же GPIO могут коммутировать карточку.
Вот он и сбросится не переключив на другую.
vka_
Цитата(CADiLO @ Apr 6 2011, 13:56) *
А если попробовать так:

AT+CFUN=4,0

пауза

AT+CFUN=1,0

Результат: частое мигание индикатора NETLIGHT и ответ на команду:
at+cops?
+COPS: 0
что, как я понимаю, означает отсутствие регистрации.
CADiLO
Хм.... Есть способ, только нужно вспомнить..... То что через CFUN 4 потом 1 точно, а вот что еще там было....


Можно попробовать так.

работаем на первой карте

CFUN=4 (без второго значения)

переключаемся на вторую

CSDT=1 (только пин обнаружения симкарты должен сидеть на GND)

CFUN=1 (без второго значения)


если зарегилась, то CSDT вернуть в 0.


...... вот что крутится такое что без симдетект она не подхватится после сброса.....
vka_
Цитата(CADiLO @ Apr 6 2011, 15:01) *
Хм.... Есть способ, только нужно вспомнить..... То что через CFUN 4 потом 1 точно, а вот что еще там было....


Можно попробовать так.

работаем на первой карте

CFUN=4 (без второго значения)

переключаемся на вторую

CSDT=1 (только пин обнаружения симкарты должен сидеть на GND)

CFUN=1 (без второго значения)


если зарегилась, то CSDT вернуть в 0.
Та же картина: нет регистрации.


...... вот что крутится такое что без симдетект она не подхватится после сброса.....



Цитата(CADiLO @ Apr 6 2011, 15:01) *
Хм.... Есть способ, только нужно вспомнить..... То что через CFUN 4 потом 1 точно, а вот что еще там было....


Можно попробовать так.

работаем на первой карте

CFUN=4 (без второго значения)

переключаемся на вторую

CSDT=1 (только пин обнаружения симкарты должен сидеть на GND)

CFUN=1 (без второго значения)


если зарегилась, то CSDT вернуть в 0.


...... вот что крутится такое что без симдетект она не подхватится после сброса.....

Та же картинаЖ нет регистрации...
Aurochs
Цитата(vka_ @ Apr 6 2011, 13:48) *
Та же картинаЖ нет регистрации...

Попробуйте просто AT+COPS=0
CADiLO
Я нашел решение, только нужно любой из GPIO соеденить с SIMPRESENSE ну и правильно его инитить.
И еще - GPIO10 лучше не использовать, он для JD резервируется

а на попробовать работает так

AT+CFUN=4
OK

//переключили карточку (вынул - вставил в EVB)

AT+CFUN=1
OK

+CPIN: NOT READY // еще не увидел карточку

AT+CSDT=1 //разрешить определение карточки
OK

AT+SGPIO=0,1,1,0 // 10к на simpresent и с GPIO1 подаем 0
ОК

AT+COPS=0
OK

AT+CREG?
+CREG: 0,1

OK
AT+CSDT=0 // запретить определение карточки
OK

AT+SGPIO=0,1,1,1 // GPIO1 подаем 1
ОК

AT+CREG?
+CREG: 0,1

OK


Постоянный уровень 0 на simpresent не дает определения - нужен перепад.

Вместо GPIO можно контроллером simpresent дергать.
vka_
Попробовал. Результат: после установления Simpresent=0 (У Вас это команда AT+SGPIO=0,1,1,0) регистрация происходит, но опять устанавливаются в 0 все порты GPIO. Начинаю думать, что задачка не имеет решения.
CADiLO
Вы используете EAT или работаете с внешним контроллером ?
vka_
Пока использую внешний контроллер, но планирую ЕАТ, поэтому использую для управления подключенным оборудованием выходы GPIO.
Думаю, что при работе с ЕАТ будут те же проблемы.
CADiLO
Вы первый кто применил GPIO - сколько я знаю народа все используя внешний проц, используют его порты.

По поводу портов в EAT, пообщайтесь с Peps - у него проект на EAT и он работал с портами, даже ошибки понаходил.

Кстати проверяя свой способ, я не обратил внимание на сброс портов - перепроверю.
Сейчас немного занят, но задача меня заинтересовала - посижу с ней на выходные, подумаю над решением.


Дополнение!!!

Перепроверил

На SIMPRESENT повешен микрик - иммитация внешнего управления, сам SIMPRESENT через 10к на Vext

AT+CFUN=4
OK
AT+SGPIO=0,10,1,1 // порт 10 выставил в 1 и контролирую его - можно и до CFUN=4 порт установить
OK

// здесь я вынул - вставил карточку

AT+CFUN=1,0 // обязательно с 0 иначе сбросится
OK

+CPIN: NOT READY

AT+CSDT=1 //разрешил опрос карточки - нельзя делать раньше чем CFUN=1
OK

+CPIN: NOT READY

//здесь я зажал микрик и подал 0 на SIMPRESENT

AT+COPS?
+COPS: 0,0,"UA-KYIVSTAR"

OK

AT+COPS=0 // регистрируемся в сети
OK

AT+CSDT=0 // запретил опрос SIMPRESENT и отпустил микрик
OK

AT+CREG?
+CREG: 0,1
OK

// GPIO10 - НЕ СБРОСИЛСЯ!!!!

Если разрешить опрос SIMPRESENT в другом месте то AT+COPS дает ERROR и CREG уходит в 0,3
Работает именно приведенная последовательность.
vka_
Попробовал. Результат:
at+cops?
+COPS: 0,0,"Beeline" ;Первая симка - билайн

OK
at+sgpio=0,11,1,1 ;Simpresent=1
OK
at+cfun=4
OK

+CREG: 0
at+sgpio=0,12,1,1 ;Включена симка мегафон
OK
at+cfun=1,0
OK

+CREG: 2

+CREG: 1,"DB65","DAD6"

+CGREG: 2

+CGREG: 1
at+csdt=1
OK
at+sgpio=0,11,1,0 ;Simpresent=0
OK
at+cops?
+COPS: 0,0,"Beeline" ;билайн остался

OK
at+cops=0
OK ;больше ничего не дождался
at+csdt=0
OK
at+creg?
+CREG: 2,1,"DB65","DB27"

OK
at+cops?
+COPS: 0,0,"Beeline" ;так и остался билайн, лампочка netlight моргает редко, хотя физически подключена симка мегафон.

OK
Т.е. фокус не удался...
CADiLO
А можно вашу схемку коммутации глянуть.
У меня товарищ проверил эту идею на схеме где симки перекидываются при помощи 4066 (все 4 вывода).
Работает.
vka_
Схемка простая, всеми пользуемая: переключатель на mc14016, управление от МК, используем уже лет 5 (на Sim300), никаких проблем ни разу не было, пока не появилась необходимость использовать GPIO, которые, как оказалось, сбрасываются после рестарта модема, необходимого для регистрации второй симки. А для эксперимента управление переключением завел от GPIO12.
Slonofil
Раз уж порты ведут себя так однообразно, почему бы не прикрутить какой-нибудь элементарный RS-триггер вроде tinyLogic? Это вряд ли сильно увеличит стоимость платы и её размеры.
CADiLO
Если физически подключена симка мегафона, то он никак не мог после CFUN4 вернуться на билайн.
Значит он опять увидел билайн - почему не перекоммутировалось надо смотреть.

Проверить очень просто - не переключая at+sgpio=0,12,1,1 - после CFUN4 физически выньте одну и вставьте другую карточку
на то же место. Модуль зарегится с новой карточкой.
vka_
Факт на лице: симка подключена мегафоновская (еще раз проверил), а модем находится в билайне, пока не пройдет ресет. Видимо данные симки сохраняются где-то в модеме. И в таком состоянии моем может находиться от 10 минут до полчаса, после чего регистрация пропадает вообще (по ресету модем регистрируется уже в мегафоне).
На эксперимент с передергиванием симки не решаюсь, так как стоят сокеты с выдвигающейся карточкой, а не с откидывающейся крышкой, поэтому при вынимании симки ее контактными дорожками могут непредсказуемо замыкаться пружины сокета.
Будем пробовать решить задачу в ЕАТ.
ArtemKAD
Цитата
ее контактными дорожками могут непредсказуемо замыкаться пружины сокета.

Непредсказуемо - не могут. Там замыкаются вполне конкретные ноги. И уже после снятия питания с Sim-карты.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.