DAC: 숫자를 실제 전압과 전류로 바꾸는 회로의 조건
컴퓨터가 계산한 소리의 샘플이나 제어기의 목표값은 숫자다. 스피커, 증폭기, 실험 장비는 실제 전압과 전류를 받아야 움직인다. 디지털아날로그변환기, DAC는 디지털 코드에 대응하는 아날로그 양을 만들어 두 세계를 연결한다. 변환은 숫자를 전기로 번역하는 규칙과 그 규칙을 구현하는 소자들의 정확도가 함께 결정한다. 출력이 아날로그라는 사실이 무한히 많은 값을 마음대로 낼 수 있다는 뜻은 아니다.
코드와 기준 전압이 만드는 눈금
이상적인 단극성 N비트 DAC의 한 가지 일반적인 전달식은 Vout=Vref·k/2^N이다. k는 0부터 2^N−1까지의 정수 코드, Vref는 기준 전압이며 두 전압의 단위는 V다. 코드가 하나 증가할 때의 변화량인 1LSB는 Vref/2^N이다. 이 규칙을 쓰는 12비트, 2.5V DAC에서는 한 눈금이 약 0.610mV이고 코드 2048은 1.25V가 된다. 최대 코드 4095의 출력은 약 2.49939V로, 기준 전압보다 한 눈금 낮다. 실제 제품은 이득이나 오프셋, 양극성 범위에 따라 전달식이 달라지므로 최대 코드가 곧 전원 전압이라는 추정은 피해야 한다.
저항열 방식은 직렬로 연결한 저항의 중간 지점 중 하나를 스위치로 선택한다. 인접 코드를 올리면 선택 지점도 한 방향으로 이동하므로 단조성을 확보하기 쉽지만, 해상도가 증가할수록 필요한 지점 수가 빠르게 늘어난다. R–2R 사다리 방식은 두 종류의 저항값으로 각 비트의 가중치를 구현한다. 큰 저항비를 직접 만들지 않아도 되지만 저항의 비율 오차와 스위치 특성이 실제 정밀도를 제한한다. 빠른 DAC에는 가중 전류원을 출력 쪽으로 전환하는 방식도 사용한다.
해상도와 정확도는 다른 질문이다
해상도는 구별할 수 있는 코드의 개수이고, 정확도는 각 코드의 출력이 목표값에 얼마나 가까운지다. 기준 전압에 0.1%의 오차가 있으면 코드 2048의 목표 1.25V에도 약 1.25mV의 크기 오차가 생긴다. 이는 앞의 12비트 눈금 약 두 개에 해당한다. 비트 수를 늘려도 기준 전압의 오차가 자동으로 줄어들지 않는다. 오프셋 오차는 전달 곡선을 이동시키고, 이득 오차는 기울기를 바꾸며, 적분 비선형성 INL은 직선에서의 편차를 나타낸다.
미분 비선형성 DNL은 인접 코드 사이의 실제 변화가 이상적인 1LSB와 얼마나 다른지 설명한다. DNL이 −1LSB보다 작아지는 구간에서는 코드를 증가시켰는데 출력이 감소할 수 있다. 폐루프 제어에서는 이 현상이 제어 방향과 맞지 않는 반응을 만들 수 있어 단조성이 중요한 선택 기준이 된다. 단순히 데이터시트에 적힌 비트 수만 비교하면 이런 동작상의 차이를 놓친다.
코드를 바꾼 직후에는 아직 목표 전압이 아니다
0111에서 1000으로 넘어가는 것처럼 여러 스위치가 함께 바뀌는 전환에서는 스위치가 정확히 같은 순간에 움직이지 않아 짧은 글리치가 생길 수 있다. 이후 출력 버퍼와 부하가 응답하며 정착 시간이 지나야 지정 오차 범위에 들어온다. 갱신 주기가 1µs여도 원하는 정확도로 정착하는 데 그보다 오래 걸린다면 샘플마다 안정된 값을 얻기 어렵다. 전류 출력 DAC는 지정된 출력 전압 범위인 컴플라이언스도 지켜야 하며, 전압 출력 DAC에는 부하 전류와 용량성 부하의 제약이 있다.
파형을 만들 때 각 샘플을 다음 갱신까지 유지하면 출력은 계단 모양이 된다. 이 영차 유지 동작은 주파수 응답에 sinc 형태의 감소를 만들고, 샘플링 주파수 주변에 영상 성분을 만든다. 재구성 저역통과 필터는 원하는 대역을 남기면서 이런 성분을 줄인다. 다만 필터만으로 기준 전압의 드리프트나 비선형 왜곡까지 고칠 수는 없다. DAC를 이해하려면 코드 눈금, 기준 전압, 시간 응답, 출력 부하를 하나의 신호 경로로 함께 봐야 한다.