Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900D, зависание модуля поле нескольких дней работы
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2
LAA
Столкнулся со следующей проблемой. Используем модули SIM900D. Прибор отправляет только SMS сообщения, GPRS не используется. Прибор может работать 3 дня, может работать 1 мес, произвольное время, но в один прекрасный момент модуль зависает, перезапустить модуль с помощью ноги Power_Key не получается. При этом модуль начинает потреблять больший ток. Модуль зависает наглухо, помогает только полное отключение питания. По симптомам похоже на фантомное питание, пробовал ввести модуль в подобный режим подавая на RTS, DTR, RXD высокий уровень и при этом отключать и включать питание через Power_Key. Модуль запускается без проблем, ни какого намека на фантомное питание нет. Изначально была прошивка 1137B05SIM900D64_ST, затем поменяли прошивку на 1137B08SIM900D64_ST, но это не помогло, проблема осталась.

Кто-нибудь сталквался с подобной проблемой?
Baser
Цитата(LAA @ Nov 22 2011, 21:30) *
Кто-нибудь сталквался с подобной проблемой?

Дык это проблема с которой предпочитают не сталкиваться, а обходят ее еще на этапе проектирования.
Принимается за аксиому, что устройство такого уровня сложности, как ГСМ модем не может быть на 100% сбоеустойчиво и обязательно когда-нибудь подвиснет biggrin.gif

Поэтому обычно предусматривают ключ для коммутации питания модуля.
И при глухом подвисе его задействуют.

Китайцы еще для SIM300 рекомендовали следующий алгоритм:
два раза попробовали перезапустить модем при помощи PowerKey - не помогло - снимаем питание cool.gif
MKdemiurg
Цитата(Baser @ Nov 22 2011, 23:13) *
Китайцы еще для SIM300 рекомендовали следующий алгоритм:
два раза попробовали перезапустить модем при помощи PowerKey - не помогло - снимаем питание cool.gif


А я вот недоганяю этот алгоритм. Если уж отрубил модуль по PWRKEY , то почему бы не снять питание тоже и после просто повторить весь протокол заново?
Aner
Получить такой результат можно многими путями. Начиная от того как спроектировано изделие, схема, технология, топология, как собиралось технологически. Может банально не промыли, ... причин ну очень много. Если хотите чегото узнать то желательно давать больше информации о вашем изделии. Может быть и программа виновата, может наведенная помеха, плохо выполнено питание, детали не качественные, плохая антенна, может опсос.
LAA
К сожалению отключение питания модуля, не заложили на этапе проектирования. Раньше использовали SIM300D проблем никогда не было. Теперь на новую плату заложили принудительное отключение питания. Остается понять, что делать с теми приборами которые уже выпущены.
CADiLO
>>>перезапустить модуль с помощью ноги Power_Key не получается

киньте схемку стыковки модуля и контроллера. и как подключена симкарта.
надеюсь ключик на поверкей поставили? или как многие посчитали что эмуляции ОК в контроллере будет достаточно sm.gif



stream
Цитата(LAA @ Nov 22 2011, 23:30) *
в один прекрасный момент модуль зависает, перезапустить модуль с помощью ноги Power_Key не получается. При этом модуль начинает потреблять больший ток.

Он потребляет большой ток при каждом зависании? Больший на сколько? Потребление 1А и выше означает, что в момент зависания был и остался включен передатчик и искать нужно в первую очередь какие-то проблемы со схемой питания (просадки при включении передатчика) или согласования антенны (наводки). Конечно, зависание может быть и в прошивке, но с такой проблемой вроде пока что никто здесь не сталкивался (или просто никто не использует модуль в таком режиме).
ssokol
Цитата(LAA @ Nov 22 2011, 23:30) *
По симптомам похоже на фантомное питание, пробовал ввести модуль в подобный режим подавая на RTS, DTR, RXD высокий уровень и при этом отключать и включать питание через Power_Key.

а почему бы не сделать схему без фантомной подпитки, чтоб более на это ни когда не грешить, тем более, что "фантомность" сымитировать очень сложно, надо знать в какой момент ее подать. По опыту скажу, что 300-е у нас не зависали так , что только питанием, а вот 900-е редко но бывает, что только питанием, и это замечали в GPRS-e.
CADiLO
>>>а вот 900-е редко но бывает, что только питанием, и это замечали в GPRS-e.

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

1. поверкей соединяли с PIC24 напрямую и вывод PIC24 переводили в ОК. модуль зависал и не выключался поверкеем
излечено приведением схемы в соответствие с рекомендацией - после установки ключа гарантировано отрубается поверкеем.

2. стабилизатор давал всплеск при резком изменении тока в GPRS режиме. модуль зависал без объяснений и не выключался
при тестировании на аккумуляторе ни разу не завис. дана рекомендация переделать питание - больше жалоб на было.

3. зависал на карточке киевстара. этот же модуль на стенде и с этой же картой заработал без проблем.
хорошая промывка платы и запайка модуля только с канифолью вылечила проблему

ну вот пока и все с чем сталкивались по зависанию.

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

ну а глюки при фантомке - можно уже роман писать.....
GeGeL
Любые длинные провода непосредственно от ног модуля к внешним датчикам из-за наводок могут вызвать эффект защелкивания, характерный для CMOS. Причем PIC тоже виснут и греются аж до полного снятия питания: видел, и не раз.
Если у Вас есть подобные внешние цепи, желательно сделать развязки.
LAA
SIM карта подключена от держателя непосредственно к модулю. Длина проводников 1,5 - 2 см максимальная. На Power_Key Ключ стоит.

