페이지

글목록

레이블이 SLEEP인 게시물을 표시합니다. 모든 게시물 표시
레이블이 SLEEP인 게시물을 표시합니다. 모든 게시물 표시

2016년 6월 7일 화요일

[nordic BLE] PCA10028 BLE-to-UART(SPP)예제 페어링 Time 변경

현재 SPP 프로젝트의 동작을 보면,
2초 간격으로 180초 동안 페어링을 하고 있습니다.

그리고 180초 이후에는 Sleep 모드로 빠져서 BLE 장치를 리셋하거나, 
WAKEUP 시키는 버튼을 눌러서 재시작하도록 되어 있습니다.

혹시, 중간에 sleep 모드로 빠져서 문제가 있는 경우 
1. Timeout 값을 조정하거나,
2. 필요할 때 마다 리셋 핀을 통해서 리셋을 하거나,
3. 입력핀에 wakeup 신호를 줘서 restart 하거나,
4. 아예 Timeout 시간을 없애서 계속 살아 있어서 페어링을 계속 진행하는 방법이 있습니다.

이 중에서 1,4번 은 같은 파라메터값을 조정해서 변경 가능합니다.
main.c 파일에서 APP_ADV_TIMEOUT_IN_SECONDS 값을 바꾸면 페어링 시간을 1초 단위로 조정할 수 있습니다.
그리고 값을 0으로 하면 sleep mode로 빠지지 않고 무한하게 페어링을 할 수 있습니다.

번 리셋 핀은 h/w 에서 리셋 핀을 ON/OFF 하거나 BLE 모듈의 전원을 ON/OFF 하면 됩니다.

3번 현재 개발키트의 버튼 4개 중에 1개인데, 기억이 안나네요. 찾아보면 메뉴얼이 있으니 필요한 분은 찾아보시길 바랍니다.

2016년 2월 27일 토요일

[PSOC] PSOC4 LOW Power Mode Test

현재 진행중인 프로젝트가 NFC 카드에 PSOC4를 넣어서 전원이 무지무지 딸립니다.

전력을 아끼기 위해서 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 모드의 전력 비교]