ICU (Input Capture Unit) DriverMCAL I/O Drivers 중 하나. 입력 신호의 엣지·시간·빈도를 측정하는 계층. PWM Driver의 대척점으로, PWM이 특정 duty/period로 신호를 생성한다면 ICU는 외부 입력 신호의 타이밍을 측정한다.

주요 용도

  • PWM 신호 복조(demodulation) — 외부에서 들어오는 PWM의 duty·period 분석
  • Pulse counting
  • 주파수·duty cycle 측정
  • 단순 인터럽트 생성·wakeup 인터럽트

기능

  • Edge time stamping — 비주기적(non-periodic) 신호 취득에 유용
  • Edge counting — 엣지 개수 계수
  • Signal edge notification — 엣지 발생 시 콜백
  • Wakeup 인터럽트 제어
  • Periodic signal time measurement — 주기적 신호의 시간 측정

동작 모드

  • ICU_MODE_EDGE_COUNTER — 엣지 발생 수 카운트. 예: ICU_BOTH_EDGES 설정 시 상승·하강 모두 계수
  • ICU_MODE_SIGNAL_MEASUREMENT — 신호 폭 측정. Signal measurement property 로 어떤 구간을 측정할지 선택 (예: Low Time, High Time, Period, Duty Cycle)

함수

  • 초기화 / 해제
  • Wakeup 활성/비활성
  • Notification 활성/비활성
  • State, start time, stop time 읽기
  • Edge detection 활성/비활성
  • Edge count 활성/비활성/리셋/읽기

의존성

  • PORT Driver — port pin을 input으로 구성
  • MCU Driver — system clock, prescaler, PLL

ADC HW Trigger 대체

ADC가 HW trigger를 지원하지 않을 때, ICU notification + ADC software trigger 조합으로 유사 동작이 가능하다. ICU가 감지한 엣지/주기 이벤트의 notification이 ADC conversion을 개시하는 패턴.

같이 보기