В момент зависания ток потребления составляет где-то 100-120мА.

Все цифровые ноги при включении перевожу в логический "0"
CADiLO
>>>Все цифровые ноги при включении перевожу в логический "0"

Ага - а как же фраза

"до появления сигнала STATUS на цифровых входах модуля не должно быть НИКАКОГО уровня"

а вы туда ноль..... 0.7 вольта......
CADiLO
>>>Все цифровые ноги при включении перевожу в логический "0"

Ага - а как же фраза

"до появления сигнала STATUS на цифровых входах модуля не должно быть НИКАКОГО уровня"

а вы туда ноль..... 0.7 вольта...... нехорошоооооо......



а еще - контроллер каким напряжением питается ?
rx3apf
Цитата(CADiLO @ Nov 24 2011, 16:59) *
>>>Все цифровые ноги при включении перевожу в логический "0"

Ага - а как же фраза

"до появления сигнала STATUS на цифровых входах модуля не должно быть НИКАКОГО уровня"

а вы туда ноль..... 0.7 вольта......

Что за ... 0.7V ? Откуда при "нуле" возьмутся какие-то мифические "0.7 вольта" ? И почему 0.7, а не, скажем, 0.5 ?
CADiLO
0.5 или даже 0.1 - не имеет значения
требование четкое - НИКАКОГО напряжения

Ну а для некоторых контроллеров встречалось - Output Low Voltage = 0.2Vcc
А это уже 0.6 вольта при питании 3.0. Небольшие пульсации и будем иметь искомые 0.7
Это в теории может и редкость, а в практике встречается в самый ненужный момент.
Да и народ у нас зачастую норовит питать 3.3 и соединять напрямую......

Для того же PIC24 при питании 3.0 имеем уровень 0 = 0.4-0.5 вольта.

Поверьте что для глюков модуля этого более чем достаточно. И если вам такое не попадалось, то других пострадавших имеется в достатке.
rx3apf
Цитата(CADiLO @ Nov 24 2011, 17:48) *
0.5 или даже 0.1 - не имеет значения
требование четкое - НИКАКОГО напряжения


"0" и есть НИКАКОГО.
Цитата
Ну а для некоторых контроллеров встречалось - Output Low Voltage = 0.2Vcc
А это уже 0.6 вольта при питании 3.0. Небольшие пульсации и будем иметь искомые 0.7

Вы в самом деле не понимаете или издеваетесь ? Ох, как все запущено... Напряжение лог "0" на выходе регламентируется при _наличии внешнего втекающего тока_, и определяется как произведение сопротивления открытого канала "нижнего" транзистора драйвера и втекающего тока, причем в худшем случае (при максимальном сопротивлении канала). Что, модуль SIM900 уже обзавелся pullup-ом на несколько mA (да еще и постоянно подключенным к питанию) ? Нет ? Тогда - в сад. На никуда не подключенном выходе CMOS (а равно и в том случае, когда там еще и CMOSовый же вход модуля) при лог "0" напряжение и есть 0. Максимум единицы mV. А если и с "землей" нельзя соединять - то это уже другой разговор, тогда, pls, ссылочку на оригинальный документ, запрещающий это делать. Потому как это исключает возможность согласования уровней резистивными делителями. Ну, а пока такой ссылочки не будет - то я буду руководствоваться здравым смыслом. Что и другим советую...
Цитата
Это в теории может и редкость, а в практике встречается в самый ненужный момент.
Да и народ у нас зачастую норовит питать 3.3 и соединять напрямую......

Да хоть бы и 3.3. По уровню "1" - злостное нарушение. А пока "0" - ноль и есть. Учите матчасть (т.е. схемотехнику).
LAA
Цитата(CADiLO @ Nov 24 2011, 17:00) *
>>>Все цифровые ноги при включении перевожу в логический "0"

Ага - а как же фраза

"до появления сигнала STATUS на цифровых входах модуля не должно быть НИКАКОГО уровня"

а вы туда ноль..... 0.7 вольта...... нехорошоооооо......



а еще - контроллер каким напряжением питается ?


Тестером смотрел, четкий ноль стоит. Можно конечно попробовать Z-состояние, но сколько смотрел. "0" четкий.

Питание контроллера 4,0В. Уровни согласую через резисторный делитель.
CADiLO
давайте будем попроще, мы как-то уже с вами спорили, но время и проблемы у клиентов показали что :

вот с этим - " Да хоть бы и 3.3. По уровню "1" - злостное нарушение." - 100% согласен.

а вот далее....

имеется вывод (настроеный на выход) контроллера подключеный к входу модуля.

наличие на этой линии - логического нуля или логической еденицы до появления STATUS приводит к глюкам модуля.

допустимые варианты решения.

до появления STATUS:
1. Перевести вывод контроллера на ввод
2. Перевести вывод контроллера в третье состояние (или разорвать линию)
3. соединить линию с GND
4. использовать ОК c подтяжкой к Vext модуля.

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

Запомнить это как отче-наш и глупостями не заниматься. а вот когда все будет работать можно сидеть с бокальчиком пивка и теретизировать сколько душе угодно.

Потому что ваши теоретические выкладки как раз хороши для ОК - который и даст 0 (падение на ЭК) при втекающем токе.
Или для "идеального" логического элемента.
Если возьмете реальный логический вывод (не ОК) и посмотрите осциллографом - более того возьмем делитель 1:100 чтобы не было "втекающего тока в несколько миллиампер" - то увидим это напряжение логического "0".
Ведь если бы верхний ключ был идеален нафига было бы городить открытый коллектор или сток. А так ......

Поэтому - Учите матчасть (т.е. схемотехнику).




>>>Тестером смотрел, четкий ноль стоит. Можно конечно попробовать Z-состояние, но сколько смотрел. "0" четкий.

логический ноль или GND?

>> Питание контроллера 4,0В. Уровни согласую через резисторный делитель.

делитель выбрасываем - берем схему http://microchip.ua/simcom/SIM900x/AppNote...0Note_V1.02.pdf
рисунок нумбер - 4 - и вот в этой схеме уже можете не задумываться о сигнале STATUS - там Vext появится в правильное время.


Ну и как вариант - либо делать как рекомендовано и забыть про глюки (можете об этом форумчан спросить) через это тут народ уже проходил.
Или слушать теоретиков размахивающих шашкой и продолжать сокрушаться что модуль говно.
rx3apf
Цитата(CADiLO @ Nov 24 2011, 18:49) *
Потому что ваши теоретические выкладки как раз хороши для ОК - который и даст 0 (падение на ЭК) при втекающем токе.
Или для "идеального" логического элемента.
Если возьмете реальный логический вывод (не ОК) и посмотрите осциллографом - более того возьмем делитель 1:100 чтобы не было "втекающего тока в несколько миллиампер" - то увидим это напряжение логического "0".

Которое (напряжение) неотличимо от реального нуля (Vss). Или превышает оное на величину падения на внутренней металлизации при большом собственном потреблении контроллера. А вот Вы, похоже, никогда ни осциллографом (к слову, никакой вход, 1:100, 1:10 или даже 1:1 _принципиально_ неспособен дать _втекающий_ ток), ни мультиметром не смотрели реальный выход. А зря.
Цитата
Ведь если бы верхний ключ был идеален нафига было бы городить открытый коллектор или сток. А так ......

Верхний ключ близок к идеальному, и при комнатной температуре ток через него составляет буквально наноамперы (иначе только по драйверам ног контроллер жрал бы просто до фига в состоянии сна), но даже если и единицы uA, то при сопротивлении канала "нижнего" в десятки Ohm (ну 100 Ohm у слабеньких), то напряжение там все равно не превысит единиц mV (на земляных дорожках типично больше падает). А открытый сток или коллектор от пушпульного каскада, намекну, и еще кое-чем отличается...

Если же у ненагруженного CMOS-выхода (CMOS-вход нагрузкой в статике не является) напряжение "0" больше единиц mV - это неисправный компонент, совершенно однозначно.

CADiLO
Зимой буду в Москве, можем собраться за бокалом пива-вина-чая-кофе и пообщаться на разные околосхемотехнические темы.....

Ну а сейчас товарищу надо избавляться от глюков и думаю что лучшим способом сделать это, будет приведение схемы в соответствие с рекомендациями Симкома. Я ж не просто так советую от нечего делать - проходили подобное неоднократно начиная с 300й серии.
goodwin
Да уж... Скоро адепты симкона законы физики переиначат в шаманских танцах с бубном sad.gif
Да блин, у жиденького MSP430 при вдувании тока светодиода 10 мА в нижний ключ напряжение на нем не более 0.3 В...
Где то сЭм, вОсем... (ничего личного).
butthead2
Цитата(goodwin @ Nov 24 2011, 18:59) *
Да уж... Скоро адепты симкона законы физики переиначат в шаманских танцах с бубном sad.gif

Т.е. вы считаете что это две одинаковые ситуации - держать пин принудительно в 0, и 0 на нем держится сам вследствие того, что на него не подается напряжение? По моему требования описаны более чем ясно - до включения ничего никуда не тянуть.
pau62
Цитата(butthead2 @ Nov 24 2011, 20:25) *
Т.е. вы считаете что это две одинаковые ситуации - держать пин принудительно в 0, и 0 на нем держится сам вследствие того, что на него не подается напряжение? По моему требования описаны более чем ясно - до включения ничего никуда не тянуть.


Дык 0 он и есть 0, откуда бы он не взялся. Если не путать конечно 0 и Z. А вообще автор писал, что ключ стоит у него, и апологеты шаманизма зря забеспокоились )))
butthead2
Цитата(pau62 @ Nov 24 2011, 20:05) *
Дык 0 он и есть 0, откуда бы он не взялся. Если не путать конечно 0 и Z.

Многие считают свое мнение + тестер мерилом истины, даже не вдаваясь в подробности что такое 0 и что такое Z, а потом удивляются до чего ж модули хреновые. И рекомендации производитель обычно не с потолка придумывет. Если нет желания им тупо следовать, то нужно хотя бы понять их суть.

Цитата(pau62 @ Nov 24 2011, 20:05) *
и апологеты шаманизма зря забеспокоились )))

Вот делать "по велению души", а не по рекомендацияем - это и есть самый настоящий шаманизм и пляски с бубномsm.gif
rx3apf
Цитата(butthead2 @ Nov 24 2011, 20:25) *
Т.е. вы считаете что это две одинаковые ситуации - держать пин принудительно в 0, и 0 на нем держится сам вследствие того, что на него не подается напряжение? По моему требования описаны более чем ясно - до включения ничего никуда не тянуть.

