Самовыключение микроконтроллера

Резисторы, транзисторы, конденсаторы, микросборки, чип компоненты ...
Вопросы согласования управляющих модулей с периферией.

Самовыключение микроконтроллера

Сообщение NEOSoftWare » 04 сен 2011, 03:52

Подскажи пожалуйста как правильно сделать, чтобы мк смог обрубить себе питание. побывал в разрез +5 ставить транзистор, если базу транзистора подключить к +5 то мк не работает, если подтянуть к земле, то мк выключается, вроде все как надо, подключаю базу к ножке транзистора и транзистор работает всегда, хотя ножку поочередно дергаю то 1 то 0. побывал между базой и ножкой поставить диод, мк не работает самостоятельно (только тогда, когда кратковремен подтягиваю базу к земле, для открытия транзистора, но сразу же закрывается, не смотря на то что мк на ножке дает логический 0). как можно еще реализовать?
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Самовыключение микроконтроллера

Сообщение avr123.nm.ru » 04 сен 2011, 09:09

P-полевик в питании.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Самовыключение микроконтроллера

Сообщение HarryStar » 04 сен 2011, 10:52

А слипа не достаточно? Энергопотреблением во сне можно пренебречь.
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Самовыключение микроконтроллера

Сообщение NEOSoftWare » 04 сен 2011, 13:07

HarryStar писал(а):А слипа не достаточно? Энергопотреблением во сне можно пренебречь.

нет, нужно иммено выключить питание. т.к. в таком состоянии он может несколько недель находиться.

avr123.nm.ru писал(а):P-полевик в питании.

Image1.png
Image1.png (8.43 КиБ) Просмотров: 2284

Замыкаю S1 все работает, отпускаю, мк выключается.
Код: Выделить всё
DDRD=0xff;
PORTD.4=1;

пин всегда подтянут к VCC;
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Самовыключение микроконтроллера

Сообщение Michael_K » 04 сен 2011, 13:36

нарисована какая-то ерунда.
А написанное эту ерунду жестко усугубляет.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Самовыключение микроконтроллера

Сообщение Radist » 04 сен 2011, 13:43

Полевик подключен неправильно. Исток надо на плюс, сток к МК, затвор подтянуть к плюсу. Кнопка включения параллельно сток-исток. Нажали кнопку - МК выдал в затвор ноль, кнопку можно отпускать, МК будет работать. Надоело МК работать - делает на затворе третье состояние - резистор подтяжки сам закроет полевик. Может быть кондер по питанию еще понадобится.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Самовыключение микроконтроллера

Сообщение avr123.nm.ru » 04 сен 2011, 13:44

S1 надо на землю и код

DDRD.4=1;
PORTD.4=0;
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Самовыключение микроконтроллера

Сообщение Michael_K » 04 сен 2011, 13:48

Radist, +1
Только я бы кнопку тоже в затвор ставил.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Самовыключение микроконтроллера

Сообщение NEOSoftWare » 04 сен 2011, 14:42

Radist писал(а):Полевик подключен неправильно. Исток надо на плюс, сток к МК, затвор подтянуть к плюсу. Кнопка включения параллельно сток-исток. Нажали кнопку - МК выдал в затвор ноль, кнопку можно отпускать, МК будет работать. Надоело МК работать - делает на затворе третье состояние - резистор подтяжки сам закроет полевик. Может быть кондер по питанию еще понадобится.

Image3.png

Код: Выделить всё
i=0;
DDRB.0 =1;
PORTB.0=0;

DDRD = 0xff;
PORTD.7 =1;
PORTD.4 = 1;

while (1)
      {
        PORTB.0 = ~PORTB.0;
        delay_ms(500);
       
        i++;
       
        if (i == 5){
            DDRD.4 =0;
            PORTD.4 =0;   
        }
      }

замыкаю ключ, светодиод повешенный на PB0 начинает мигать, отпускаю ключ, не мигает. пробовал в место PORTD.4 = 1; ставить PORTD.4 = 0; тоже самое
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Самовыключение микроконтроллера

Сообщение avr123.nm.ru » 04 сен 2011, 15:09

Затвор на землю замкните - если будет работать значит МК не дает "0" на затвор.

Конденсатор примерно на 100-200 ИМХО лучше. И код включения в начало проги поставьте.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Самовыключение микроконтроллера

Сообщение Michael_K » 04 сен 2011, 15:11

Подтяните затвор ко входу питания.
Разберитесь в логике работы.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Самовыключение микроконтроллера

Сообщение blindman » 04 сен 2011, 15:51

Michael_K писал(а):Подтяните затвор ко входу питания.

Можно получить паразитное питание
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Самовыключение микроконтроллера

Сообщение NEOSoftWare » 04 сен 2011, 16:16

avr123.nm.ru писал(а):Затвор на землю замкните - если будет работать значит МК не дает "0" на затвор.

Конденсатор примерно на 100-200 ИМХО лучше. И код включения в начало проги поставьте.

Что то я с выводами полевого транзистора напутал,поправил, но теперь если замкнуть затвор на землю мк работает, замкнуть на +5 не работает, но это только так пока на PD4 установлен в 0 (DDRD.4 в 1), как только PD4 устанавливает в 1 (т.е. по коду это через 2.5 сек) сам мк не выключается и затвором его не выключить (замыкаю на +5).
Код: Выделить всё
DDRD = 0xff;
PORTD.4 = 0;

........

while (1)
      {
        PORTB.0 = ~PORTB.0;
        delay_ms(500);
       
        i++;
       
        if (i == 5){
            PORTD.4 =1;   
        }
      }
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Самовыключение микроконтроллера

Сообщение HarryStar » 04 сен 2011, 16:19

NEOSoftWare писал(а):нет, нужно иммено выключить питание. т.к. в таком состоянии он может несколько недель находиться.

Выдержка из даташита на мега32 (для примера) :
Active: 1.1 mA
Idle: 0.35 mA
Power-down Mode: <1 mkA

Сдается мне, что в последнем состоянии на ЛЮБОМ источнике питания потребляемый ток будет меньше тока саморазряда батареи/аккумулятора и задача с само-выключением очень надумана.
За год израсходуется 1 мкА * 24 * 365 = 9 мАч - если у вас не часовая батарейка размером со спичечную головку, то подобными токами можно легко пренебречь.

Если можно, скажите что за устройство и какой там источник питания.
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Самовыключение микроконтроллера

Сообщение Michael_K » 04 сен 2011, 16:25

blindman писал(а):Можно получить паразитное питание
Да, правда.

Добавлено спустя 4 минуты 24 секунды:
HarryStar писал(а):...задача с само-выключением очень надумана...

Harrystar, вы часто видели схему, где кроме МК больше ничего бы не было?
Такая схема - действительно "очень надумана", а задача самовыключения - вполне нормальная.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

След.

Вернуться в Электроника, электротехника

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 32