개요 - pSoC의 저전력모드 | |
정보소스1. AN86233 PSoC® 4 Low-Power Modes and Power Reduction Techniques http://www.cypress.com/?docID=43701 다루는 내용. - psoc4 의 low power mode 사용법. - 주요기능은 유지된 상태에서 low power level 달성 운용법. - 5종의 파워모드, Creator 에서의 전력관리기능, 기타 전력감소 테크닉과 고려사항 설명. - pSoC Creator 예제 프로젝트 포함.
아래 정리된 내용은 상기 정보소스1의 내용기반으로 이해할 사항과 코드에서 처리할 사항을 정리함.
pSoC4의 파워모드 각 상태에서 사용가능한것과 불가능한것들 명확히 숙지해야함. Active, Sleep, Deep Sleep, Hibernate, Stop
Active : 모든 페리페랄 사용가능, CPU 작동. 소비전류 : Sleep : 모든 페리페랄 사용가능, CPU, SRAM 사용불가. 소비전류 : 1.3mA wakeup time : 0 Deep Sleep : sleep 상태 + 사용불가 한것들 = ADC, CTBms, High Speed Clock, UDB, High Speed Peripheral. 소비전류 : 1.3uA wakeup time : 25usec Hibernate : 사용가능한것 3개만 있음 GPIO 출력상태, 저전력비교기, POR, BOD. 소비전류 : 150nA wakeup time : 2msec Stop : 모두 off되고 GPIO Output state 가 frozen 상태로 됨. 소비전류 : 60nA wakeup time : 2msec
위 각 Power Mode별 사용가능/불가능 요소 정보 -> 정보소스 1의 페이지2.
| |
|
Sleep | |
Sleep 모드 상태 : CPU, SRAM 사용불가, 그외 모든 페리페랄 사용가능,
Active -> Sleep API 함수호출 : CyPmSleep()
Sleep -> Active 인터럽트에 의한다.
Sleep mode use case. High Frequency peripheral (ADC, CapSense, Digital Communication)과 다른 모든 peripheral 은 사용가능하면서 CPU 사용은 필요없는 경우에 사용된다. 이 모드에서는 이벤트(예, ADC Conversion, digital communication transactions) 사이 사이의 전류소모들 줄인다. | |
|
Deep Sleep | |
Deep Sleep 상태 : sleep 상태 + 사용불가 한것들 = ADC, CTBms, High Speed Clock, UDB, High Speed Peripheral. 사용가능한것 : kHz ILO클럭 peripheral, I2C 사용가능.
Active -> Deep Sleep API함수호출 : CyPmDeepSleep()
Deep Sleep -> Active 인터럽트에 의한다. I2C address match, watchdog timer, pins, low power comparator interrupts. power pin 의 low voltage detect, CapSense button inputs, I2C address match. watchdog timer 등.
Deep Sleep Mode Use case. 주기적인 (고속)wakeup 으로 주로 사용된다.
| |
|
Hibernate | |
Hibernate 상태 : 사용가능한것 3개만 있음 GPIO 출력상태, 저전력비교기, POR, BOD.
Active -> Hibernate API 함수 : CyPmHibernate()
Hibernate -> Active pin or low power comparator 인터럽트. 인터럽트 이후 "reset" 되어 Active 모드로 됨. 리셋되어도 SRAM과 일부 레지스터는 살아있어서 reset reason 을 검출할 수 있다. 즉 reset 되어 Active 된 상태에서 API함수 CySysPmGetResetReason() 을 호출하여 hibernate wakeup reset 인지 검출가능하다.
Hibernate mode use case. 주기적인 wakeup이 필요하지 않으면서 SRAM혹은UDB register 내용이 유지되어야 할때. | |
|
Stop | |
Stop 상태 : 소자에 전원공급을 차단하지 않고 가장 낮은 전류소모를 달성한다. 모든 peripheral 은 사용불가. SRAM , register 상태 유지안됨. 핀은 "frozen"되어 로직상태와 드라이브 모드는 고정된다. 지정된 wakeup 핀은 P0.7 1개.
Active -> Stop API함수 : CyPmStop() stop모드 진입하기 전에 wakeup 핀인 P0.7 의 wakeup 극성지정하려면 CySysPmSetWakeupPolarity() 함수호출하여 지정한다.
Stop -> Active P0.7에 의한다. reset 되면서 active 상태로 된다. active상태로 되어도 GPIO들은 모두 frozen 상태이므로 이를 풀어주기 위해서는 CySysPmUnfreezeIo() 함수 호출한다.
Stop mode use case. 별도의 호스트 컨트롤러나 사용자 버튼등으로 P0.7 에 인가하여 wakeup가능할때 사용한다. | |
|
전력모드 상태 천이도 | |
각 전력 모드 상태 천이도. 정보소스 1의 페이지4.
| |
. |
전력모드별 wakeup source | |
wakeup source 테이블 정보소스 1의 페이지5.
| |
|
본 글이 포함된 통합 정리 : http://igotit.tistory.com/244 |
///222
'임베디드.일렉트로닉스' 카테고리의 다른 글
싸이프레스 Bluetooth Low Energy Subsystem 의 전력모드. (0) | 2015.03.15 |
---|---|
싸이프레스 pRoC BLE칩의 소비전류 wakeup time-CYBL10X6X 패밀리 (0) | 2015.03.15 |
ARM GCC 의 printf 대신 사용가능한 메모리 조금 먹는 함수. (0) | 2015.03.12 |
Bluetooth GATT 기반 프로파일, 서비스, Characteristic 표준 리스트. (0) | 2015.03.10 |
pSoC4 BLE - Cypress Bluetooth Low Energy (0) | 2014.11.30 |
댓글