Вообще-то не вполне ясно - вот, пожалуйста, уважаемый CADiLO приводит возможные варианты:
-------
1. Перевести вывод контроллера на ввод
2. Перевести вывод контроллера в третье состояние (или разорвать линию)
3. соединить линию с GND
4. использовать ОК c подтяжкой к Vext модуля.
------
Пункт 3 вполне допускается. Или нет ? Если нет, то хотелось бы обоснование такого запрета (со ссылкой на первоисточник). Я же говорил о совершенно однозначном равенстве (в данном случае) пункта 3 и логического "0" на выходе CMOSовского драйвера (это вообще азы, не знать и не понимать этого просто неприлично, а спорить с очевидностью - глупо).

А от глюков надо избавляться, да. Но только не шаманскими плясками с бубном, пытаясь опровергнуть основы. В данном случае я бы копал в направлении питания - схемотехника и топология разводки. А самое первое - применить вынесенную антенну, чтобы исключить возможное влияние собственной радиочастотной наводки и улучшить согласование. Неприятно, конечно, что ситуация воспроизводится нестабильно - очень противно искать...
=F8=
Неплохо было бы протестировать питание симитровав подключённый модуль. Берете 2-х омный резистор подключаете его к питанию и чрез низкоомный ключ коммутируете его на землю импульсами около 1мс с интервалом 3-4 мс. Осциллографом смотрите картинку, в зависимости от занятности картинки делаете выводы.
Baser
Цитата(CADiLO @ Nov 24 2011, 16:49) *
имеется вывод (настроеный на выход) контроллера подключеный к входу модуля.

наличие на этой линии - логического нуля или логической еденицы до появления STATUS приводит к глюкам модуля.

допустимые варианты решения.

до появления STATUS:
1. Перевести вывод контроллера на ввод
2. Перевести вывод контроллера в третье состояние (или разорвать линию)
3. соединить линию с GND
4. использовать ОК c подтяжкой к Vext модуля.

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

Считаю, что тут вы сами себе противоречите, да и целиком согласен с rx3apf.
Наличие логического нуля, который формирует выходной КМОП-каскад и соединение с GND это одно и то-же.

Можно даже придумать физическое объяснение, зачем нужно переводить линии интерфейса МК в Z-состояние до появления Статуса.
Вполне возможно, что при нарастании напряжения питания на модуле входные каскады в какой-то момент начинают проводить ток,
который перекашивает что-то в чипсете и приводит к локальным защелкиваниям, или к нарушению процедуры иницициализации, или еще к чему-нибудь.
Но метод решения №3 "соединить линию с GND" - рушит это предположение.
Дайте же какое-нибудь обяснение этим вариантам решения.

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


Цитата(CADiLO @ Nov 24 2011, 16:49) *
Запомнить это как отче-наш и глупостями не заниматься. а вот когда все будет работать можно сидеть с бокальчиком пивка и теретизировать сколько душе угодно.

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

Но мы то тут все таки не прихожане, ничего на веру принимать не будем, нам подавай рациональное объяснение, почему нужно делать так.
А его нет.

Вы не обижайтесь, просто не первый год читаю ваши комментарии, такое уже было по нескольким вопросам beer.gif

butthead2
Цитата(Baser @ Nov 25 2011, 00:35) *
Но метод решения №3 "соединить линию с GND" - рушит это предположение.

Да, с третьим пунктом Эдуард откровенно погорячился - прямое противоречие требованиям.
stream
Цитата(=F8= @ Nov 25 2011, 01:32) *
Неплохо было бы протестировать питание симитровав подключённый модуль. Берете 2-х омный резистор подключаете его к питанию и чрез низкоомный ключ коммутируете его на землю импульсами около 1мс с интервалом 3-4 мс. Осциллографом смотрите картинку, в зависимости от занятности картинки делаете выводы.

О да...

Если быть точным - 0.577 ms (15/26) для одного таймслота. Период - 4.615 ms.
Если планируется GPRS, надо проверить на тройном таймслоте (1.731 ms), период не меняется.
И на всем диапазоне входных напряжений блока питания...
Результаты порой оказываются весьма обескураживающими...
CADiLO
>>>>Да, с третьим пунктом Эдуард откровенно погорячился - прямое противоречие требованиям.

Может и погорячился, но вот реальная ситуация, столкнулись в прибалтике.

PIC18LF4520, запитан 3.0 вольта, выход идущий на вход модуля переведен в 0 и удерживается таким до появления STATUS. Выход подключен через последовательный резистор 100 ом. Смотрим осциллографом - на ножке PIC 0.3 вольта. Модуль ведет себя следующим образом - после включения нет приема команд по порту или принимаются с искажениями.Коротим пинцетом вход модуля на время включения.
После этого все работает без сбоев. Програмисты ихние переписывают инициализацию PIC и переводят ножки на вход до появления STATUS.
Все - инциндент исчерпан - заработало без сбоев.

И если в модуле нет резистора, а кмоп ключ это GND, то откуда там было 0.3 вольта ?

Я не спорю что может и шаманство, но симком не зря давал такие рекомендации, а нам в реальной ситуации с нервными клиентами некогда теоретизировать - нужно устранить причину почему не работает. А задуматься над этим можно потом, когда у клиента все заработало......
И поверьте что за 7 лет, начиная еще с SIM100x, в 99% случаев приведение схемы к рекомендациям производителя убирало глюки.
1% это уже разное типа подпаленого модуля или недотравленого текстолита с сопротивлением между дорожками 300 килоом..... Бывало и такое.


