#1 2017-09-11 10:37:40

alex_dol
Участник
Зарегистрирован: 2015-12-28
Сообщений: 164

Подскажите как реализовать ресет по длинному нажатию кнопки

Имеем обычную тактовую кнопку сидящую на земле и подтянутую к плюсу. Висит она на одном из входов проца и выполняет свои задачи.
Возникла необходимость дополнительно навесить на нее функцию ресета проца - апаратно подавать 0 на вход Reset проца, при длительном удержании кнопки (>10 сек).
Кроме как добавить в схему резистор, конденсатор и транзистор ничего интересного в голову не приходит. Размеры устройства маленькие, раздувать схему не хочется. Может кто подскажет более изящное решение.
Ресет нужен именно апаратный. Питание проца 2.8 В. Проц атмега 328.

#2 2017-09-11 11:38:10

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 310

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Не знаю ни одного случая когда нужен бы был именно аппаратный сброс! В чём уникальность Вашей ситуации?

#3 2017-09-11 12:01:18

alex_dol
Участник
Зарегистрирован: 2015-12-28
Сообщений: 164

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Перестраховка.
Устройство работает от встроенного акума. Расчетная автономность до подзарядки - несколько месяцев. От него же питается GSM модуль, который в пике жрет до 2А и делает неплохие выбросы по питанию. Акум не отключается. Никакого внешнего доступа, кроме упомянутой кнопки нет. Есть надежда, что BOD и watchdog спасут, но хочется иметь запасной вариант. Может аппаратный ресет будет и лишним.

#4 2017-09-11 12:11:03

NoName
Customer
Из Київ
Зарегистрирован: 2014-07-08
Сообщений: 1,269

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Green  например зависла програма )

alex_dol - ищете watchdog  на 10 секунд сброс уровнем , при нажатой кнопке отсекаете его от  MCU.   в корпусе SOT23-5 как обычно

#5 2017-09-11 12:21:03

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 310

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Зависла программа. И как тут поможет сброс собой самого себя?
И чем собственный watchdog хуже внешнего?

#6 2017-09-11 12:48:14

NoName
Customer
Из Київ
Зарегистрирован: 2014-07-08
Сообщений: 1,269

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Green когда падает тактовая MCU, внешний  как обычно работает. мне удавалось загонять систему внешним воздейсвием, что б не сработал внутренный WDT. повторяемость проблемы  слабая,  ибо задолбался менять контроллеры, но возможна.  внешний WDT  + супервизор в одном корпусе рулит. правда использовал только на 1.5 сек от TI.  10 сек не встречал.

#7 2017-09-11 13:01:24

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 310

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Не, ну внешний - это железно. Но и внутренний нужно очень постараться что бы сломать.)

#8 2017-09-11 14:37:31

alex_dol
Участник
Зарегистрирован: 2015-12-28
Сообщений: 164

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

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

Кстати вы не использовали внутренние подтягивающие резисторы атмеги для подтяжки I2C? Интересует надежность, скорость общения маленькая, шина короткая.

#9 2017-09-11 15:33:00

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 310

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Да, использовал, работает. Правда I2C софтовый, 100 кгц не более.

#10 2017-09-11 15:47:12

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 310

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Если у кнопки простейшие функции, типа старт/стоп, то можно её на reset и пустить.

#11 2017-09-11 16:06:53

alex_dol
Участник
Зарегистрирован: 2015-12-28
Сообщений: 164

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Кнопка выполняет роль прерывания, когда надо разбудить не по графику, кроме этого она задействована в синхронизации с сервером.

#12 2017-09-11 16:31:32

NoName
Customer
Из Київ
Зарегистрирован: 2014-07-08
Сообщений: 1,269

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Watchdog Timeout Option D 10 15 sec
Watchdog Timeout Option E 60 90 sec
http://www.analog.com/media/en/technical-documentation/data-sheets/ADM8323_8324.pdf

#13 2017-09-12 08:35:12

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 310

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Запараллелив кнопку с DTR можно убить сразу 3-х зайцев. И сброс будет отрабатываться, и короткие/длинные нажатия можно будет определять.

#14 2017-09-12 10:42:28

Вячеслав Азаров
Участник
Из Запорожье
Зарегистрирован: 2017-05-25
Сообщений: 570

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

alex_dol пишет:

Имеем обычную тактовую кнопку сидящую на земле и подтянутую к плюсу. Висит она на одном из входов проца и выполняет свои задачи.
Возникла необходимость дополнительно навесить на нее функцию ресета проца - апаратно подавать 0 на вход Reset проца, при длительном удержании кнопки (>10 сек).
Кроме как добавить в схему резистор, конденсатор и транзистор ничего интересного в голову не приходит. Размеры устройства маленькие, раздувать схему не хочется. Может кто подскажет более изящное решение.
Ресет нужен именно апаратный. Питание проца 2.8 В. Проц атмега 328.

Добавьте КМОП триггер шмидта, резистор (желательно с диодом, для ассиметричости задержки) и конденсатор и будет работать, что надо. Проще, думаю, не получится.

#15 2017-09-12 18:29:59

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 310

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Человек хочет вручную, а все почему то полуавтоматы предлагают.)

#16 2017-09-12 22:11:37

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 310

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

У меня 9 датчиков на батарейном питании в подобном режиме работали почти пол года.
Но в конце обнаружил, что пара датчиков не просыпаются. При этом 3В батареи были в норме. Вот тут и пришлось жать на кнопку сброса.) Так что, всё таки, что то в этом есть.

#17 2017-09-21 12:06:03

gambrinus
Забанен
Из Одесса
Зарегистрирован: 2017-09-21
Сообщений: 11

Re: Подскажите как реализовать ресет по длинному нажатию кнопки

Добавь кондесатор на 1000 микрофарад

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела