전력을 아끼기 위해서 LED 키는데도 조심해야하고, 클럭도 낮췄습니다.
하여간 조금이라도 쉬는 때에 NFC 안테나를 통해 전력을 모아야 했습니다.
그래서 다루게 된게, Sleep Mode입니다.
PSOC4는 Low Power 모드가 총 4가지 있습니다.
1. Sleep Mode
2. Deepsleep Mode
3. Hibernate Mode
4. Stop Mode
----
각 모드마다, 특징이 있는데 먼저 일반적으로 우리가 사용하는 모드를 Active Mode라고 합니다.
저전력 모드는 다음과 같은 특징을 갖습니다.
1. Sleep Mode 는 모든 다른 기능은 살아있고 CPU만 죽어 있습니다.
2. Deepsleep Mode는 CPU,대부분의 Peripheral,HF Clock 등을 사용할 수 없습니다.
3. Hibernate Mode 는 모든 clock이 죽어있고, 로직 상태는 그대로 유지됩니다.
4. Stop Mode는 모두 죽어있고, GPIO 상태만 유지되어 있거나 Frozen 상태로 됩니다.
Frozen : 모든 GPIO 의 설정,모드,상태가 lock 된다. active 모드로 재진입하여 pins이 unlock 되기 전까지 GPIO 상태를 바꿀 수 없다.
[파워 모드 스펙]
[파워 모드 - 이용 가능한 리소스들]
[파워 모드 테스트 소스 코드]
int main()
{
CyGlobalIntEnable; // Enable global interrupts.
//CySysPmSleep();
CySysPmDeepSleep();
//CySysPmHibernate();
//CySysPmStop();
while(1);
}
실제로 NFC 안테나를 통해서 전력을 공급받는 회로에서 , 각 파워 모드당 오실로스코프로 VCC를 측정해본 결과 다음과 같습니다.
그런데, Hibernate Mode 와 Stop Mode 가 오히려 전력이 떨어지는 것은 아직 이유를 못 찾았습니다. 뭔가 실수가 있을 것 같은데, 나중에 알게 되면 업데이트 하겠습니다.
DEEPSLEEP 모드가 가장 좋게 나오네요. 일단은 SLEEP 모드보다는 DEEPSLEEP 모드가 좀 더 성능이 좋습니다.
실제로 제가 쓰려고 했던 모드는 SLEEP 이나 DEEPSLEEP 모드입니다. 다른 모드들은 Wakeup 시 시간이 너무 길고, 결정적으로 시스템 리셋이 되 버립니다.
[클럭당 DEEPSLEEP 모드의 전력 비교]
댓글 없음:
댓글 쓰기