>>>Результаты порой оказываются весьма обескураживающими...

Особенно когда с должным вниманием не отнеслись когда делали на PFM MC34063. Иголки выбросов до входных 12 вольт это нечто.... sm.gif
=F8=
Цитата(stream @ Nov 25 2011, 09:51) *
О да...

Если быть точным - 0.577 ms (15/26) для одного таймслота. Период - 4.615 ms.
Если планируется GPRS, надо проверить на тройном таймслоте (1.731 ms), период не меняется.
И на всем диапазоне входных напряжений блока питания...
Результаты порой оказываются весьма обескураживающими...

Ну с такой точностью не обязательно. На худой конец, если нечем регулировать скважность, можно и просто меандр подать 250-500Гц.

Цитата(CADiLO)
Особенно когда с должным вниманием не отнеслись когда делали на PFM MC34063. Иголки выбросов до входных 12 вольт это нечто....


Можно и с MC34063 вполне нормальную картинку иметь, а можно и с LM2576 весьма неприглядную, хотя с 2576 конечно проще работать.
CADiLO
Это таки да, зачастую беда в том что в даташит не вчитываются и ставят в схему что под руку попадется.....
И проверяют стабилизатор на статической нагрузке. А потом когда чудеса начинаются, никак не могут поверить что беда в питании.
Ну держит же 3 ампера, что ж еще. Где-то валяется запись с моего инстека когда я показывал что бывает с LM2576 если вместо 1N5820 поставить SF51. Вроде и SF51 5 ампер, а ток стабилизатор в динамике нифига не держит.

Frolov Kirill
Цитата(CADiLO @ Nov 23 2011, 18:41) *
>>>а вот 900-е редко но бывает, что только питанием, и это замечали в GPRS-e.

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

1. поверкей соединяли с PIC24 напрямую и вывод PIC24 переводили в ОК. модуль зависал и не выключался поверкеем излечено приведением схемы в соответствие с рекомендацией - после установки ключа гарантировано отрубается поверкеем.


А чем выход в ОК отличается от транзистора? Я вижу две причины: питание модуля превышает питание пика более чем на ~пол-вольта. Выход пика не 5V-tolerant. В итоге через защитный диод пика начинает течь всегда ток на шину питания пика. Вторая: пик не выдаёт более чем 20мА... А ещё третья: pull-up или pull-down в пике. Интересно, что являлось истиной причиной?

Цитата
2. стабилизатор давал всплеск при резком изменении тока в GPRS режиме. модуль зависал без объяснений и не выключался при тестировании на аккумуляторе ни разу не завис. дана рекомендация переделать питание - больше жалоб на было.


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

Цитата
ну а глюки при фантомке - можно уже роман писать.....


Подразумевается, что при фантомной запитке включенного модуля на его внутренних шинах питания (через защитные диоды входов) повышается напряжение и он глючит? Или то, что он не сбрасывается при выключении питания из-за фантомной запитки (факт).
Baser
Цитата(CADiLO @ Nov 25 2011, 09:34) *
PIC18LF4520, запитан 3.0 вольта, выход идущий на вход модуля переведен в 0 и удерживается таким до появления STATUS. Выход подключен через последовательный резистор 100 ом. Смотрим осциллографом - на ножке PIC 0.3 вольта. Модуль ведет себя следующим образом - после включения нет приема команд по порту или принимаются с искажениями.Коротим пинцетом вход модуля на время включения.
После этого все работает без сбоев. Програмисты ихние переписывают инициализацию PIC и переводят ножки на вход до появления STATUS.
Все - инциндент исчерпан - заработало без сбоев.

И если в модуле нет резистора, а кмоп ключ это GND, то откуда там было 0.3 вольта ?

А вы уверены, что эта ножка ПИКа была подключена к входу модуля, а не к ВЫХОДУ?
А то уж больно невероятно. Такое может быть только при втекающем в ножку ПИКа токе порядка нескольких мА.
(для PIC18LF4520: Voutput low = max 0.6V @ Iol = 8.5 mA, VDD = 4.5V, -40°C to +85°C)

Если это был выход, тогда это просто была грубая ошибка разработчиков.
Т.к. после включения сначала появляется Vext и одновременно инициализируются порты UARTа модуля с переключением выходов в "1".
А STATUS появляется только через 3-4 сек.
Если все это время держать эти ноги на внешнем "нуле", то вот вам и клинч по питанию.

Может все-же не следует предлагать пресловутый метод решения №3:
"до появления STATUS соединить линию с GND" ?
А то невнимательные пользователи начнут ВСЕ ножки порта садить на землю rolleyes.gif


Цитата(CADiLO @ Nov 25 2011, 09:34) *
Я не спорю что может и шаманство, но симком не зря давал такие рекомендации, а нам в реальной ситуации с нервными клиентами некогда теоретизировать - нужно устранить причину почему не работает. А задуматься над этим можно потом, когда у клиента все заработало......

Кстати, повторюсь, вы можете указать официальный документ Симкома, где есть эти рекомендации?
Вчерась на ночь глядя все перерыл - не нашел.
CADiLO
>>>А чем выход в ОК отличается от транзистора? Я вижу две причины: питание модуля превышает питание пика более чем на ~пол-вольта. Выход пика не 5V-tolerant. В итоге через защитный диод пика начинает течь всегда ток на шину питания пика. Вторая: пик не выдаёт более чем 20мА... А ещё третья: pull-up или pull-down в пике. Интересно, что являлось истиной причиной?

