Свежие обсуждения
Консультации

Как бы мне воспользоваться ногой ON/OFF?

1 2

Задача такая:

Что есть:
Есть 2 входных напряжения, 12В неотключаемые (12Вн), и 12В отключаемые (12Во).
Есть преобразователь напряжения 12-5, с ногой ON/OFF, 0 на ноге включает преобразователь, 5 вольт - выключает.
Есть микроконтроллер, у него есть нога для управления питанием (Упр).

Что надо:
- чтобы при подаче 12Вн и при отсутствии 12Во на ноге ON/OFF была единица (преобразователь выключен);
- чтобы при подаче 12Во на ноге ON/OFF появлялся 0 (преобразователь включался)
- чтобы при отключении 12Во на ноге ON/OFF оставался 0 (преобразователь оставался включенным)
- чтобы при подаче заданного уровня ногой Упр на ноге ON/OFF появлялась единица (преобразователь выключался).

То есть, примерно такая таблица состояний:


12Вн 1 1 1 1 1
12Во 0 1 1 0 0
Упр HiZ HiZ 1 1 HiZ
------------------------------------
On/Off 1 0 0 0 1

 

Сильно зависит от того, что можно делать с управляющей ногой контроллера. Если её можно переключать на вход и на выход и опрашивать вход, то:

12Во управляет транзистором, который замыкает ON/OFF на землю.
Кроме того, ON/OFF может замыкаться на землю контроллером (если УПР переключен на выход, и там лог. 0)
Т.е. получается монтажное ИЛИ.

Изначально УПР переключен на вход. При детектировании на нём лог. 0, контроллер переключает УПР на выход, и подает туда лог. 0. Для отключения преобразователя УПР надо опять переключить на вход.

Конечно, если присутствует 12Во, контроллер не сможет выключить преобразователь при такой схеме.

 

Вот это - похоже?

 

АНТОХА, у вас наверное в таблице ошибка. Логика не совпадает с текстовым описанием. On/Off надо бы проинвертировать.
А собственно, в чем вопрос? Как программу написать? Да вы и сами прекрасно знаете. Просто суть логики? Могу аппаратную схему нарисовать на одном RS триггере. Надо?

 

AHTOXA: Вот это - похоже?
- Да, так даже лучше. Я немного другую схему предложил (ON/OFF замыкается либо транзистором, либо непосредственно CONTROL -- монтажное ИЛИ). В общем, основная мысль -- обойтись без дополнительного элемента памяти за счёт наличия МК.

 

Zandy: АНТОХА, у вас наверное в таблице ошибка.

Да не, вроде всё совпадает. ON/OFF проинвертировать не могу, это нога преобразователя, при 0 он включен, при 1 - выключен

С программой проблем нету, проблема схему нарисовать Я тот ещё схемотехник. Желательно без триггеров, на транзисторе-двух.

 

Все-таки в таблице какое-то несоответствие с текстом. А схемка вот она. Чисто логика работы.

 

Только сейчас дошло, что в этой схеме http://pro-radio.ru/user/uploads/118768.gif будет проблематично детектировать наличие напряжения на базе транзистора при помощи МК (оно не превысит примерно 0.6В). Надо бы ещё один резистор добавить, между базой и точкой подключения CONTROL. Или заменить транзистор на полевой. Вроде больше косяков нет.

На всякий случай, псевдокод логики контроллера:


/* Инициализация */
set_direction(CONTROL, INPUT);

/* Код, выполняющийся при появлении 1 на входе CONTROL */
set_direction(CONTROL, OUTPUT);
CONTROL = 1; /* Теперь пропадание 12Во не приведет к выключению преобразователя. МК выполняет роль триггера на схеме Zandy */

/* Принудительное выключение преобразователя */
set_direction(CONTROL, OUTPUT);
CONTROL = 0;


 

Это то о чём сначала подумал, предположив наличие источника +5В

 

Это с учётом корректировки: