4.1 ADC
4.1.1 ADC Introduction
ADC-Digital의 특징은 다음과 같다 :
- 2개의 12비트 ADC
- 10/11 비트 정확도로 최대 12비트 분해능의 연속하는 선형 근사 알고리즘(Linear successive approximation algorithm)
- 최대 1MS/s 샘플링 속도
- 최대 8개의 단일 종단 외부 아날로그 입력
- 단일 또는 연속 변환 (단일 변환 후 idle 상태로 자동 복귀)
- 출력 모드 : (오른쪽으로 정렬된 부호 없는 형식)
- 12 비트
- 10 비트
- 8 비트
- 구성 가능한 샘플 시간 및 변환 속도/전원
- 변환 완료 및 하드웨어 평균 완료에 대한 플래그와 인터럽트
- 최대 4개의 소스에서 선택 가능한 입력 clock
- clock 출력 옵션이 있는 낮은 노이즈 작동을 위한 비동기 clock 소스
- 하드웨어 채널 선택으로 선택 가능한 비동기 하드웨어 변환 트리거
- 선택 가능한 전압 레퍼런스, Internal, External 또는 Alternate
- 저소음 작동을 위한 저전력 모드에서 작동
- 하드웨어 평균 기능
- 자체 보정(self-calibration) 모드
4.1.2 ADC External Signals
- ADC_VREFH: 높은 기준 전압
- ADC_VREFL: 낮은 기준 전압
- ADC1_IN0: 아날로그 채널 1 입력 0
- ADC1_IN1: 아날로그 채널 1 입력 1
- ADC1_IN2: 아날로그 채널 1 입력 2
- ADC1_IN3: 아날로그 채널 1 입력 3
- ADC2_IN0: 아날로그 채널 2 입력 0
- ADC2_IN1: 아날로그 채널 2 입력 1
- ADC2_IN2: 아날로그 채널 2 입력 2
- ADC2_IN3: 아날로그 채널 2 입력 3
ADC 핀 설정은 ADCx_PCTL 레지스터에서 이루어져야 한다. 다른 추가 IOMUX 설정은 필요하지 않다.
4.1.3 ADC Driver Overview
ADC 드라이버는 Linux IIO (Industrial I/O) 드라이버 프레임에서 개발되었다. ADC 드라이버는 기본 기능만 제공한다. 아래 기능이 지원된다 :
- 각 ADC 컨트롤러 채널에 대한 4개의 외부 입력
- 12 비트 ADC
- 단일 변환
- 하드웨어 평균
- ADC의 저 전력 모드
- 사용 가능한 샘플 속도(rate) 그룹에서 샘플 속도(rate) 변경
4.1.4 Source Code Structure
Table 35. ADC Driver Files
File | Description |
drivers/iio/adc/vf610_adc.c | i.MX 6UltraLite와 i.MX 6SoloX ADC 기능 |
drivers/iio/adc/imx7d_adc.c | i.MX 7Dual ADC 기능 |
drivers/iio/adc/imx8qxp_adc.c | i.MX 8QXP ADC 기능 |
4.1.5 Menu Configuration Options
menuconfig로 모듈을 활성화하도록 커널 옵션을 구성한다 :
Device Drivers > Industrial I/O support > Analog to digital converters > Freescale vf610 ADC driver
Device Drivers > Industrial I/O support > Analog to digital converters > i.MX 7Dual ADC driver
Device Drivers > Industrial I/O support > Analog to digital converters > i.MX 8QXP ADC driver
4.1.6 Programming Interface
Linux IIO는 관련된 입력에서 원시 ADC 데이터를 가져오기 위한 일부 시스템 인터페이스를 제공한다. 사용자는 사용 가능한 샘플 속도 그룹에서 샘플 속도를 설정할 수도 있다. ADC 컨트롤러 시스템 인터페이스는 다음 위치에 있다 :
/sys/devices/soc0/soc.1/2200000.aips-bus/2280000.adc/iio:device0:
/sys/devices/soc0/soc.1/2200000.aips-bus/2284000.adc/iio:device1:
아래 테이블은 소프트웨어 인터페이스 목록이다.
Table 36. Software Interfaces
Software interface | Description |
in_voltage0_raw~ in_voltage3_raw | 원시 ADC 데이터를 얻기 위한 cat in_voltage0_raw |
sampling_frequency_available | 사용 가능한 샘플 속도 그룹을 얻기 위한 cat sampling_frequency_available |
in_voltage_sampling_frequency | 현재 샘플링 속도를 보여주는 cat in_voltage_sampling_frequency 샘플링 속도를 설정하는 echo value > in_voltage_sampling_frequency |