Ну так сами и дали ответ. Чесный OK в PIC есть только в 16F628 - RA4. Все остальное эмуляция. А потому та часть которая "вход", остается
физически подключенной к этому якобы ОК, вместе со своими защитными диодами. Это рассматривалось на прошлогоднем мастерстве по микрочипу и пришли к выводу что если на этом псевдоОК напряжение будет выше питания PIC, то это превышение и пойдет через защитные диоды. Точно так же если PIC будет отключен, то он может запитаться черех них.

>>>И как именно его переделывать? Аккумулятор не всегда можно использовать, а любой стабилизатор даст всплеск. Вопрос в том, насколько большой. А насколько он был большой в данном случае, и оценивалось ли как-то dV/dt?

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

>>>Подразумевается, что при фантомной запитке включенного модуля на его внутренних шинах питания (через защитные диоды входов) повышается напряжение и он глючит? Или то, что он не сбрасывается при выключении питания из-за фантомной запитки (факт).

PNX4851.
The default VCORE full power setting is 1.25 V, while 1.1 V is used when the reference clock is 26 MHz.
A VCORE setting of 0.8 V is used in Sleep mode to minimize leakage.

На VBAT подано напряжение но модуль еще не включен поверкеем. Вот что творится внутри.

MCU in ‘standby wait for interrupt’ mode. DSP halted. Clock tree at 32 kHz. Backup battery at 3 V. The entire 26 MHz
generation path shut down. GPIO interrupt controller enabled, keypad enabled. PSEQ, GPIO interrupt control, SMC, keypad
interface, GPIO, and SYS config POCO should be set. VANA in low power mode. VMEM and VIO on in low power. DMA
POCO and AHB disabled. No DC load on GPIO. VSIM on in low power, 3 V. No load on VSIM. VCORE = 0.8 V. Current
consumption of external devices not included.

далее - питание блоков Vio

Supplied by regulators VIO and VMEM
IIH HIGH-level input current −10 — +10 μA
IIL LOW-level input current −10 — +10 μA

VIO is the regulated voltage supply for digital input/output interfaces including the SSI, GPIO, GPSR, DAI, JTAG, keypad, and the debug connector.
VMEM is the regulated voltage supply for external memory connected to the EMC.

Поэтому если через вход в модуль потечет ток более 10 микроампер - считайте что все вышеописаное проснулось и начало жить своей жизнью. В том числе и память. Что с ней там может произойти одному богу известно. Но то что модуль может творить чудеса при таком вот фантомном питании не оставляет сомнений.

С выводом поверкей еще интереснее, там есть блок Power sequencer куда заводится эта ножка, так вот по нему ссылка на отдельный даташит который я пока еще не раздобыл.

Если кому интересно потребление собственно чипсета.

MCU active; 26 MHz clock — 12.25 — mA
MCU active; 156 MHz clock — 35.1 — mA
MCU and DSP active; 26 MHz clock — 15.3 — mA
MCU and DSP active: 156 MHz clock — 56.6 — mA
MCU halted; DSP active 156 MHz clock — 19.2 — mA



>>>Может все-же не следует предлагать пресловутый метод решения №3:"до появления STATUS соединить линию с GND" ?
А то невнимательные пользователи начнут ВСЕ ножки порта садить на землю.

Соглашусь с вами - в этом контексте вы правы.

>>>Кстати, повторюсь, вы можете указать официальный документ Симкома, где есть эти рекомендации?

В документ они не вынесены - на вопрос "почему" китайцы отвечают что будет отдельный апнотес, но его до сих пор нет.
Хотя когда мы у них в гостях изучали модуль и общались с R&D то на этом несколько раз заострили внимание.

Но подобная фраза например есть в документации наших коллег-конкурентов.
Telit_GL868-DUAL_Hardware_User_Guide_r4.pdf

In order to avoid a back powering effect it is recommended to avoid having any HIGH logic level signal applied to the digital pins of the
GL868 when the module is powered OFF or during an ON/OFF transition.

UBLOX - LEON-G100_G200_System_Integration_Manual(GSM.G1-HW-09002).pdf

подобное требование

To avoid an increase in module power consumption, any external signal connected to the UART must be
set low or tri-stated when the module is in power-down mode. If the external signals in the application circuit
connected to the UART cannot be set low or tri-stated, a multi channel digital switch (e.g. TexasInstruments SN74CB3Q16244)
or a single channel analog switch (e.g. Texas Instruments TS5A3159 or Texas Instruments TS5A63157) must be
inserted between the two-circuit connections and set to high impedance when the module is in power-down mode.

и здесь тоже (кстати чипсет из того же семейства PNX4902 или 4905 - не помню точно)

WISMO228_Product_Technical_Specification_and_Customer_Design_Guideline-Rev001.pdf

All external signals must be inactive when the WISMO228 is OFF to avoid any damage when starting
and to allow the WISMO228 to start and stop correctly.


И хотя там и чипсеты и схема другие, но в общем то требования схожи у большинства производителей.
Я же передаю требования к схемотехнике так как нам изложил их SIMCOM и если они по какой-то причине
не вынесли их в документацию, то это не значит что их следует игнорировать.

