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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Сообщений: 522

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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