본문 바로가기

Embedded

MCU 늦게 꺼지게 하기(데이터 백업 등을 위해...)

온/오프 기능 제어하는 마이크로컨트롤러, DSP 회로

( 01 Apr 2004 )
편집: Bill Travis
글: Dirk Gehrke, Texas Instruments(독일, 프레이징)

많은 애플리케이션에서 파워 서플라이는 하나의 온/오프 버튼 스위치로 점멸을 실행한다. 보통 시스템은 마이크로프로세서나 DSP가 처리 중인 프로세싱 기능이나 작업 부하에 관계 없이 스위치를 끌 수 있다. 그림 1의 소형 회로는 마이크로컨트롤러 또는 DSP 회로가 온/오프 기능을 자유자재로 사용할 수 있게 한 것이다. 이 회로를 사용하면 마이크로컨트롤러 또는 DSP 회로가 온/오프 기능을 갖추게 된다. 따라서 시스템이 파워 서플라이를 셧다운하는 명령을 전송하기 전에 데이터 처리 및 데이터 저장 같은 필요한 작업을 수행할 수 있다. 그림 2는 타이밍 다이어그램이다. 스위치는 dc 파워 서플라이나 배터리에 직접 연결되지만 최종 애플리케이션과 파워 서플라이의 연결은 해제된다. 이 때문에 모든 캐패시터가 방전되는 것이다. 가장 까다로운 작업은 그림 1의 두 D 플립플롭을 필요한 "오프" 구성으로 만드는 것이다.





그림 1의 인버터 IC1B는 다이오드 D4를 통해 D 플립플롭, IC2B를 재설정한다. R10, R11 및 C4로 구성되고 인버터 IC1B의 입력에 연결된 RC 네트워크는 4.7msec 정도 시간이 지연된다. 이러한 시간 간격은 D 플립플롭이 약 4.7msec 지연 시간 후 재설정되도록 해준다. 지연 시간이 지나면 R7이 접지면에 연결되므로 IC2B의 재설정 입력 핀 R이 고전위에서 저전위로 바뀐다. 동시에 IC2B의 출력 Q는 하위 레벨로, 는 상위 레벨로 전환된다. IC2B의 D 입력 모드 역시 출력 핀 에 연결되어 있으므로 고전위에서 저전위로 바뀐다. R1 및 C3로 구성되고 인버터에 연결된 RC 네트워크는 47msec 정도 지연된다. 지연된 출력은 D 플립플롭 IC2A의 세트 핀에 연결된다. 세트 핀은 47msec 동안 높게 유지되다가 낮아진다. 인버터 IC1A와 함께 R1 및 C3로 구성된 RC 네트워크는 약 47msec 정도 지연되며 지연된 출력은 D 플립플롭 IC2A의 세트 핀에 연결된다. 세트 핀은 47msec 동안 높게 유지되다가 낮아진다.

세트 핀이 하위 레벨로 떨어진 후 D 플립플롭 IC2A는 Q의 출력 수준은 높게 의 출력 수준은 낮게 바꾸고 의 피드백을 D 입력에 연결한다. 사용 가능한 dc/dc 커넥터의 핀이나 로우 드롭아웃 레귤레이터에 연결된 Q 의 상위 레벨은 시스템을 오프시킨다. 이제 D 플립플롭 IC2A는 오프 상태가 된다. 이 시점부터 두 가지 D 플립플롭 모두 알려진 상태가 된다. 그리고 DSP 회로에 전원이 공급되지 않으므로 DSP I/O 핀은 초기화가 진행되는 동안 낮은 상태가 된다. R15는 DSP I/O 핀에 전원이 공급되는 동안 낮은 상태를 유지한다. 초기화 단계 후, 은 “active-high” 레벨로 간주된다. 이를 사용 가능한 시스템 dc/dc 컨버터의 핀이나 로우 드롭아웃 레귤레이터에 연결하면 시스템을 오프 상태로 유지할 수 있다. 스위치는 푸시 버튼 노드의 풀업 레지스터를 접지면에 단락시키므로 푸시 버튼을 누르면 IC1B의 입력은 상위 레벨에서 하위 레벨로 바뀐다. 이에 따라, 이 기간 동안 IC1B의 출력은 하위 레벨에서 상위 레벨로 바뀐다.

D 플립플롭 IC2A의 CLK 입력은 R14와 D1을 통해 트리거되고, 출력 Q는 하위 레벨에서 상위 레벨로 바뀐다. 이 상태에서는 로우 드롭아웃 레귤레이터 또는 dc/dc 컨버터를 사용하여 시동할 수 있다. R2에 연결된 3.3 또는 5V는 D 플립플롭 IC2A의 CLK 입력에서 트랜지스터 Q1으로 로직 레벨을 변경시킨다. 이러한 조치는 온/오프 버튼을 누를 때 시스템이 사소한 결함을 무시하도록 해준다. 회로의 DSP I/O핀은 DSP 회로 또는 마이크로컨트롤러의 I/O핀 중 하나에 연결된다. 전원을 켜고 릴리즈를 재설정한 후에는 DSP 회로나 마이크로컨트롤러의 I/O핀을 입력 핀으로 구성해야 한다. 온/오프 버튼을 누르고 있으면 트랜지스터 Q2가 동작하여 DSP 회로의 I/O핀이 낮아진다. 버튼에서 손을 떼기 전에 먼저 DSP 회로가 코드 실행을 멈추도록 DSP 회로 또는 마이크로컨트롤러를 프로그램해야 한다. 그러면 DSP I/O 핀이 상위 레벨에서 하위 레벨로 바뀐다. D 플립플롭 IC2A가 D4로 다시 설정되지만, 프로그램이 동작 중이므로 이러한 재설정으로 인해 출력이 변경되지는 않는다.

온/오프 버튼을 다시 누르면 DSP I/O 핀은 하위 레벨이 된다. 이제 DSP 회로나 마이크로컨트롤러는 입력 변경을 인식하고 인터럽트를 생성해야 한다. 이 인터럽트는 셧다운 절차를 초기화한다. D 플립플롭 IC2A는 CLK의 유효한 토글 신호가 출력 상태에 아무런 영향도 미치지 못하도록 D4를 통해 재설정 모드로 변경된다. 이제 온/오프 푸시 버튼에서 손을 뗀다. D 플립플롭 IC2A는 약 4.7msec 후 재설정을 해제하고, Q2 및 Q4는 레벨을 변경하며 재설정 지연 시간이 지날 때까지 CLK 핀에 낮은 신호를 유지한다. 마이크로컨트롤러나 DSP 회로가 지연 시간이 지난 후 I/O 핀에서 높은 신호를 인지하면 셧다운 절차를 시동할 수 있게 된다.

DSP 회로나 마이크로컨트롤러는 이제 중요한 데이터를 저장할 수 있는 시간을 벌게 되었다. 마이크로컨트롤러나 DSP 회로의 I/O 핀은 출력 핀이 낮게 설정되도록 프로그램해야 한다. Q4는 구동 전압을 잃고 D 플립플롭 IC2A의 CLK 핀은 하위 레벨에서 상위 레벨로 상태가 변경된다. D 플립플롭 IC2A는 출력 Q 및 D3를 통해 출력 상태를 변경한다. Q 및 는 핀의 상태를 하위 레벨로 변경하고 시스템을 셧다운한다. 동시에 D 플립플롭 IC2A는 Q3와 비교기 IC1C를 통해 재설정한다. 이러한 재설정으로 D 플립플롭 IC2A는 위에 언급한 것처럼 온/오프 버튼을 처음 누르기 전의 초기 상태가 된다.