Если привести к единому решению, то:
держите на линиях третье состояние до появления Vext или STATUS и не будет глюков.
а на выводы поверкей и нресет не жадничайте поставить ключики.
Frolov Kirill
Цитата(CADiLO @ Nov 24 2011, 17:48) *
0.5 или даже 0.1 - не имеет значения
требование четкое - НИКАКОГО напряжения


Не надо глупости. А так можно договориться и до нановольтов.
Ниже какого-то порога уже не имеет значения и этот порог определяется
минимальным напряжением на затворе внутренних транзисторов, ближе
к вольту и больше.

Цитата
Ну а для некоторых контроллеров встречалось - Output Low Voltage = 0.2Vcc
А это уже 0.6 вольта при питании 3.0. Небольшие пульсации и будем иметь искомые 0.7


Речь о работе под нагрузкой. Это максимальное падение напряжения на нижнем или верхнем транзисторе вызванное ненулевым сопротивлением его канала в открытом состоянии. Без нагрузки
будет близко к 0 или VCC.
CADiLO
Ладно - все что хотел я написал выше. Кому охота поспорить по части работы логических элементов, можем перебазироваться в другую тему и в нерабочее время поломать копья. Я не против, если где-то ошибаюсь, подправить свои знания. Здесь же я привел то на чем настаивает производитель,
примеры из реальной работы и свое видение проблемы. Может быть есть моменты в которых я не прав, но в целом решение проблемы большинства глюков заключается в приведенных требованиях и это факт.

cheers.gif
Baser
Цитата(CADiLO @ Nov 25 2011, 12:35) *
Но подобная фраза например есть в документации наших коллег-конкурентов.
...
In order to avoid a back powering effect it is recommended to avoid having any HIGH logic level signal applied to the digital pins of the
GL868 when the module is powered OFF or during an ON/OFF transition.
...
To avoid an increase in module power consumption, any external signal connected to the UART must be
set low or tri-stated when the module is in power-down mode. If the external signals in the application circuit
connected to the UART cannot be set low or tri-stated, .....

Я же передаю требования к схемотехнике так как нам изложил их SIMCOM и если они по какой-то причине
не вынесли их в документацию, то это не значит что их следует игнорировать.

Если привести к единому решению, то:
держите на линиях третье состояние до появления Vext или STATUS и не будет глюков.
а на выводы поверкей и нресет не жадничайте поставить ключики.

Вот! Со всем вышецитируемым я полностью согласен.
Кстати другие как раз не запрещают выходы с "нулем": must be set low

А весь теперешний сыр-бор разгорелся-то только из-за теоретического спора о том, что есть "выходной уровень логического нуля в КМОПовских схемах". Понятное дело, что если у кого-то на выходе ПИКа при логическом нуле появляется 0.3В, то это никуда не годится и так делать нельзя.
Но если там будут честные 50 мВ или меньше, то ничего плохого не случится.
Но чтобы полностью исключить возможные варианты, то нужно ограничиться теми рекомендациями, которые вы привели сейчас beer.gif
GeGeL
Цитата(rx3apf @ Nov 24 2011, 23:43) *
А самое первое - применить вынесенную антенну, чтобы исключить возможное влияние собственной радиочастотной наводки и улучшить согласование. Неприятно, конечно, что ситуация воспроизводится нестабильно - очень противно искать...

Золотые слова, коллега. Чем микровольты считать на ножках, обратите внимание на 2W в пике 900MHz, и прикиньте, что может навестись при резонансе (а волна 8 см, и достаточно кольца диаметром 2.5 см), и что там внутри может от этого защелкнуться. Тем более, если стоят транзисторные ключи - детекторы.
rx3apf
Цитата(CADiLO @ Nov 25 2011, 14:35) *
остается физически подключенной к этому якобы ОК, вместе со своими защитными диодами. Это рассматривалось на прошлогоднем мастерстве по микрочипу и пришли к выводу что если на этом псевдоОК напряжение будет выше питания PIC, то это превышение и пойдет через защитные диоды. Точно так же если PIC будет отключен, то он может запитаться черех них.

Вот, теперь Вы знаете, чем выход с открытым стоком или коллектором принципиально отличается от пушпульной пары. Диодом на Vcc, а вовсе не утечкой через закрытый канал...
Цитата
Поэтому если через вход в модуль потечет ток более 10 микроампер - считайте что все вышеописаное проснулось и начало жить своей жизнью. В том числе и память. Что с ней там может произойти одному богу известно. Но то что модуль может творить чудеса при таком вот фантомном питании не оставляет сомнений.

А 10 uA через закрытый канал вообще невозможно, даже если бы нижнего (открытого !) транзистора вообще бы не было.
Цитата
In order to avoid a back powering effect it is recommended to avoid having any HIGH logic level signal applied to the digital pins of the
GL868 when the module is powered OFF or during an ON/OFF transition.

т.е. черным по белому - никакого ВЫСОКОГО уровня на вход. Т.е. низкий - можно.
Цитата
подобное требование

To avoid an increase in module power consumption, any external signal connected to the UART must be
set low or tri-stated when the module is in power-down mode.

Опять же - НИЗКИЙ или третее состояние. Низкий - можно.
О чем и было говорено. А если на выходе контроллера, подключенного в ВХОДУ модуля, при лог.0 аж 0.3V - это уже повод разбираться, что там накосячили. Ибо такого просто физически быть не может, если не влепили подтяжку на несколько mA. Или, скажем, два выходе слепили вместе и играют в кто-кого-перетянет...

