나는 순간 스위치가 회로를 켤 수있는 마이크로 컨트롤러 용 소프트 전원 스위치를 사용하고 있는데 (마이크로 컨트롤러 포함) 스위치를 두 번째로 누르면 마이크로 컨트롤러가 정리를 한 후에 꺼질 수 있습니다.
지금까지 위의 회로가 있지만 신뢰할 수 있는지 확실하지 않습니다. 리튬 이온 배터리 (3.7-4.2V)와 TC1015 레귤레이터 (3.0V 출력)를 사용하고 있습니다. 아이디어는 스위치를 누를 때 조정기가 켜지고 마이크로 컨트롤러가 uC Power
높게 설정 되어 계속 켜져 있다는 것입니다. 스위치를 두 번 누르면 인터럽트를 켜면 uC Switch
마이크로 컨트롤러가 uC Power
낮게 설정되어 자체적으로 꺼집니다.
확실하지 않은 것은 배터리 전압으로부터 마이크로 컨트롤러를 보호해야하는지입니다. 내가 사용하는 마이크로 컨트롤러는 Vdd + 0.4V의 I / O 핀에 절대 최대 전압을 가지고 있으므로 최선을 처리하는 방법을 모르겠습니다.
둘째,이 회로는 실제로 "오프"상태 일 때 레귤레이터가 켜지지 않게합니까? 인 에이블 라인에서 풀다운 저항을 사용하는 것에 대해 생각했지만 칩의 전원을 켤 때 전류 소모가 걱정됩니다.
편집 : 마이크로 컨트롤러는 전환되는 주요 부하이므로 불행히도 저전력 모드로 전환하면 작동하지 않습니다.
# 2 수정 (답변 게시 후) :
아래 회로를 사용하여 끝났습니다.
이전에 게시 된 회로는 잘 작동하지 않았으며 마이크로 컨트롤러가 전원을 공급하지 않을 때 플로팅 활성화 라인에 문제가있었습니다.
새로운 회로는 플립 플롭을 사용하며 데이터 라인은 일반적으로 낮게 당겨집니다. 스위치를 누르면 시계가 켜지고 시스템이 켜집니다. 이후에 스위치를 누르면 CLOCK
라인이 높아져 (마이크로 컨트롤러가 프레스를 감지 할 수 있음) 레귤레이터의 출력에는 영향을 미치지 않습니다. 마이크로 컨트롤러의 전원을 끌 준비가되면 DATA
라인을 높게 설정 한 다음 CLOCK
라인을 높게 설정 하여 레귤레이터가 종료되도록합니다.
이 설정에서 가장 좋은 점 중 하나는 첫 번째 버튼 누름으로 레귤레이터를 켜고 마이크로 컨트롤러가 종료 될 준비가 될 때까지 계속 유지한다는 것입니다. 바운스는 문제가되지 않습니다. 클럭 라인이 몇 번이나 높아지더라도 풀다운에 의해 데이터 라인은 여전히 낮게 유지됩니다. 또한 전류 소모는 매우 적어야하며 (꺼져있는 동안 플립 플롭과 TC1015 만), 켜져있는 동안 저항을 통한 전류 소모는 최소가됩니다.
마이크로 컨트롤러는 클럭 라인의 배터리 전압으로부터 보호 될 필요가 있지만 @Andy aka가 제안한대로 저항 on으로 수행 할 수 있습니다 CLOCK
.