реклама на сайте
подробности

 
 
> SIM900. NRESET - обманули!, Модуль не сбрасывается по выводу NRESET
Dmitrich
сообщение Mar 3 2011, 14:02
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 15-02-05
Пользователь №: 2 663



ПРЕ - АМБУЛА: В некоем устройстве применён модуль СИМ900. В схеме НЕТ ключа по питанию модуля.

Через пару месяцев после начала эксплуатации (примерно 150 устройств), наступила

АМ - БУЛА: Стали поступать сообщения о зависаниях, которые "лечились" только снятием питания.

Наконец, я "поймал" такой случай. Сейчас устройство лежит у меня на столе.

Состояние модуля такое:

- Питание: 3.92V.
- NRESET - присутствует напряжение 2.8
- POWERKEY - 0
- STATUS - 0
- DTR - 2.8V + короткие (6мкс) импульсы низкого уровня раз в секунду
- CTS - 2.8V + импульсы 180мс раз в секунду
- TXD - раз в секунду на скорости 460800 выдаёт строчку: 0x78 0x80 0xF8 0x78 0x80 0xF8 0x78 0x80 0xF8 0x78 0x80 0xF8 0x49 0x49 0x49 0x49

Если подать на NRESET ноль, то всякая активность на перечисленных выводах прекращается, при отпускании NRESET - восстанавливается.

Люди добрые, посоветуйте - как привести модуль в "чувство", воздействуя на него через перечисленные выводы? help.gif Снять питание - нету аппаратной возможности.

Ефанов Сергей.

Go to the top of the page
 
+Quote Post
12 страниц V  « < 9 10 11 12 >  
Start new topic
Ответов (150 - 164)
Alt.F4
сообщение Feb 1 2012, 16:54
Сообщение #151


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



SKov, да да, хотел, чтобы до включения МК модем был включен, а вот про паразитную запитку не подумал.
Правда уже не актуально, необходимость в этом отпала.
Спасибо.
Go to the top of the page
 
+Quote Post
Maratt
сообщение Sep 16 2012, 11:21
Сообщение #152


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Прочитал тему. Действительно это одна из самых острых проблем модема.
Спасибо тем кто помог ее решить.
Выношу на суд специалистов схему с контроллером, который будет присматривать за модемом.
Сразу оговорюсь - в GPRS работа не планируется, в серию не пойдет (для себя, для друзей)
В программировании контроллеров ноль, буду просить кого нибудь.
А сейчас хотелось узнать мнение об оптимальном алгоритме работы контроллера (временные интервалы и тд).

АЛГОРИТМ
При включении питания устанавливает на первом выходе (управление питанием модуля) логическую единицу и не реагирует на состояние входов 60 секунд (переходные процессы, регистрация в сети).На втором выходе (сигнализация) – логический ноль.

По окончанию этого времени контролирует состояние двух входов:
1. STATUS - логическая единица (модем готов к работе)
Если отсутствует сигнал STATUS, завис или не включился модем.
2. NETLIGHT – импульсы положительной полярности длительностью 64 mS и периодом 3000 mS.
Если период импульсов меньше (например 800 mS), модем по какой то причине не смог зарегистрироваться в сети. Если импульсов нет – авария или зависание модема.

При отсутствии лог единицы на входе STATUS, или несовпадении частоты на входе NETLIGHT, переводит первый выход в ноль (выключает питание модуля) на 60 секунд. Подает сигнал тревоги в течении 30 секунд.
Затем переводит первый выход в единицу (включает питание модуля) и далее по кругу.

На рисунке - алгоритм в графике.
С уважением.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Sep 16 2012, 19:43
Сообщение #153


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Посмотрите мое решение на http://gegelsoft.ru/files.php?dir=files
Скачайте то, что касается таймеров.
В принципе, очень близко к вашему заданию, за исключением интервала времени - максимально допустимый промежуток между импульсами у меня 2.3 сек (по периоду WDT пика, а с запасом будет 2 сек макс.) - у меня импульсы "жизни" с периодом 100 мс генерируются OCPU-кодом. Но можно просто добавить задержку и дотянуть до периода на NetLight.
Там того кода надо кот наплакал, могу даже сырцы бросить.
Go to the top of the page
 
+Quote Post
Maratt
сообщение Sep 17 2012, 12:04
Сообщение #154


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Спасибо за помощь и предоставленную информацию. К сожалению, я практик, моих познаний в программировании хватает только для того чтобы прошить контроллер в программаторе. Как говорится : есть желание но нет возможности. А учиться уже поздно. К модему прикручиваю уже готовые схемы на контроллерах выложенные в Сети. С SIM300DZ пытаюсь перейти на SIM900R и хочу на плате поставить «смотрящего за модемом». Должно получиться автономное самодостаточное устройство.
С Вашего сайта обязательно скачаю все что сможет мне помочь.
С уважением.
Go to the top of the page
 
+Quote Post
Maratt
сообщение Sep 17 2012, 16:30
Сообщение #155


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Спасибо GeGeL. Прочитал описание Вашего антизависателя. Все великое просто. Сигнал STATUS в модеме можно и не контролировать. Достаточно следить за сигналом NETLIGHT. И контроллер меняем на PIC10F200 (дешевле и есть в продаже). Изменить нужно только временные интервалы применительно к SIM900.
Алгоритм работы – есть в tmr1 (должно быть SIM900)

Включение
1п. отключает питание на 3 секунды (должно быть на 60 сек)
2п. включает питание лог 0 на выводе 4 (меняется на единицу в прошивке)
3п. через 7 сек контролирует вывод CLK – меандр 50 мсек (должно быть через 60 сек, меандр 3000 мсек)
4п. при отсутствии меандра в течении 2 сек переходит к пункту 1 ( должно быть – при отсутствии меандра в течении 30 сек переходит к пункту 1)

Вопрос. Контроллеру ведь все равно что меандр, что импульсы длительностью 64 мсек на входе? У Вас 50 мсек это период или длительность сигнала?
Вход DATA если не используется сажаем куда – земля, питание, оставляем в воздухе?
Нескромный вопрос. А не могли бы Вы переделать программу. Если нет, выложите пожалуйста исходник.
Со своей стороны беру на себя тестирование и обновление схемы.
С уважением.
P.S.
Нашел. Неиспользуемые вывода сажаем на землю.

Сообщение отредактировал Maratt - Sep 17 2012, 16:58
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Sep 17 2012, 17:59
Сообщение #156


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Цитата(Maratt @ Sep 17 2012, 19:30) *
Спасибо GeGeL. Прочитал описание Вашего антизависателя. Все
Вопрос. Контроллеру ведь все равно что меандр, что импульсы длительностью 64 мсек на входе? У Вас 50 мсек это период или длительность сигнала?

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

В даной реализации все равно. 50 мс - это длительность (полупериод), период 100 мс.
Переделать можно, но учитывая вашу задачу, скорее всего нет смысла использовать WDT, как в даном вотчдоге. Если нет особой срочности, переделаю под настроение (уберу команды и тамер и скорректирую интервалы). Только уточните один момент - в первом посте речь шла о перезапуске при длительной регистрации в сети (т.е. без регистрации). Это нужно? Какой там период на NetLight? Через какое время отсутствия регистрации перезапускать?
И еще - а зачем, если не секрет, тушить на 60 сек, а не на 3? По моему, без разницы, сколько модуль пробудет отключенным.
Исходник прилепил - это не тот код, который стоит секретить. Он с коментами, правда, англ. (влом язык переключать)...
Если сами не справитесь с интервалами, помогу при возможности.

Сообщение отредактировал GeGeL - Sep 17 2012, 18:18
Прикрепленные файлы
Прикрепленный файл  10Fgps11.rar ( 3.63 килобайт ) Кол-во скачиваний: 98
 
Go to the top of the page
 
+Quote Post
Maratt
сообщение Sep 17 2012, 18:00
Сообщение #157


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



C PIC10F200 будет выглядеть так.
Остались интервалы. А вообще мой алгоритм для SIM900 правильный?
Поправте если что не так.
С уважением.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Maratt
сообщение Sep 18 2012, 17:03
Сообщение #158


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



