소프트 전원 스위치로부터 마이크로 컨트롤러 입력 핀 보호


10

나는 순간 스위치가 회로를 켤 수있는 마이크로 컨트롤러 용 소프트 전원 스위치를 사용하고 있는데 (마이크로 컨트롤러 포함) 스위치를 두 번째로 누르면 마이크로 컨트롤러가 정리를 한 후에 꺼질 수 있습니다.

회로도

지금까지 위의 회로가 있지만 신뢰할 수 있는지 확실하지 않습니다. 리튬 이온 배터리 (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.

답변:


4

R1 및 R2는 전류를 uC의 핀으로 제한하며 일반적으로 장치를 보호하기에 충분합니다. "제한"전류가 무엇인지 사양을 확인하고 uC 공급 장치에 적합한 저항 값을 선택하면됩니다. 0V (비전 원) 일 수 있습니다. 선원은이 기준으로 제외 될 수 있습니다.

신뢰성은 또 다른 문제입니다. 바운스 스위치로 인해 uC가 켜지고 몇 번 꺼질 수 있으므로이를 인식하도록 코드를 작성하십시오.

가능하면 저항을 설정하는 것이 좋지만 아마도 + 10K의 영역에서 아마도 100k보다 높을 수 있습니다.

셧다운 핀의 전압은 Vin의 45 % 이상이어야하므로 문제가되지 않습니다.


3

이것은 자기 래칭 릴레이 회로처럼 이론적으로 작동하는 자체 래칭 시스템처럼 보입니다 (버튼을 사용하여 릴레이를 켠 다음로드 핀과 코일 핀이 묶여 있기 때문에 릴레이는 계속 켜져 있습니다 전원이로드 핀에 공급되는 한).

마이크로 컨트롤러를 위험에 빠뜨리지 않으면 서 테스트 할 수 있습니다. 더미 부하를 추가하여 레귤레이터를 행복하게 유지하고 (몇 개의 LED도 작동하고 있음을 알 수 있음) 출력이 표시된 지점에 연결합니다 uC Power. 스위치를 누른 후 레귤레이터가 시작되어 LED와 uC 전원을 켜면 활성화 핀이 로직 하이로 유지되어야합니다 (셧다운 로직 하이는 VIN의 최소 45 %이므로 4.2V In에서 1.89V). ).

따라서 버튼을 눌렀다 놓은 후 LED가 켜져 있으면 작동합니다. 그렇지 않으면 그대로 작동하지 않습니다.

경고 : 제너 다이오드가 회로를 어떻게 반응 시킬지 확신하지 못한다고 말합니다.


0

배터리, 마이크로 컨트롤러 신호 및 레귤레이터의 SHDN * 입력 (EN으로 변경)을 연결하는 회로가 난해한 것으로 보입니다.

래치를 사용하여 (배터리 전원으로 실행) 키 잠금을 캡처하는 것은 어떻습니까. 그런 다음이 래치의 출력을 MCU의 신호 신호로 OR하여 레귤레이터의 SHDN * 핀 (회로도에서 EN으로 바 EN)을 구동 할 수 있습니다. 부팅시 MCU는 먼저 인 에이블 라인을 구동 한 다음 래치를 비워 EN이 확실하게 유지되도록해야합니다.

후속 버튼 동작은 래치를 통해 모니터링 할 수 있습니다. 스위치를 다시 누르면 래치가 다시 높아집니다. MCU가이를 감지하고 래치와 활성화 신호를 모두 지우고 종료를 트리거합니다. 스위치가 래치되어 있기 때문에 MCU는 여유로운 주파수로 간단히 폴링하여 매우 편리하게 모니터링 할 수 있습니다.

배터리 자체가 온라인 상태가 될 때 버튼을 사용하지 않고 시스템 전원을 켤 수 있도록 회로를 선택적으로 개선 할 수 있습니다. 이것은 래치를 설정하는 일종의 펄스 일 수 있습니다.


0

적절한 저항으로 EN을 낮게 잡아 당겨 MCU의 IO 핀에 묶습니다. 스위치는 MCU의 입력 핀으로 연결됩니다. 버튼을 누르면 MCU 입력 핀의 인터럽트가 트리거되어 LDO의 EN 핀을 제어하는 ​​출력 핀이 토글됩니다.

MCU를 최대 절전 모드로 전환하면 핀을 낮게 당겨 LDO를 비활성화 할 수 있습니다. 스위치로 인터럽트를 트리거하면 스위치가 깨어나 핀을 다시 높이고 LDO 활성화를 다시 켭니다.


죄송합니다. 조금 더 명확하게 지정해야합니다. 마이크로 컨트롤러는 LDO가 스위칭 할 주요 부하이므로 저전력 상태로두면 작동하지 않습니다.
카슨 달링
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.