대부분의 마이크로 컨트롤러 (예 : AVR, MSP430, PIC 등)는 다양한 수면 모드를 지원합니다. "가장 깊은"슬립 모드는 가장 낮은 전력 소비를 추구하는 모드입니다 (예 : "Power Down", "Shut Down"). 모든 클럭 시스템은 일반적으로 이러한 모드에서 정지되며 " 그들로부터 깨어 난다 "는 외부 자극 (예 : 핀 변경 인터럽트, 칩 리셋)을 통해 이루어진다. 뭔가 빠졌습니까? MCU에주기적인 웨이크 업 신호를 생성하는 놀랍게도 저전력 방법이 있습니까?
내 목표는 전력 소비를 최소화하는 것 (즉, 가능한 한 오랫동안 잠을 자고 가능한 한 짧게 깨어 있음)을 가정하면서 주기적으로 기능을 실행하기 위해 깨어나는 것입니다. 문제를 더 단순화하기 위해 내 함수가 상태가 없다고 가정합니다 (과거를 수행하기 위해 과거의 아무것도 기억할 필요가 없습니다).
이 효과를 얻으려면 MSP430에서 WDT를 사용하여 약간의 성공을 거두었습니다. 방금 메인 루틴을 내 함수로 만들었습니다. 마지막 라인은 특정 기간 후에 워치 독 타이머가 만료되고 LPM4.5 또는 "딥 슬립"모드가 무엇이든간에 종료됩니다. 결과적으로 기능이 수행되고 MCU가 휴면 상태가되고 WDT가 만료되며 칩이 광고 구역으로 재설정됩니다. 이런 유형의 행동을 얻는 데 "더 나은"또는 "더 우아한"또는 "보다 효율적인 전력"방법이 있는지 궁금해하는 것 같습니까?
나는 아직 AVR로이 접근법을 시도하지는 않았지만 WDT는 MSP430보다 AVR에서 "배고프다"고 생각하여 저전력 작업에는 덜 매력적이라고 생각합니다. 아마도 저전력에 대한 "유니버설"접근 방식이없고 주어진 제품군에서 제공하는 도구를 사용해야합니까? 새로운 picoPower 라인에는 이벤트 시스템 및 슬립 워킹과 같은 많은 whiz-bang 기능이 있으며, 경우에 따라 응용 프로그램을 해당 구조에 맞출 수 있다면 CPU를 전혀 깨울 필요가 없습니다 ...
내 방황이 충분 해, 나중에 할 말이 있습니다 :)
편집 기술을 보여주는 구체적인 사례도 멋진 것!