마이크로 프로세서 실험 II

-- AD/DA 변환 및 Speaker 구동 --

1. 실험 목적

이 실험의 목적은 ADC(Analog-to-Digital Convertor) 및 DAC(Digital-to-Analog	Convertor) 를 이용하여 실험을 행하여 봄으로서 AD/DA 변환의 개념 및 응용을 이해	하는 것이다.

2. 배경 이론

1) 실험의 개요

본 실험에서는 ADC 및 DAC 의 개념을 이해하고 실험 장치에 장착된 ADC 및	DAC 를 이용 여러 가지 응용 실험을 행한다. ADC 응용으로 0 볼트에서 5 볼트	까지의 아날로그 전압을 측정할수 있는  디지털 전압 측정기 프로그램을 작성해	본다. 또한 DAC 의 응용으로 DAC 의 한포트에 연결된 스피커를 이용 여러 가	지 음파를 발생시키는 실험을 행하고, 이를 이용 음악을 연주하는 실험을 행한	다.

각 key 별 특정한 음계를 내는 기능을 작성하여 실험자가 자유로 여러 음을 낼	수 있는 기능도 실험한다. 이때 key 입력은 실험 I 에서 타이머 인터럽트를 사용	한 key 입력 기능을 사용한다.

① DAC 의 일반적인 구성 및 기능

그림 1 은 일반적인 4bit DAC 의 구조이다. 출력전압 [eqn: V_out] 는 다음과 같은	식으로  계산되어 진다.

[eqn: V_out ~=~ - ( R^' over R b_3+ R^' over 2R b_2 + R^' over 4R b_1 + R^' over 8R b_0 ) V_ref ~=~ - (1 b_3 + 1 over 2 b_2 + 1 over 4 b_1+ 1 over 8 b_0) {R^' V_ref} over R]

< 그림 1. Digital-to-Analog Converter 회로 >

위의 회로를 정성 적으로 설명하면 다음과 같다. 이상적인 OP AMP 라고	가정을 하면 OP AMP 입력 단의 전압[eqn: V^+] 와 [eqn: V^-] 사이의 전압 차는 0 이	다. 이는 이상적인 OP AMP 의 전압이득이 무한대인데 출력이 유한이 되	기 때	문이다. 그러므로[eqn: V^-] 전압은 0 볼트이다. 또한 이상적인 OP AMP 의	두 입력단으로 입력되는 전류는 0 암페어 이다. 이는 이상적인 OP AMP	에서 두 입력단 사이에 걸리는 저항이 무한대이기 때문이다. 즉 저항이 무	한대면 [eqn: I = V over R] 에서 전류가 흐르지 못한다. 실제의 OP AMP 는 이상적인	OP AMP 와 같지는 않으나 그 특성이 매우 유사함으로 보통 이상적인 것	으로 놓고 해석한다.

입력된 디지털 데이터의 해당 bit 가 1이면 스위치는 닫히고 해당 bit 가 0	이면 스위치는 열린다. 그러므로 해당 bit 가 1 일 때 [eqn: V_ref] 전압에 의하여	해당 저항을 통하여 저항에 역비례하고 전압 ([eqn: V_ref]) 에 비례하는 전류가 흐	르게 된다. 저항으로 해당 bit 의 weight 를 조정해 주었음으로 OP AMP	입력단 ([eqn: V^-]) 에 인가되는 전류는 해당 bit 가 1 인 곳에 weight 를 곱한	전류들의 합이 된다. 이 전류는 OP AMP 입력단으로 흐를 수 없음으로 저	항 [eqn: R^']으로 흐르게 된다. 그러므로 출력단 전압은 입력 디지털 bit 에 비례	하는 전압이 생성된다.

② ADC 의 일반적인 구성 및 기능

그림 2 는 Successive-Approximation ADC 의 구조이다.

< 그림 2. Successive-Approximation ADC 의 구조>

Approximation ADC 에서는 위에서 설명한 DAC를 이용한다. 디지털로 바	꿀 아날로그 전압 [eqn: V_a] 가 비교기 (Comparator) 를 통하여 입력된다. 비교	기에 다른 단자에는 현재의 디지털 출력에 대한 아날로그 전압 값이 입력된	다. 만약 비교기에서  디지털로 바꿀 전압 [eqn: V_a] 가 더 크면 출력이 1 이되어	UP-DOWN counter 에 UP 하라는 신호가 입력되고 UP-DOWN counter	는 현재의 디지털 값에 1을 더한다. 1이 더해진 디지털 값은 DAC 를 통하	여 보다 증가된 전압을 생성하고 이것이 다시 비교기에 입력된다. 이 동작	은 DAC 의 출력 전압이 [eqn: V_a] 보다 커질 때까지 반복하게 되고, 만약 [eqn: V_a] 보	다 커지게 되면 비교기 출력이 0 이되어 counter 는 DOWN 을 하게된다.

그러므로 입력된 [eqn: V_a] 전압에 가장 근사한 DAC 출력 전압에서 머무르게 되	는데 이때의 counter 의 값이 디지털로 변환된 디지털 데이터가 된다.

2) 하드웨어 구성

① ADC (Analog-to-Digital Convertor)

본 실험세트에서 사용한 ADC 는 NS 사의 ADC0832 이다. ADC0832 에	대한 자세한 내용은 매뉴얼을 참고한다. 여기서는 본 실험 세트에 구성된	회로도를 설명하고 이를 근거로 하여 프로그램 작성 방법에 대하여 설명한	다.

그림 3. 은 ADC0832 의 하드웨어 구성을 나타낸다.

ADC0832 는 두채널의 아날로그 입력 핀이 있으므로 두 개의 아날로그 신	호 를 디지탈 신호로 바꿀수 있다. 그림 3에서 보는 것 처럼 두 개의 아날	로그신호는 실험세트의 왼쪽커넥터 6, 7번에 연결되어 있으므로 디지털로	전환 할 아날로그 신호를 이 두단자중 하나에 연결한다. 디지털로 바뀐 신	호는 직렬로 마이크로 프로세서로 전달되는데 이를 위하여 한 개의 데이터	핀 (DO) 이있다.  다른 한 개의 데이터 핀 (DI)은  채널 설정 및 모드 설정	을 위하여 사용된다.  ADC0832와의 인터페이스는 포트0 와 포트 1을 이용	한다. 포트0에 0, 1, 2 bit 는 각각 AD0832의 CS, CLK, DI 에 연결되어 있	다.

#CS(chip select) 는 해당 장치를 선택하는 핀으로서 logic 0을 출력함으