|
SIM300 Вопросы по применению |
|
|
|
Feb 25 2008, 21:08
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Удалось прошить в этот модуль версию 1008B15SIM300M32_SST34HF3284 предварительно прочитав и сохранив оригинальное содержимое флешки. Сам процесс прошивки прошел нормально, правда оказалось, что в модуле стоит другая память: SST32HF3281 После обновления модуль стал нормально включаться и выключаться поверкеем, стал нормально мигать NETLED. Но модуль перестал реагировать на АТ команды! Проверил на всех скоростях. При этом, из модуля периодически вываливаются строчки на 115200: Код FF FF 2B 43 42 43 4E 3A 20 30 2C 39 30 FF FF ..+CBCN: 0,90.. FF FF 2B 43 42 43 4E 3A 20 30 2C 39 31 FF FF ..+CBCN: 0,91.. Что еще можно предпринять? Как провести какой-нибудь системный сброс модуля? Может дело в том, что я перепрошивал, не очищая всю флеш? Распределение памяти, таблиц могло сильно изменится. Что вообще происходит, когда прошиваешь модуль короткой программой с очисткой всей флешки?
|
|
|
|
|
Feb 26 2008, 21:02
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(CADiLO @ Feb 26 2008, 09:28)  У меня с вот этой прошивкой (вложение) проблем не возникало. Попробуйте перешить.... Именно этим и это и прошивал первый раз. Попробовал очистить всю флешку, но никаких результатов это не дало - те же глюки, видимо железо отличается Далее решил вернуть все обратно, дабы можно было бы хоть отлаживать работу по УАРТу (мои SIM-карты эта версия ПО не видит). С боооольшими матюгами это удалось (спасибо ув. CADiLO, помогли ваши "наводки"). Правда так и не понял, где правильно резать полную прошивку. На цельную говорит что-то типа "некорректные адреса", слишком короткую прошил, но она вышла еле живой В конце концов отрезал только последний кусок с данными, где сериальный номер и IMEI - вроде стало как прежде. Вообщем заказчик послан за новым модулем, целый рабочий день коту под хвост, зато experience-а завались.....
|
|
|
|
|
Feb 27 2008, 11:55
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(CADiLO @ Feb 27 2008, 11:27)  ... вот это место ищем в полной и обрезаем ... ... это и будет искомый файл, но длину в заголовок ставим на 7 байт меньше ! ... и еще - не знаю почему но иногда прошивальщик не берет файл с другим именем, переименовываем так как дает симком и все начинает работать. Немного вас поправлю насчет "01 - разделитель". Это не разделитель, а 4-х байтный адрес из адресного пространства проца модуля, куда физически подключена флеш. Флеш расположена по адресам 0x01000000...0x013FFFFF. Соответственно первые 8 байт прошивки - адреса, куда нужно прошивать. (Когда я сначала написал 00 00 00 01 38 16 1D 00, флешер выдал длину 0xFF1D1638) И почему на 8 байт больше, тоже понятно - первые 8 байт файла с адресами служебные, к прошивке не относятся. С именами файлов проблем не было, хотя имена были произвольными. Периодически сбивался процесс прошивки в момент старта загрузчика из ОЗУ модуля (с различными ошибками), но если этот момент проскакивал, дальше все шло без проблем. Я правда списываю эти сбои на то, что у меня модуль и COM порт подключены на различные УАРТы МК, и я просто программно транслирую уровни на TX, RX. А вот вопрос насчет маркера конца прошивки: это 100% известно или просто " пока все прошивки заканчивались так"? Цитата(Harbinger @ Feb 27 2008, 12:13)  Если не секрет - какого оператора и когда приобретены? Думаю, что у меня проблема не с карточками, а с версией ПО модуля. Я в первом посте писал, что версия В01 ( первая). Работа этого модуля вообще мало похожа на то, что написано в теперешней документации
|
|
|
|
|
Feb 27 2008, 21:23
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Еще вопрос по железу: "процедура безопасного умирания"Есть какие неофициальные рекомендации SIMCOMа или опыт практикующей общественности на тему: Какие уровни сигналов на управляющих ногах PWRKEY, DTR и RTS наиболее безопасны в момент аварийного пропадания питания. А то информации мало и она противоречива. Допустим, DTR и RTS подключены через драйверы с подтяжкой к VEXT. В начале пропадания питания их лучше поставить в пассивное (high) состояние или без разницы? Вроде проскакивали сообщения, что при DTR low->high модуль быстро прекращает передачу. Или нет? По поводу PWRKEY: - с одной стороны, в FAQ написано "If you pull down PWRKEY PIN to GND directly, the module will power on and power off automatically when the module’s working voltage below 3.3V. This will damage the module. - с другой стороны, при прошивании флешки, PWRKEY зажат в нуле и остается на земле после программирования и в момент снятия питания. И ничего страшного не происходит. Мне чего-то кажется, что PWRKEY нужно подтягивать к VBAT и переключать в High в начале пропадения VBAT. Какие мнения? И какие АТ команды можно послать (если, конечно, успеешь  ) при обнаружении пропадания питания. Например, в момент передачи данных по GPRS?
|
|
|
|
|
Feb 28 2008, 04:49
|

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

|
...Если напряжение ниже 3,3 В, модуль будет выключаться и включаться автоматически... может быть, они не совсем правы (такое может быть разве что при отсутствии супервизора питания!). Другое дело, если напряжение "плавает", то выше 3,3 В, то ниже. Выключился - напряжение повысилось - включился, начал искать сеть, напряжение просело - выключился. Какой-то гистерезис там, конечно, должен быть (нужно посмотреть внимательнее в доках или измерить), но его при повышенном внутреннем сопротивлении источника питания (например, старая батарея) может оказаться недостаточно. А из GPRS быстро выйти вряд ли получится...
--------------------
Китайская комплектация - европейское качество! ;)
|
|
|
|
|
Mar 15 2008, 18:34
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Привезли мне новый модуль SIM300Z (P1008B15). Поигрался с ним немного, вроде бы все, что проверил, соответствует документации. Но вот возникли вопросы, связанные с передачей данных при помощи GPRS. Как я понял, процесс установления соединения состоит из нескольких этапов: - Регистрация в сети GSM; - Подключение к сервису GPRS (AT+CGATT=1); - Активация PDP контекста с получением PDP адреса от мобильной сети; - Установление TCP или UDP соединения. Так вот, меня удивило наличие множества различных команд, которые частично дублируют друг друга. Получается, что установить соединение можно различными путями. Так работает (AT+CGATT=1 даже можно и опустить, к GPRS само подключается): Код TE: AT+CGATT=1 ME: OK (STATE: IP INITIAL) TE: AT+CIPCSGP=1,"APN","USER","PASS" ME: OK (STATE: IP INITIAL) TE: AT+CIPSTART="TCP","xx.xx.xx.xx","PORT" ME: OK ME: CONNECT OK (STATE: CONNECT OK) И так работает: Код TE: AT+CSTT="APN","USER","PASS" (+CGATT: 0 STATE: IP INITIAL) ME: OK (+CGATT: 0 STATE: IP START) TE: AT+CIICR ME: OK (+CGATT: 1 STATE: IP GPRSACT) TE: AT+CIFSR ME: xx.xx.xx.xx (+CGATT: 1 STATE: IP STATUS) TE: AT+CIPSTART="TCP","xx.xx.xx.xx","PORT" ME: OK ME: CONNECT OK (+CGATT: 1 STATE: CONNECT OK) А вот со стандартными командами AT+CGDCONT - Define PDP Context AT+CGACT - PDP Context Activate Or Deactivate какие-то непонятки. Такое впечатление, что это бутафория, неработающие заготовки. PDP контекстов можно определить целых 10! Они пишуться и читаются. Можно их активировать и деактивировать. Только на работу с GPRS это никак не отражается. И точка доступа (APN) при активации контекста стеку TCP/IP не становится известной.  Вот так не работает: Код ME initial state: (+CGATT: 0 STATE: IP INITIAL) TE: AT+CGDCONT=1,"IP","APN" ME: OK (+CGATT: 0 STATE: IP INITIAL) TE: AT+CGACT=1,1 ME: OK (+CGATT: 1 STATE: IP INITIAL) TE: AT+CIPSTART="TCP","xx.xx.xx.xx","PORT" ME: OK ME: CONNECT FAIL ME: STATE: IP IND ME: +PDP: DEACT (+CGATT: 1 STATE: PDP DEACT) И вот, в связи со всем этим, вопросы:1. Зачем нужно такое разнообразие команд и вариантов? 2. Команда AT+CGACT в SIM300 действительно не до конца реализована, или я чего-то не понял? Мне казалось, что при активации PDP контекста сразу должна настраиваться APN и сетью выделяться PDP адрес. 3. Где можно посмотреть описание состояний GPRS соединения (AT+CIPSTATUS)? Смысл части состояний понятна из названий, но остальные - полная загадка.
|
|
|
|
|
Mar 17 2008, 14:50
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919

|
Цитата(Baser @ Mar 15 2008, 22:34)  А вот со стандартными командами AT+CGDCONT - Define PDP Context AT+CGACT - PDP Context Activate Or Deactivate какие-то непонятки. Такое впечатление, что это бутафория, неработающие заготовки. PDP контекстов можно определить целых 10! Они пишуться и читаются. Можно их активировать и деактивировать. Только на работу с GPRS это никак не отражается. И точка доступа (APN) при активации контекста стеку TCP/IP не становится известной.  +CGDCONT действует для "классического" соединения со стороны компа через ATD*99#. Собственно, после ATD*99 еще можно как-то указать и номер контекста, вот тут-то эти 10 штук и заработают. Насколько настройки "внешнего" dial-upного gprs-а влияют на "внутренний" стек модуля - вопрос темный. Похоже, что настройки не пересекаются, и лучше подобрать работающую последовательность команд для твоей задачи экспериментально.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|