|
Не всегда регистрируется и не выключается SIM300D. |
|
|
|
Nov 12 2008, 16:03
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 18-03-08
Из: удалить этот аккаунт!
Пользователь №: 36 006

|
Здравствуйте, уважаемые. Перед описанием неисправности пару слов о правильной работе моего изделия. Итак, имеем спаянные на заводе платы с модулем SIM300DZ (1008B14SIM300D32_SST34HF3284). После прошивки микроконтроллера включаю устройство для проверки, при этом работа с модулем проходит следующим образом: 1. Включение модуля через PWRKEY (контроль STATUSа); 2. Инициализация модуля; 3. Проверка наличия сим-карты, считывание записной книжки; 4. Ожидание регистрации в сети (если нет, то по таймауту в 30с выкл. модуль, пауза 2с и в п.1.); 5. Дальнейшая работа (звонки, передача данных). На данный момент из 30 шт. проверенных таким образом приборов с первого раза правильно заработали только 20. Остальные 10 непонятно ведут себя с п.4: 4. Ожидание регистрации в сети. Модуль не регистрируется в сети, постоянно идет обмен командами Код AT+CPAS // запрос на регистрацию
+CPAS: 2 // модуль не готов отвечать на инструкции
OK AT+CPAS
+CPAS: 2
OK Выходит таймаут в 30с, после чего микроконтроллер должен отключить модуль через PWRKEY, затем пауза 2с и повторить все с п.1. НО! модуль не реагирует на операцию выключения через PWRKEY, при этом светодиод NET мигает 1 раз в 3с (найдена GSM сеть). Фокус в том, что если снять питание в ручную и снова подать питание, то модуль начинает _правильно_ работать с этой попытки и впредь такое больше не повторяется. Пробовал включить/выключить модуль раз 10 подряд - все равно работает правильно. Если я отключаю антенну и повторяю эксперимент в надежде повторить глюк по истечению таймаута, то все равно модуль правильно отключается и затем снова правильно включается. Т.е. этот глюк появляется в 30% устройств и только один раз при первом включении. Железо. SIM300D питается от 4В, МК от 3.3В, согласование сигналов TxD, DTR, RTS через резисторы 240 Ом, PWRKEY включен через транзистор с открытым коллектором, до включения и перед выключением модуля выводы МК переводятся в третье состояние.
--------------------
удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!
|
|
|
|
|
Nov 12 2008, 19:34
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Немного не по теме, но хочу поведать еще об одной вещи. Несколько модулей из последней партии при подаче питания не хотят видеть данные по uart (хотя в остальном полностью работают и даже выдают ring при дозвоне на них). Помогает только снятие питания на 30 секунд (естественно, после выключения через powerkey), но далеко не с первого раза (почему то напряжение на модуле продолжаем очень медленно падать (за 30 секунд может упасть до 2В, а может почти до нуля). Сразу скажу, левой подпитки никакой нет (специально тупо отпаял uart). Пришлось поставить резистор на 4,7К для ускорения разрядки конденсатора (у меня стоит 1000мкФ) . Правда, питание было 4,35В (вроде CADILO как то писал, что последние модули не хотят включаться при 4,4В (но ведь у меня полностью работают, за исключением входа uart). Уменьшил до 4,2В. Пока ,вроде запускается устойчиво.
|
|
|
|
|
Nov 13 2008, 07:04
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 18-03-08
Из: удалить этот аккаунт!
Пользователь №: 36 006

|
Цитата(Budek @ Nov 12 2008, 21:34)  Немного не по теме, но хочу поведать еще об одной вещи. Несколько модулей из последней партии при подаче питания не хотят видеть данные по uart (хотя в остальном полностью работают и даже выдают ring при дозвоне на них). Помогает только снятие питания на 30 секунд (естественно, после выключения через powerkey), но далеко не с первого раза (почему то напряжение на модуле продолжаем очень медленно падать (за 30 секунд может упасть до 2В, а может почти до нуля). Сразу скажу, левой подпитки никакой нет (специально тупо отпаял uart). Пришлось поставить резистор на 4,7К для ускорения разрядки конденсатора (у меня стоит 1000мкФ) . Правда, питание было 4,35В (вроде CADILO как то писал, что последние модули не хотят включаться при 4,4В (но ведь у меня полностью работают, за исключением входа uart). Уменьшил до 4,2В. Пока ,вроде запускается устойчиво. Может быть и по теме, я тоже наблюдал такое, как раз вот в своем же глюке - первые 30...60с модуль не отвечает на АТ-команды. Выглядит это так, МК на всех скоростях начиная с 1200 и заканчивая 115200 pbs передает по три команды "АТ" пока модуль не ответит, если весь ряд скоростей пройден и связь не установлена, то откл/вкл через PWRKEY, пауза 2с и снова повтор. Через 30...60с таких синхронизаций модуль с очередного включения нормально отвечает, но тут начинается вышеописанный глюк с "нерегистрацией в сети". И опять же это происходит ТОЛЬКО ОДИН РАЗ. Все последующие включения проходят "на ура". А как у вас с повторяемостью глюка?
--------------------
удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!
|
|
|
|
|
Nov 13 2008, 11:50
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 18-03-08
Из: удалить этот аккаунт!
Пользователь №: 36 006

|
Думал, может операция внутрисхемного программирования МК всему виной, оказалось что нет. Из партии тех, что заработали со второго раза взял 5шт, перепрошил и включил - пошли с первого раза. Не могу никак заставить их глючить снова. Это вроде бы хорошо, но как-то не спокойно.
--------------------
удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!
|
|
|
|
|
Nov 13 2008, 13:25
|
Местный
  
Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011

|
Цитата(Mingrief @ Nov 13 2008, 11:04)  Может быть и по теме, я тоже наблюдал такое, как раз вот в своем же глюке - первые 30...60с модуль не отвечает на АТ-команды. Выглядит это так, МК на всех скоростях начиная с 1200 и заканчивая 115200 pbs передает по три команды "АТ" пока модуль не ответит, если весь ряд скоростей пройден и связь не установлена, то откл/вкл через PWRKEY, пауза 2с и снова повтор. А зачем перебирать скорости обмена Я по умолчанию использую 115200. Проблем с обменом не замечал. Может перебом скоростей голову дуоите модулю?
|
|
|
|
|
Nov 13 2008, 13:54
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 18-03-08
Из: удалить этот аккаунт!
Пользователь №: 36 006

|
Цитата(M_Z @ Nov 13 2008, 15:25)  А зачем перебирать скорости обмена Я по умолчанию использую 115200. Проблем с обменом не замечал. Может перебом скоростей голову дуоите модулю? Еще до меня разработчики использовали Q2403A кажется, так вот работали на одной скорости по умолчанию, потом им стали приходить модули с установленной другой скоростью. Как и что я уже не узнаю, но учитывая такое дело решил перестраховаться и сканировать на разных скоростях, чтобы уж наверняка. А есть негативный опыт с таким подходом?
--------------------
удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!
|
|
|
|
|
Nov 13 2008, 15:28
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Возникла мысль (тупая вроде, но учитывая адрес производителя sim, думаю имеет право на жизнь). Может модуль начинает тупить, если при включении начать общаться с ним не на его "родной" скорости 115200. У меня в программе скорость не перебирается, работаю на 38400. Как назло, теперь глюк исчез (я думаю, из-за уменьшения питалова с 4,35 до 4,2 (писал ранее). Но вы, наверное, имеете возможность протестировать, работая ТОЛЬКО на 115200.
|
|
|
|
|
Nov 13 2008, 15:43
|

старший лаборант
     
Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097

|
Цитата(Budek @ Nov 13 2008, 17:28)  Но вы, наверное, имеете возможность протестировать, работая ТОЛЬКО на 115200. Да почему, собственно. Можно и на любой другой, 38400 так 38400... только момент. Первое, что с ним сделаю, это: AT+IPR=38400;&W. Чтобы после сброса гарантированно работал именно на этой скорости. (В прошивках под Spansion версий вплоть до 13-й происходили в этом плане чудеса, ещё как-то на AT+CFUN завязанные - скорость вовсе не обязательно запоминалась; подозреваю, что с SST то же самое. Начиная с 14, не замечал неадекватностей).
--------------------
Китайская комплектация - европейское качество! ;)
|
|
|
|
|
Nov 14 2008, 12:24
|
Местный
  
Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011

|
Цитата(Mingrief @ Nov 13 2008, 17:54)  Еще до меня разработчики использовали Q2403A кажется, так вот работали на одной скорости по умолчанию, потом им стали приходить модули с установленной другой скоростью. Как и что я уже не узнаю, но учитывая такое дело решил перестраховаться и сканировать на разных скоростях, чтобы уж наверняка. А есть негативный опыт с таким подходом? просто в даташите на SIM300D есть запись Serial Port supports the communication rate as following: 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Default as 115200bps. Поэтому я не искал приключений и использовал 115200 Ну а если вдруг по умолчанию пойдут другие скорости, начиная с какой то версии, то многие настройки в том числе и скорость обмена с SIMом програмируется по последовательному интерфейсу имеющемуся в устройстве. И потом при последующей компиляции программы по умолчанию будет другая скорость.
|
|
|
|
|
Nov 14 2008, 13:36
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 30-07-08
Из: Украина Луганск
Пользователь №: 39 308

|
Цитата(M_Z @ Nov 14 2008, 16:24)  просто в даташите на SIM300D есть запись Serial Port supports the communication rate as following: 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Default as 115200bps. Поэтому я не искал приключений и использовал 115200 Тоже использовал скорость 115200. Потом перевел на 9600. При более низкой скорости, допустим больший разброс частоты тактового генератора. Решил, что так будет надежнее.
|
|
|
|
|
Nov 14 2008, 14:11
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 18-03-08
Из: удалить этот аккаунт!
Пользователь №: 36 006

|
Цитата(Mingrief @ Nov 13 2008, 09:04)  Может быть и по теме, я тоже наблюдал такое, как раз вот в своем же глюке - первые 30...60с модуль не отвечает на АТ-команды. Выглядит это так, МК на всех скоростях начиная с 1200 и заканчивая 115200 pbs передает по три команды "АТ" пока модуль не ответит, если весь ряд скоростей пройден и связь не установлена, то откл/вкл через PWRKEY, пауза 2с и снова повтор. Через 30...60с таких синхронизаций модуль с очередного включения нормально отвечает, но тут начинается вышеописанный глюк с "нерегистрацией в сети". И опять же это происходит ТОЛЬКО ОДИН РАЗ. Все последующие включения проходят "на ура".
А как у вас с повторяемостью глюка? Наврал с алгоритмом установки скорости. Начинается синхронизация с отправки трех команд АТ на скорости 9600, если неудачно, то тогда переходит на скорость 115200 и т.д. до скорости 1200. Если модуль ответил на одной из скоростей, то на ней производится запись "AT+IPR=9600" - установка на 9600. Т.о. при следующем включении и впредь модуль будет работать на 9600 бит/с. Скорее всего в этом вся магическая закономерность "первого раза". Теперь осталось разобраться почему модуль "подвисает" если в нем установлена 115200, а обращаются к нему на 9600.
--------------------
удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!удалить этот аккаунт!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|