ADC, Analog to Digital Converter
: 연속적인 아날로그 신호를 0과 1로 구성된 디지털 신호로 변환하는 어플리케이션
▶ X축에서 신호를 나누는 것 : Sampling
Sampling되는 주기가 짧을 수록(Sampling Frequency가 높을수록) 원래 파형과 비슷하게 됨을 알 수 있다.
초당 Sampling 횟수를 SPS(Sample per second)라고 한다. ex) SPS, KSPS, MSPS, GSPS...
만약, Sampling Rate = 200KSPS, 1초당 200*1000번 Sampling(200,000개의 데이터)한다.
▶Y축에서 신호를 나누는 것 : Quantization
Sampling을 통해 측정한 값을 Digital 값으로 바꾸는 과정이 Quantization이다.
표현가능한 Bit 단위가 8bit(0~255)라면 256개이다.
다른 표현으로 Resolution(해상도, 분해능)이라고 한다.
만약, Input Analog Signal의 Voltage Level이 0~3V라면, 8bit의 경우 3/256=11.719 간격으로 Digital 표현된다.
Part 1) ADC Main Concepts
▶ SNR(Signal to Noise Ratio)
그림의 빨간 색의 가장 큰 Fundamental Signal(실제로 들어온 Input)와 파란색의 noise floor의 비(ratio)
DC Power와 Harmonics는 제외하고 noise floor를 계산한다. Fundamental Signal, Carrier라고 표현하기도 한다.
▶ SFDR(Spurious Free Dynamic Range)
원치 않는 신호를 Spurious, 줄여서 Spur라고 한다. 그림에서 3번 Harmonic이 가장 큰 Spur이기 때문에,
Fundamental과 3번 Harmonic의 Ratio로 계산한다.
▶ THD(Total Harmonic Distortion)
Fundamental과 5 Harmonics의 Ratio로 Harmonics에 의한 왜곡이 얼마나 심한지를 나타낸다.
▶ SINAD(Signal Noise and Distortion)
Noise Floor에 5개 Harmonics까지 더해서 Ratio를 계산한다. DC에서의 신호는 무시한다.
▶ ENOB(Effective Number of Bits)
6.02는 dB단위로 바꾸기 위해, 1.76은 이상적인 ADC의 Quantization Error에 기반한다.
이상적인 SNR을 고려했을 때, 실질적으로 표현되는 Resolution을 의미한다.
Ex) 14bit ADC를 구매하였는데 DataSheet에 표기된 ENOB가 12bit라면, lowest 2bit는 noise.
▶ Ideal SNR
Ideal SNR = 6.02 * n + 1.76 (n은 bit의 수, 즉 Resolution)
n에 ENOB를 매칭하면 이상적인 상황일 때 Ideal SNR은 SINAD와 같다.
Part 2) Nyquist - Shannon Sampling Theorem
▶ Nyquist Theorem
- To accurately sample a continuous signal, the sampling frequency must be at least twice the maximum frequency(𝒇_𝒎𝒂𝒙) present in the signal.
- This minimum sampling frequency is called the Nyquist Rate(𝒇_𝑵).
- Nyquist criterion : 𝒇_𝑵=𝟐×𝒇_𝒎𝒂𝒙
▶ Signal Conditioning
- Use an antialiasing filter, an LPF, before the ADC to limit the maximum frequency of the input signal to half the sampling frequency.
- For example, if the sampling frequency is 20 kHz, it should effectively eliminate frequencies above 10 kHz.
▶ Antialiasing Filter
- It cuts off frequency bands that the sampler cannot accept.
- It is basically a low pass filter.
- It is required before the ADC.
Part 3) ADC Concept in Ti MCU
제가 사용하는 MCU Ti사의 TMS320F28379D 입니다.
해당 MCU의 Technical Reference Manual에 따른 ADC 관련 내용에 대해 설명드리겠습니다.
ADC가 무엇인지에 대한 내용은 인터넷 서칭이나 관련 자료들을 통해 파악하기에 무리가 없었지만,
MCU상에서 ADC에 관련된 레지스터들은 여러가지가 있고 그것들의 상하관계가 어떻게 되는지, 전체적인 구조에 대해서는 한눈에 알기가 쉽지 않습니다. 지금부터 하나하나 설명드리겠습니다.
우선 해당 MCU 상에서의 ADC 동작에 대해 말씀 드리겠습니다.
: ADCIN 채널을 통해 아날로그 신호를 입력으로 받고, SOC 이벤트에서 변환을 시작합니다.
ADCIN 채널이란 변환을 위해 아날로그 신호를 연결하는 ADC 모듈의 물리적 입력 채널입니다.
그리고 변환된 데이터를 ADCRESULT 레지스터에 저장합니다.
여기서 SOC 이벤트란 ADC를 트리거하여 변환 주기를 시작하는 신호를 말합니다.
다양한 소스에 연결 될 수 있으며 대표적인 예시로 PWM이 있습니다.
SOC가 발생하면 ADC는 선택한 ADCIN 채널에 있는 아날로그 신호를 변환하기 시작합니다.
SOC0, SOC1, SOC2...(특정 채널에 대한 변환 시작 트리거)
: Start of Conversion의 약자로, 개별 ADC 채널 또는 ADC 모듈 내에 변환 시퀀스에 해당하는 특정 SOC 트리거 입니다.
각 SOCx 트리거는 특정 ADC 입력 채널(ADCINx)에서 ADC 변환을 시작할 수 있도록 구성 가능합니다.
SOCA, SOCB (전환 시작 트리거)
: 다른 주변 장치에서 생성할 수 있는 두가지 유형의 SOC 트리거입니다.
특정 ADC 채널이라기보다는 트리거 소스에 가까우며,
구성에 따라 하나 이상의 SOCx 변환을 트리거할 수 있습니다.
<ADC 모듈의 전체적인 구조도>
ADC Module(ADCx)
- SOCA or SOCB (Trigger Source)
- SOCx (Trigger)
- ADCINx (Analog Input Channels)
- SOCx (Trigger)
- Configuration & Control Setting
이상으로 ADC에 대한 기본적인 개념설명을 마치겠습니다.
다음 글에서 ADC를 다룰 때에는 관련 테스트를 기반으로 한 정보를 업로드하겠습니다.
읽어주셔서 감사합니다.