У меня собран модем на SIM900R. Время регистрации в сети у него от почти мгновенно до 10 –15 секунд. Это в лабораторных условиях, в центре города, на столе. Как будет вести себя на периферии, пока не знаю.
Период на NetLight :
800 мсек при поиске сети
3000 мсек если регистрация прошла успешно
Длительность импульсов в обоих случаях 64 мсек.
ИМХО перезапускать модем нужно через 20 -30 секунд, если он за это время не смог зарегистрироваться в сети.
В схеме модема стоит цепочка автовключения – это элементы R1, C1, VD1, VD2. Она создает импульс логического нуля длительностью 2 -3 сек на контакте PWRKEY при подаче питания на модем. Этим импульсом модем включается.
При выключении питания емкости модема разряжаются гораздо медленнее. Да и по опыту звонков по телефону, когда робот отвечает «абонент недоступен, позвоните попозже», хотя телефон абонента лежит рядом, нужно немного подождать. Поэтому выключать ИМХО, нужно на одну минуту.
Сделать бы временные интервалы изменяемыми.
Тема «Модуль не сбрасывается по выводу NRESET» интересна но у нее нет завершения. Нет алгоритма.
С уважением.
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Sep 18 2012, 18:18
Сообщение #159


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Понятно. Так может лучше сделать включение на пике, раз он уже будет стоять в качестве вотчдога?
Как раз две ноги свободные - 6 на STATUS (in) для контроля включения, 4 на POWERKEY (out) собственно для включения. Чуть прошивку доделать - и не надо RC-цепочку и прочую требедень...

От скуки для разминки мозгов нацарапал код под вашу задачу:
; Notes: Pinout
; pin 1 (gpio 0) Power Control (out) 1-active
; pin 3 (gpio 1) POWERKEY (out) 1-active, 0-work (transistor used)
; pin 4 (gpio 2) NETLIGHT (in) 3000ms register, 800 ms serch
; pin 6 (gpio 3) STATUS (in) 1-work

Логика:

рестарт модуля:
- отключаем питание на 3 с
- включаем питание, паверкей неактивен - на 1 с
- активируем паверкей - на 1 с
- проверяем статус, если не вкл, то повторяем рестарт
- отпускаем поверкей, ждем 1 с
- снова проверяем статус, если не вкл, то повторяем рестарт

работа модуля:
- если в течение 30 сек состяние нетлайт не меняется, делаем рестарт
- если в течение 30 сек длительности 0 на нетлайт постоянно меньше 1200 мс. то идем на рестарт

asm-исходник и hex-прошивка в аттаче. В работе не проверял, но код простой и с коментами, если что - легко поправить.


Сообщение отредактировал GeGeL - Sep 19 2012, 10:06
Прикрепленные файлы
Прикрепленный файл  10Fsim.rar ( 2.13 килобайт ) Кол-во скачиваний: 90
 
Go to the top of the page
 
+Quote Post
Maratt
сообщение Oct 15 2012, 14:41
Сообщение #160


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Уважаемый GeGeL. Протестировал Вашу программу на мекетке см. схему. Контроллер в PDIP корпусе. В качестве сигнала NETLIGHT – генератор Г5 - 75, вместо сигнала STATUS цепочка R2, S1.
Включаем питание схемы.
При разомкнутом S1 ( сигнал STATUS в норме), на выводах контроллера 4 и 5 импульсы, см. рисунок.
При замыкании S1 (отсутствие сигнала STATUS), светодиоды гаснут и тишина… Хотя ни чего не должно меняться по логике.
На вывод 3 подавал импульсы с периодом от 100 до 3000 мсек. Реакции нет.
Я что - то неправильно делаю?
С уважением.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Oct 15 2012, 15:56
Сообщение #161


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Я код не тестировал, но там его - кот наплакал (исходник вложен в архив).
То, что Вы описали, верно для уровня 0 на STATUS (вот соответствующий фрагмент кода из исходника):

;***** PIN DEFINITIONS
pstat EQU 3

start:
;CODE ..... Тут отрабатываем старт

btfss GPIO, pstat ;test STATUS
goto start ;repeat if not started Повторяем, если на входе STATUS - 0


Если у Вас такое происходит при 1 на входе GP3, а при 0 - все мертво, то могу предположить, что программатор использовал свою конфигурацию (а не из HEX-файла) и установил вывод GP3 в режим MCLR.
В прошивке задано так:
__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_ON

PS: Также попробуйте отключить WDT, тут уже я мог где-то недосмотреть в коде цикл без clrwdt

Сообщение отредактировал GeGeL - Oct 15 2012, 15:59
Go to the top of the page
 