Я вообще не понимаю, как можно давать хоть какие-то рекомендации, отсылать к даташитам и что-то требовать от потребителя при столь ужасающем непонимании основ. Разработчику это вообще непростительно, но и консультанту - неприлично. Дискредитирует...
Harbinger
Вообще-то далеко не факт, что GPIO модуля в процессе старта программы не становятся на какое-то время выходами (пусть из-за ошибки в фирмваре даже) - и в этом случае сажать ни на землю, ни на плюс их никак нельзя. Это уже нужно низкий уровень их фирмваре копать... Во избежание, решили просто держать всё подключенное к модулю в Z-состоянии до подъёма статуса - типа лучше перебдеть, чем недобдеть.
rx3apf
Цитата(Harbinger @ Nov 25 2011, 23:22) *
Вообще-то далеко не факт, что GPIO модуля в процессе старта программы не становятся на какое-то время выходами (пусть из-за ошибки в фирмваре даже) - и в этом случае сажать ни на землю, ни на плюс их никак нельзя. Это уже нужно низкий уровень их фирмваре копать... Во избежание, решили просто держать всё подключенное к модулю в Z-состоянии до подъёма статуса - типа лучше перебдеть, чем недобдеть.

По GPIO можно только догадываться. UART, полагаю, всегда однонаправленный. Ну, у меня резисторное согласование, так что я спокоен. У топикстартера, кстати, тоже...
SergOv
Цитата(rx3apf @ Nov 24 2011, 22:43) *
Я же говорил о совершенно однозначном равенстве (в данном случае) пункта 3 и логического "0" на выходе CMOSовского драйвера (это вообще азы, не знать и не понимать этого просто неприлично, а спорить с очевидностью - глупо).

Я бы так категорично не выражался.
Во всяком случае, именно некоторой неоднозначности упомянутого равенства, замеченной, должен признать, совершенно случайно, мы обязаны одному из схемных решений, весьма сильно упрощающих и удешевляющих конструкцию.
До упомянутого случая я и сам, в полном соответствии с теорией, был уверен, в "однозначности равенства". Но, как показала практика, китайская схемотехника несколько отличается от теоретической. )))))))
GeGeL
"0" на выходе CMOSовского драйвера - это, по идее, открытый канал (с достаточно низким сопротивлением) на GND. Мне тоже интересно стало: а в чем же все таки отличие?
Вот уже 10 мин думаю - так и не надумаю...
Хоть намекните, а то только раззадорили такой недокументированной фичей китайского инженеринга sm.gif
Aner
Наверное надо вводить понятие "китайский ноль".
Предположу, что с бронаут детектором в заказном чипе у них проблема и возникает тирристорный эффект, являясь причиной зависания. Лет ... -цать назад, например микрочип поборолся с этой проблемой частично.
SergOv
Цитата(GeGeL @ Nov 26 2011, 18:21) *
"0" на выходе CMOSовского драйвера - это, по идее, открытый канал (с достаточно низким сопротивлением) на GND. Мне тоже интересно стало: а в чем же все таки отличие?
Вот уже 10 мин думаю - так и не надумаю...
Хоть намекните, а то только раззадорили такой недокументированной фичей китайского инженеринга sm.gif

Вот именно "с достаточно низким".
И как зависит низкость этого сопротивления от тока через вывод и внешнего приложенного напряжения - большой вопрос.
Во всяком случае, наличие этого открытого канала на аудио выходе китайских модулей в корне меняет их характеристики.
rx3apf
Цитата(SergOv @ Nov 27 2011, 01:04) *
Вот именно "с достаточно низким".
И как зависит низкость этого сопротивления от тока через вывод и внешнего приложенного напряжения - большой вопрос.
Во всяком случае, наличие этого открытого канала на аудио выходе китайских модулей в корне меняет их характеристики.

Это Вас уже куда-то не туда понесло. Аудио, аналоговые сигналы - это отдельный вопрос. А открытый канал полевого коммутатора там уже идеальным никак нельзя считать, там нелинейности в полный рост. Речь же шла о пушпульной паре с соотношением сопротивлений более шести порядков, работающей на CMOSовый же вход (т.е. по постоянке без нагрузки).
SergOv
Цитата(rx3apf @ Nov 27 2011, 11:12) *
Это Вас уже куда-то не туда понесло. Аудио, аналоговые сигналы - это отдельный вопрос. А открытый канал полевого коммутатора там уже идеальным никак нельзя считать, там нелинейности в полный рост. Речь же шла о пушпульной паре с соотношением сопротивлений более шести порядков, работающей на CMOSовый же вход (т.е. по постоянке без нагрузки).

Речь шла именно о замыкании на землю с помощью выхода процессора.
... впрочем, этот пример я привел не с целью убедить общественность в правоте кого либо.
Исключительно с целью напоминания о том, что неожиданности случаются вне зависимости от категоричности убеждений.
))))))))
rx3apf
Цитата(SergOv @ Nov 27 2011, 13:50) *
Речь шла именно о замыкании на землю с помощью выхода процессора.

Т.е. этакий суррогатный вариант mute ? Но ток-то какой ?
SergOv
Цитата(rx3apf @ Nov 27 2011, 12:14) *
Т.е. этакий суррогатный вариант mute ? Но ток-то какой ?

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