ADC (Analog-to-Digital Converter) DriverMCAL I/O Drivers 중 하나. μC 내부 ADC 하드웨어 유닛을 제어해 아날로그 입력을 디지털 값으로 변환한다. 변환 트리거·변환 모드·결과 버퍼 관리 방식의 조합이 다양하다는 점이 PORT/DIO와 구별되는 복잡성.

핵심 단위

  • ADC hardware unit — μC 내부의 ADC 수행에 필요한 모든 부품을 포함한 블록
  • ADC channel — 하나의 아날로그 입력 핀
  • ADC channel group — 같은 ADC HW unit에 연결되고 같은 trigger source로 트리거되는 channel 묶음

Acquisition Time

  • Sampling time — 아날로그 값이 S&H 회로에 샘플링되는 시간
  • Conversion time — 샘플된 값이 디지털로 변환되는 시간

트리거 — SW vs HW

트리거 종류시작 방법
Software triggerAPI 호출 (Adc_StartGroupConversion 등)로 변환 개시
Hardware triggerADC 내부 타이머 또는 trigger edge 신호로 자동 개시

HW trigger를 지원하지 않는 ADC는 GPT/ICU notification + SW trigger 조합으로 유사 동작을 구현 — 타이머 만료 시점마다 notification에서 SW trigger를 호출.

Conversion Mode

  • One shot — 트리거(SW/HW) 1회당 변환 1회, 결과를 buffer에 기록
  • Continuous — 한 번 start한 뒤 자동(HW 또는 interrupt 제어)으로 연속 변환, stop API로만 중단

Buffer 모델 — 2축

Access Mode

  • ADC_ACCESS_MODE_SINGLE — 각 group channel당 1 sample만 유지
  • ADC_ACCESS_MODE_STREAMING — group channel의 여러 sample을 축적

Stream Buffer Mode (STREAMING일 때 한정)

  • ADC_STREAM_BUFFER_LINEAR — 버퍼가 다 차면 변환 중단
  • ADC_STREAM_BUFFER_CIRCULAR — 버퍼가 다 차면 처음으로 wrap around 하며 계속 변환

조합 예: Streaming + Circular → 일정 길이의 sliding window가 유지되어 real-time 분석에 유용.

Functions

  • 초기화 / 제어 (Adc_Init, Adc_StartGroupConversion, Adc_StopGroupConversion)
  • Trigger source 활성/비활성
  • Notification 활성/비활성
  • 변환 상태·결과 조회

의존성

  • MCU Driver — trigger 주파수, conversion time, sampling time 관련 클록 설정
  • PORT Driver — ADC 입력 핀·트리거 핀의 기능 설정

같이 보기