+Quote Post
Maratt
сообщение Oct 15 2012, 17:48
Сообщение #162


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Спасибо GeGeL. У меня все на работе. Завтра проверю конфигурацию, отпишусь.
С уважением.
Go to the top of the page
 
+Quote Post
Maratt
сообщение Nov 27 2012, 15:59
Сообщение #163


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Уважаемый GeGeL, челом бью, помогите.
Купил новые микросхемы, заменил программатор, упростил схему для тестирования, см. рисунок.
Результат.
Подаем питание на схему.
(S1 и S2 разомкнуты)
Включается питание модема, следом идет секундный импульс PWRKEY.

Питание остается включенным постоянно (единица на выходе GP0), хотя на вход GP2 импульсы не поступают (вывод притягивал и к питанию и к земле).

Если до подачи питания на схему замкнуть S2 (отсутствие сигнала STATUS), то схема ведет себя нормально : (постоянно перезагружает модем).
Но в процессе работы когда STATUS в норме, питание модема включилось, не реагирует на замыкание S2 (пропадание сигнала STATUS).
Если подавать импульсы на вход GP2 (кратковременно замыкать S2) с периодом менее 1200 ms, то схема через несколько секунд перезагружает модем, что тоже нормально.

Подправить исходник возможности нет.
Может доведем схему до ума?

С уважением.


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Dec 2 2012, 10:18
Сообщение #164


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Сорри за задержку, только приехал. Вечером посмотрю. Сразу могу сказать, что контроль состояния STATUS ( перезапуск модема при появлении 0 во время работы) я не предусматривал в виду малой вероятности этого: если модуль виснет, то как правило, статус остается в 1. Но можно исправить.

А вот то, что модем не перезапускается при отсутствии изменений NETLIGHT - это неверно. Посмотрю, возможно, ошибка в коде. Просьба еще раз перепроверить: подключить линии STATUS и POWERKEY от пика к модулю, а линию NETLIGHT не подулючать. Модем должен периодически перезапускаться не зависимо от того, замкнут или разомкнут будет S1.

---------

Еще раз просмотрел свой код: вроде все верно. Проверьте следующее:

1. S1 - не важно как, S2 - замкнут (т.е. STATUS=0: модуль не включился). После старта выход управления питанием должно постоянно перезапускаться с интервалом в 5 сек.

2. S1 - не важно как (но не меняется), S2 - разомкнут. После старта выход должен установиться в положение вкл., затем раз в 30 сек перезапускаться.

3. S1 - переключаем постоянно быстро (период "туда-сюда" не более 1.5 сек), S2-разомкнут. После старта выход должен установиться в положение вкл., затем перезапуститься через 38 переключений туда-сюда. Т.к. предполагается, что переключения будут по 800 мс (поиск сети согласно даташиту), то это составит 30 сек. Если клацать быстрее (плюс дребезг контактов), то тогда раньше.

4. S1 - переключаем медленно ("туда-сюда" не чаще, чем раз в 1.5 сек и не реже чем раз в 30 сек), S2-разомкнут. После старта выход должен установиться в положение вкл. и удерживаться в нем бесконечно долго. Опять же, не забывайте про дребезг контактов, зашунтируйте S1 конденсатором!

Может, по п.2 Вы просто не дождались перезапуска или проглядели?

Сообщение отредактировал GeGeL - Dec 2 2012, 20:08
Go to the top of the page
 
+Quote Post
Maratt
сообщение Dec 4 2012, 06:34
Сообщение #165


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 13-04-12
Из: Уфа
Пользователь №: 71 346



Уважаемый GeGeL.
Проверил работу схемы по Вашим пекомендациям.
Пункт 1 - соответствует.
По пункту 2, 3, 4 результат можно обьединить:
Схема перезапускается не зависимо от периода следования импульсов.
Пробовал периоды 0,5 сек, 2 сек, 5 сек, 10 сек, в любом из этих случаев схема перезапускается через 38 импульсов.
Получился счетчик импульсов до 38 без ограничения по времени.
А вот если импульсы не подавать, перезагрузки не происходит.

С уважением.
Go to the top of the page
 
+Quote Post

12 страниц V  « < 9 10 11 12 >
Reply to this topicStart new topic
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01508 секунд с 7
ELECTRONIX ©2004-2016