본문 바로가기
임베디드.일렉트로닉스

pSoC4 저전력모드-Low Power Mode.

by i.got.it 2015. 3. 14.

 

 

 

개요 - 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.

 

igotit
 

.

 

 

전력모드별 wakeup source

 

wakeup source 테이블 정보소스 1의 페이지5.

 

igotit
 

 

 

 

 본 글이 포함된 통합 정리 : http://igotit.tistory.com/244

 

 

 ///222

 

 

 

 

 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5