Como implementar um soft power switch controlável por microcontrolador?

16

Quero projetar um circuito para que o microcontrolador possa alternar um pino GPIO e desligar todo o sistema (incluindo o próprio microcontrolador). E quando o usuário pressiona um botão momentâneo, a energia é recuperada novamente.

Isso é possível?

cksa361
fonte

Respostas:

11

texto alternativo

Este exemplo usa um regulador de expansão Maxim MAX1835 , mas pode ser aplicado a outras pessoas que possuem um pino de desligamento.

O circuito normalmente está desligado. Quando o usuário pressiona o botão, a bateria é inserida no pino -SHDN, permitindo ao regulador e ligando os 3,3V ao microcontrolador. O microcontrolador coloca uma lógica 1 no cabo POWER ON, mantendo a energia ligada após o usuário soltar o botão. Quando o microcontrolador deseja desligar-se, ele define o condutor POWER ON como 0.

tcrosley
fonte
2
Muito importante, eu acho, está denunciando essa opção.
Kortuk
2
@ Kortuk, bom ponto. Eu estava assumindo que o micro ligaria rápido o suficiente para que pudesse ignorar o interruptor antes do primeiro salto, assumindo que elevar o pino alto era a primeira coisa que o micro fazia. Se não for esse o caso, pode-se adicionar um capacitor no fio -SHDN para criar uma constante de tempo para a ativação (embora isso também introduza um pequeno atraso no desligamento). O 10 nF provavelmente precisa ser deixado para a supressão de ruído (foi incluído em um esquema de amostra da folha de dados). Ou pode-se adicionar um circuito RC adicional apenas para o interruptor.
precisa saber é o seguinte
Eu já vi algum salto louco nos interruptores antes.
Kortuk
Um problema maior que alterna o salto é o comportamento do processador durante o desligamento. Em particular, pode ser bom garantir que o processador possa ligar a fonte apenas quando seu VDD estiver acima do ponto em que a operação correta é garantida. Eu tive que ajustar alguns circuitos de desligamento automático que ocasionalmente falhavam como consequência do processador executando código aleatório quando o VDD ficava abaixo da tensão operacional válida. O código aleatório pode definir a saída "power on" alta, o que, por sua vez, energiza o dispositivo, executando o código em um endereço aleatório.
Supercat
1

Uma maneira de fazer isso é entrar no modo de suspensão profunda no microcontrolador.

Muitos microcontroladores suportam o despertar de uma interrupção externa, como uma borda em um pino de E / S.

Toby Jaffey
fonte
então eu também receberia o consumo de corrente quieta da fonte de alimentação do regulador para o micro, certo?
cksa361
Sim. Você poderia.
precisa saber é o seguinte
@ cksa361, alguns micros são nano ou micro amplificadores. Eu uso o MSP430 e mantemos em torno de 3-5 microamperes.
Kortuk
0

Sim, isso certamente é possível, mas a maneira como você consegue isso depende de que tipo de carga você vai ligar e desligar.

Provavelmente é tão simples quanto usar um relé conectado ao PIN de saída do microcontrolador (via transistor e diodo de proteção) e um botão de pressão conectado a um pino configurado como entrada.

Aqui está um exemplo de diagrama de circuito simples: esquemático do relé controlado por um microcontrolador

Ao usar um botão momentâneo, tenha cuidado com o rebote ; será necessário implementar um atraso no código do microcontrolador para garantir que você verifique o status do botão de pressão por um período de tempo (por exemplo, 1ms) antes de trocar o relé De volta. Caso contrário, o microcontrolador poderá captar vários sinais e alternar seu relé várias vezes em um espaço de tempo muito curto, e você verá que seu botão funciona intermitentemente.

ATUALIZAÇÃO Acabei de ver sua edição sobre como desligar o microcontrolador também. Você pode dar mais informações sobre o que realmente está tentando fazer? É difícil responder à sua pergunta sem entender todo o sistema.

Se você também deseja desligar o microcontrolador, precisará de uma maneira de recuperar a energia do microcontrolador. Talvez você possa usar o relé para alimentar tudo, inclusive o microcontrolador, para que o microcontrolador possa se desligar, mas não voltar a ligar. Em seguida, o botão pode ser conectado através do interruptor do relé, para efetivamente causar um curto-circuito, dando tempo suficiente para ligar e manter o relé aberto.

BG100
fonte