Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 19.09.2012, 02:53  
andrey9806
Временная регистрация
 
Регистрация: 08.02.2011
Сообщений: 74
Сказал спасибо: 8
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
andrey9806 на пути к лучшему
По умолчанию Re: Cброс контролера

Сообщение от Yurkin2007 Посмотреть сообщение
Разрази меня гром, если я что-либо понял.
Ну, да ладно. А какова роль элементов U2:A и U2:C ?
И в каком месте схемы образуются эти пресловутые 10 секунд ?
вместе триггер шмидта с rc образуют задержку около 0.1 сек для реакции мк на нажатие кнопки, чтобы до ответа мк его не успевало бы сбрасывать
10 секунд генерирует мк на схеме функция основной мк(если завис то зачем ждать 10с до сброса) для наглядности замена на R2 C2 U2:C цепочку. о чем указано в посте со схемой
переключение выхода в противофазе не сбросит мк а при только высоком или низком сброс гарантирован
Реклама:
andrey9806 вне форума  
Непрочитано 19.09.2012, 03:04  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Cброс контролера

Вам бы побольше использовать знаков препинания в текстах - было бы понятнее.
Ну, знать-так, хочу поправиться. На выходе висит единичка. Если микропроцессор не отследит изменение состояния кнопки и не проинвертирует , значит - завис. Если завис, то на выходе "Исключающего-ИЛИ" через 10мс после нажатия кнопки появится нолик, и при отпускании кнопки этот нолик пройдёт на выход для ресета.
Если не завис, то будет мк будет успевать инвертировать, и нолика на выходе XOR не будет ...

Последний раз редактировалось Yurkin2007; 19.09.2012 в 03:07.
Yurkin2007 вне форума  
Непрочитано 19.09.2012, 04:54  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Cброс контролера

Сообщение от andrey9806 Посмотреть сообщение
а так кнопку зажал и отключил
Еще не придумано более надежного выключния питания, чем физичекое отсоединение питания от схемы. Вероятность выключения 102%.
Вообще, грамотное написание кода контроллера питания, с проверкой валидности значений и продуманными точками очистки WDT помогут в разработке надежного устройства.
В случае снижения напряения питания ниже минимального значения контроллер и так не сможет работать, тут никакой внешний сброс не заставит его работать до тех пор, пока питание не восстановится.
Да и как ты определишь, что схема именно зависла? Может, она работает в штатном режиме, просто код неправильный.
На телефонах это не функция сброса, а именно выключения питания с переводом в sleep. И, ксати, лично я не раз встречал такое зависание на мобилке, что даже удержанием кнопки питания его не выключить.
Алекс Василич вне форума  
Непрочитано 19.09.2012, 05:53  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Cброс контролера

Сообщение от andrey9806 Посмотреть сообщение
всем спасибо!
схема разработана!
все получилось просто
Хм.. Я либо баран, либо ниче не понял.
КАК, как и куда по этой схеме контроллер должен ответить? И что это вообще за народное творчество. Где тут выход на "железный" reset то? Если нет "железного" ресета, то вся схема завязана на прграммную часть и, опять же, ненадежна.
А в контроллере при сбросе по переполнению wdt есть возможность определить причину сброса, чтобы не зависнуть вторично. Для этого в программе в самом начале проверяются флаги причины сброса и выполняются некоторые процедуры.
Например, после BOR можно запросить значение текущего напряжения питания, и если оно приблизилось к минимально допустимому, выдать команду на выключение всех внешних устройств; после отключения внешних устройств еще раз проверить питание, если оно восстановилось до нормального, значит, была превышена нагрузка по питанию, опросить внешние устройства на предмет исправности, изменить параметры в сторону уменьшения нагрузки; если питание не восстановилось, а лишь немного увеличилось, значит батарея села и пора переходить в sleep; возможно, еще выдать индикацию разрядки батареи.
Если обнаружен сброс от WDT, то, например, перейти на подпрограмму опроса внешних устройств на предмет валидности принимаемых данных и обнаружения внештатной работы внешних устройств.
Если же произошел POR (Power-On-Reset), то это штатное включение, по нему произвести штатный запуск контроллера.
Бывают и другие виды сброса, различаемые контроллерами. И по каждому из них можно предусмотреть выполнение каких-либо действий, направленных на устранение причины сброса.
Короче, все в твоих руках.
Ну а если вручную, то защиты лучше железного выключателя питания еще не придумано.Даже на компе он стоит, на блоке питания.
Сообщение от Yurkin2007 Посмотреть сообщение
А почему бы в пункте 16 просто не поставить возврат на пункт 1?
А просто для того, чтобы затем произошел запуск с нулевого адреса. Хотя, можно просто поставить goto 0x000.

Сообщение от Alex9797 Посмотреть сообщение
Оставляю FF до конца памяти.
Вообщето 0xFFF не является штатной. Штатная - 0х000 - No Operation

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

Последний раз редактировалось Алекс Василич; 19.09.2012 в 07:13.
Алекс Василич вне форума  
Непрочитано 19.09.2012, 08:35  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Cброс контролера

Кстати. Вот простейший надежный контроллер включения-выключения питания исполнительных устройств. Микросхема контроллера может быть любая, по потребностям в алгоритме включения. Код не писал по причине его примитивности и понятности.
В начальном состоянии после поднятия уровня на /MCLR происходит запуск контроллера. Управляющий порт GP2 настроен на вход, контакт подтянут к земле, поэтому питание исполнительных устройств выключено. Затем, в процессе нормальной работы контроллера ожидается нажатие кнопки POWER ON и на выход подается высокий уровень, включая исполнительные устройства. Выключение происходит по нажатию кнопки POWER OFF, независимо от состояния контроллера, работоспособности его осциллятора, напряжения питания или зависания кода. Конденсатор C1 предохнаняет от выключения исполнительных устройств при помехах, а так же при зависании контроллера и сбросе по WDT или BOR. Программно определяется причина сброса и восстанавливается включенное состояние исполнительных устройств, если сброс был ошибочным.
Резистор R4 - задержка сброса от кнопки.
В коде можно предусмотреть проверку велицины напряжения питания при запуске контроллера (то, о чем я писал ранее).
Миниатюры:
Нажмите на изображение для увеличения
Название: 222.gif
Просмотров: 51
Размер:	7.9 Кб
ID:	38741  

Последний раз редактировалось Алекс Василич; 19.09.2012 в 08:51.
Алекс Василич вне форума  
Непрочитано 19.09.2012, 12:06  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Cброс контролера

Сообщение от Алекс Василич Посмотреть сообщение
Вот простейший надежный контроллер включения-выключения питания
Тоже хорошая схема.
Но дело в том, что ТС хочет использовать одну кнопку в трёх ипостасях: как обычную кнопку для управления чем-нибудь кратковременными нажатиями, как кнопку выключения системы при удержании более 10 сек, и как кнопку сброса системы при зависании процессора ...
Yurkin2007 вне форума  
Непрочитано 19.09.2012, 13:11  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,053
Сказал спасибо: 3,042
Сказали Спасибо 3,212 раз(а) в 2,182 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Cброс контролера

Сообщение от andrey9806 Посмотреть сообщение
а на логике 2-3 корпуса(генератор счетчик логика) so14-16 для портативного устройства очень много по размеру одновибратор тоже объёмный из-за конденсаторов и so8 корпуса
Тут уж выбирайте, что приоритетно - габарит или "железная надёжность". Как говорится: "Выбирай - но осторожно, осторожно - но выбирай". По ссылке - 14 разрядный счётчик с элементами генератора. Кнопку - в цепь MR (нажали - счётчик сброшен, генератор заработал, с резистором в 100 кОм пойдёт конденсатор примерно на 0.01 мкФ), выход крайнего триггера - сброс системы. Или, как отметили выше, поискать готовый сторожевой таймер с достаточной выдержкой.
С другой стороны, если укажете, что за система (с т.з. генерации помех и подверженности им), то может-быть вполне достаточно будет стандартных методов (BOD, WDT, "заглушки" на неиспользумых прерываниях и т.п.)
ForcePoint вне форума  
Непрочитано 20.09.2012, 00:07  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Cброс контролера

Сообщение от Yurkin2007 Посмотреть сообщение
Тоже хорошая схема.
Но дело в том, что ТС хочет использовать одну кнопку в трёх ипостасях: как обычную кнопку для управления чем-нибудь кратковременными нажатиями, как кнопку выключения системы при удержании более 10 сек, и как кнопку сброса системы при зависании процессора ...
Да не вопрос! Эх, чего только не сделаешь, чтобы топикстартер был доволен
Вот, та же самая схема, только добавлена еще одна линия -инверсный /Hard_Power_Down - принудительное выключение при удержании кнопки выключения. Срабатывает после сброса по wdt - определяется флаг /TO и по нему выдается низкий уровень на линию /Hard_Power_Down.
На этом контроллере время удержания кнопки - не менее 2-3 секунд.
Однако, надежность выключения при такой схеме ниже, поскольку при остановке осциллятора будет удерживаться высокий уровень на /Hard_Power_Down.
На этот случай имеются контроллеры с аварийным осциллятором.

Линия Power ON/OFF выдает команду на включение и выключение исполнительных устройств. Причем, выключение может быть не "жестким", а посылом команды контроллеру исполнительного устройства для его самовыключения. Контроллер питания через отдельный вывод (на этой схеме не реализовано, нужны еще порты свободные) отслеживает момент завершения выключения, и если исполнительное устройство зависло и не выключилось, может его принудительно выключить по линии /Hard_Power_Down.

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

Код:
PHP код:

PIC_Initial
:
    
movlw 0x01
    movwf GPIO    
    movlw 0x0C
    movwf ADCON0
    movlw 
b'11010111'
    
OPTION
    movlw 
b'11111010'
    
TRIS 6
;====================================
Work:
    
btfss STATUSNOT_TO
    
goto Hard_Power_Down
    bsf GPIO
Line_Hard_Pow_Down
    movf GPIO
F
    btfss GPIO
Butt_Pow_On
    bsf GPIO
2
    clrwdt
    
goto Work
Hard_Power_Down
:
    
bcf GPIO0
    clrwdt
    
goto Hard_Power_Down
;====================================
    
end 
Миниатюры:
Нажмите на изображение для увеличения
Название: Conr_POW_OFF_v02.gif
Просмотров: 33
Размер:	10.6 Кб
ID:	38761  

Последний раз редактировалось Алекс Василич; 20.09.2012 в 00:21.
Алекс Василич вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стоимость разработки программы для контролера i button dallas на pic12f683. EagleStars Делимся опытом 0 30.06.2011 16:25
Соединить 2 контролера по WiFi 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 47 08.06.2010 16:04


Часовой пояс GMT +4, время: 02:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot