ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ADC/DAC
    임베디드 2026. 4. 18. 22:36

    Analog to Digital Converter

    한마디로 아날로그 값을 디지털로 바꾸는 것이다. 정말 쉬운 개념이다. 

    이런 중요 개념은 거의 대부분의 센서에 필수적으로 사용된다.

     

    아날로그 신호는 연속적인 값이다. 즉 끊김이 없다고 할 수 있다. 마이크나 전압계 등이 이런 값에 해당하며, 결국 모든 자연계에서 오늘 값은 아날로그 값이다. 
    하지만 컴퓨터는 이런 아날로그 신호를 가질 수 있는가? 아니다. 컴퓨터는 Rising Edge와 Falling Edge만으로만 이뤄진 0과 1의 신호이다.

     

    - Rising Edge: 0에서 1로 올라가는 신호

    - Falling Edge: 1에서 0으로 내려가는 신호

     

    ADC는 크게 3가지 개념으로 생각할 수 있다.

    1. 샘플링 (Sampling): 연속적인 아날로그 신호를 특정 시간 간격으로 측정하여 이산적인 값으로 변환

    1초에 전압을 몇 번이나 읽을 것인가를 정해야 한다. 이것을 분해능이라고 한다. 좀 멋있게 전압의 해상도라고 할 수 있다. 센싱 한 값을 얼마나 세세하게 읽을 것인지 정해야 한다.

    8 bits로 읽기와 12 bits로 읽기로 예를 들어보자.

    8 bits ADC는 2^8만큼 세세하게 측정한다. 총 전압 단계를 256단계로 나눠서 측정한다. 
    그렇다면 단위는? 5V기준 5 / 256 = 19mV단위로 볼 수 있다.

     

    12 bits는 어떨까? 2^12는 4096이다. 총단계를 4096단계로 나눠 측정한다는 의미이다. 무려 8 bits와 거진 16배 차이가 난다. 그렇다면 단위는 5V기준 5 / 4096 = 1mV단위로 볼 수 있다.

     

    즉, 8bits는 전압 값이 19mV가 넘으면 측정되고, 12 bits는 전압 값이 1mV만 넘으면 측정되는 예민함에 차이를 보인다.

     

    하지만 전압 단위를 세세하게 측정한다는 게 항상 좋은 것은 아니다. 그 이유는 크게 3개로 나눌 수 있다.

    - 변환 속도가 느리다

    - 노이즈가 많아진

    - 모듈 가격이 비싸진다

     

    2. 양자화 (Quantization): 측정된 값을 가장 가까운 디지털 값으로 변환

    1.21312312... 같은 아날로그 값을 19mV 때 측정하는 것은 소수값을 정수에 맞춰서 측정한다는 이처럼 강제로 셀 수 있는 단위로 자르는 것을 말한다.

     

    3. 인코딩 (Encoding): 변화된 디지털 값을 바이너리 코드로 변환

     

    1초 동안 얼마나 자주 전압을 읽는 것이 적당할까?

    이는 Nyquist Theorem에 따르면 아날로그 신호를 완벽하게 변환하려면, 주파수 신호의 최소 2배 이상 빠른 속도로 샘플링을 해야 한다. 속도가 너무 느릴 시 원래 신호와 전혀 다른 파형이 읽힐 수 있다. 이를 Alisaing이라고 한다.

    Digital to Analog Converter

    ADC와 반대로 디지털 신호를 아날로그 신호로 바꾸는 것이다.
    디지털로 저장한 음악 파일을 아날로그 신호로 변환하여 스피커로 출력하는 등의 예를 들 수 있다.

     

    DAC는 알 게 많이 없다고 생각한다. 쩝쩝


    실제 임베디드 코드를 짜며 어떤 사항들에 대해 고려해야 할까?

    1. 해상도 수: 변환 정밀도 설정

    2. 샘플링 속도: ADC에서 초당 샘플링 횟수

    3. 변환 속도: 변환 과정의 응답 속도

    4. 노이즈 및 외곡: 변환 과정에서 생기는 오차 및 잡음

    5. 전력: 저전력 설계가 필요한 시스템

    '임베디드' 카테고리의 다른 글

    DMA  (0) 2026.04.24
    Havard & Neumann Architectures  (0) 2026.04.21
    I2C  (0) 2026.04.17
    Register Memory  (0) 2026.04.13
Designed by Tistory.