Presentation is loading. Please wait.

Presentation is loading. Please wait.

ATMega128 타이머/카운터 A/D 컨버터.

Similar presentations


Presentation on theme: "ATMega128 타이머/카운터 A/D 컨버터."— Presentation transcript:

1 ATMega128 타이머/카운터 A/D 컨버터

2 A/D 변환이란? 연속적인 신호인 아날로그 신호를 부호화된 디지털 신호로 변환하는 일
아날로그 신호를 마이크로프로세서에서 인식할 수 있도록 변환해주는 장치 이 장치는 온도, 압력, 음성, 영상 신호, 전압 등의 실생활에서 연속적으로 측정되는 신호를 컴퓨터에 입력하여 디지털화시키는 장치

3 A/D 변환 과정 전처리 : 아날로그 신호에 포함된 잡음을 제거하고 신호의 대역폭을 제한하여 엘리어싱(aliasing)을 줄임
표본화 : 신호 대역폭 두 배 이상의 일정한 샘플링(sampling)주파수에 따라 신호값을 취함 양자화 : 표본화된 아날로그 신호를 2진화 부호화 : 양자화된 값에 2진 디지털 코드를 부여

4 ATmega128 A/D 컨버터의 특징 8채널 10비트 분해능 내부 아날로그 멀티플렉서 탑재
여러 개의 아날로그 입력 신호 중 하나를 선택하여 출력하는 선택 샘플/홀드회로 탑재로 인하여 A/D 동작동안 전압 고정화 8개의 단극성 입력 채널 22개의 차동 입력 포트F는 아날로그 비교기 기능으로도 사용 가능 변환시간 (13us~260us - 50kHz~200kHz)

5 ATmega128 A/D 컨버터 ADC 데이터 레지스터, DAC(Digital to Analog Converter), 샘플 & 홀드, 아날로그 비교기가 결합된 연속 근사 A/D 변환 방식 블록도 MSB부터 LSB까지 한 비트씩 값을 결정

6 차동입력 차동 : 위상이 서로 반대인것 AD변환 시 단일 입력이 아닌 두 신호간의 전압차를 입력하는 방식 잡음에 강함
예 : 사인파에서 한쪽 출력의 파형이 올라갈 때 다른 한쪽의 파형이 내려가는 것, 이 때 두 데이터에 노이즈가 들어왔다고 가정함. 이 신호를 받는 것이 차동입력 차동입력에 대한 출력은 두 위상의 차만 꺼냄 AD변환 시 단일 입력이 아닌 두 신호간의 전압차를 입력하는 방식 잡음에 강함 두 신호선에 공통으로 나타나는 잡음은 제거되기 때문 잡음이 서로 다른 경우엔 잡음을 제거하지 못함

7 차동입력 차동입력을 하는 경우 아날로그 입력 전압과 변환 결과의 관계

8 분해능 마이컴에서 분해능이란 보통 AD 컨버터에서 주로 사용되는 용어.
외부에서 아날로그 신호가 들어 오게 되면 sin파가 입력되게 됨. 예를 들어 이 아날로그 신호가 어떻게 변화가 되는지를 1초에 한번씩 체크하는 것과 0.1초마다 체크하는 것, 그리고 0.01 초마다 체크 하는 것은 다름. 얼마나 세밀하게 체크를 하는가는 얼마나 "분해"를 하는 것인가와 의미가 같음. 좀더 세밀하게 체크할 수 있다면 보다 정확한 데이터를 구할 수 있음

9 분해능

10 Sample & Hold 아날로그 전압 신호는 시간 축과 전압축에 대해 연속적인 값을 가지는 반면 디지털은 이산화된 시간축에 이산화된 전압값을 가짐 이산화 : 시간을 일정한 간격으로 나누어서 각 쪼개진 시간마다의 크기를 재는 것 ADC의 기본 원리 짧은 시간동안 입력 전압을 Sample & Hold(샘플 앤 홀드)에 충전한 후 이 전압값을 특정 전압과 비교해서 그 전압도가 값이 큰지 아닌지를 비교하는 것 Sample & Hold A/D 변환 처리기간 중에 샘플링 값이 변하면 안되므로 다음 샘플이 얻어질 때까지 샘플 값을 일정하게 유지하는 것 연속적으로 변하는 아날로그 신호를 샘플링하고, 홀드하는 역할을 함 Sampling(샘플링, 표본화) : 연속된 아날로그 신호를 정해진 시간 간격(sampling time, 샘플링 주기)으로 나누고, 주기의 순시값을 추출하여 샘플(sample, 표본)을 만드는 것. 아날로그 신호를 디지털 신호로 변환 할 때 사용됨

11 변환시간 변환시간 또는 샘플링 속도 한번 A/D 변환을 수행하는데 필요한 시간을 변환시간(conversion time)이라고 하며, 이는 초당 샘플링 속도(sampling rate)로 나타냄 A/D 컨버터는 응용목적에 따라 적절한 변환시간을 갖는 모델을 선정해야 함 예를 들어 디지털로 음성이나 영상 신호처리를 하는 시스템에서는 고속형이 사용, 온도나 수위측정에 사용되는 것은 변환시간이 늦은 모델도 무방함

12 A/D 컨버터 가장 중요한 파라미터는 샘플링 속도와 분해능(ADC의 비트)
분해능은 전압을 얼마나 자세하게 나누어 디지털화 할 것인가를 결정함 샘플링 속도는 입력 신호를 시간 축에 대해 얼마나 자세히 나누어 디지털화할 것인가를 결정함 샘플링 주파수가 증가하면 시간축의 분해능이 높아지고, ADC 비트수가 증가하면 신호 전압축의 분해능이 좋아짐

13

14 A/D 컨버터의 구성 범용 PORTF의 특수 기능 입력 전압의 범위
ADC0 ~ ADC7 : 8채널 10비트 A/D 컨버터의 아날로그 입력단자 ADC 정확도 성능 향상을 위한 독립 전원 구성 AVCC : Analog Supply Voltage(VCC의 전압의 ±0.3V 유지해야함) AGND : Analog Ground (반드시 GND와 연결) AREF : Analog Reference Voltage 입력 전압의 범위 일반 모드 입력전압의 범위(0V ~ Vref) 차동입력 모드 입력전압의 범위(-Vref ~ Vref) Vref의 범위 전원전압 VCC를 초과할 수 없다.(VREF=VGND~VCC, 내부기준전압2.56V

15 AD 컨버터

16 A/D 변환 오차 양자화 오차 (Quantization error) 오프셋 오차 (Offset error)
아날로그 값을 디지털 값으로 변환하면서 생기는 변환의 한계 대처방안 : 분해능이 높은 ADC사용으로 극복 오프셋 오차 (Offset error) 변환 결과가 이상적인 디지털 값에서 일정한 양만큼 벗어난 상태 대처방안 : 변환된 디지털 값에 일정치 값을 더하거나 빼서 소프트웨어적으로 쉽게 보정 가능

17 A/D 변환 오차 이득 오차 (Gain error) 변환 결과가 이상적인 디지털 값에서 일정한 비율만큼 벗어난 상태
대처방안 : 변환된 디지털 값에 일정치 값을 곱하거나 나누어서 교정함

18 A/D 변환 오차 비선형 오차 (Integral non-linearity error)
오프셋이나 이득 오차를 보상한 후에 디지털 값이 이상적인 경우에서 크게 벗어난 것 보정하기 어려움

19 A/D 변환 오차 차동 비선형 오차 (Differential non-linearity error)
1비트의 변화를 발생하는 아날로그 값이 이상적인 경우에서 크게 벗어난 것 보정하기 어려움

20 A/D 컨버터 잡음 제거 방법 A/D Convertor의 경우에는 노이즈에 매우 민감하기 때문에 ATmega128 내에서도 AVCC, AREF, AGND와 같은 ADC 전원 구성도 따로 하였으며 사용자 또한 몇 가지 사항을 주의하여 사용해야 함 AVCC = 독립적인 아날로그 회로 전원 단자 AREF = 기준 전원 입력 단자 AGND = 아날로그 회로 접지 단자

21 A/D 컨버터잡음 제거 방법 아날로그 입력선은 최소한으로 짧게 하고 잡음의 영향이 없도록 회로를 구성함
아날로그 전원단자 AVCC에 VCC를 인가할 때는 LC필터를 거쳐 안정화 시킴 아날로그 회로의 모든 접지는 AGND에 접지하여 한 포인트에서만GND와 접속함 ADC 동작중에는 병렬 I/O 포트의 논리상태를 스위칭하지 않음 잡음에 민감한 아날로그 소자의 ADC의 경우에는 Adc Noise Reduction mode를 사용함 잡음이 심하여 결과 값의 변동이 심한 경우, 디지털 필터를 사용하거나 평균치를 구하여 사용함

22 ATmega128의 A/D 컨버터 관련 레지스터 ADMUX ADC의 입력 채널 선택 및 기준전압 선택 등 ADCSRA
ADCH ADC의 변환 결과를 저장하는 상위 레지스터 ADCL ADC의 변환 결과를 저장하는 하위 레지스터

23 ATmega128의 A/D 컨버터 관련 레지스터 -ADMUX(ADC Multiplexer Selection)
bit 7 6 5 4 3 2 1 ADMUX REFS 1 REFS 0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 A/D 컨버터의 입력 채널과 기준 전압을 선택하거나, A/D변환 결과를 저장하는 레지스터의 데이터 저장 형식을 지정하는 기능 REFS1-0 (REFerence Selection Bit1-0): A/D 컨버터의 기준 전압을 선택, 00: 외부 AREF단자의 입력 전압을 사용, 01 : 외부 AVCC 단자의 입력 전압을 사용, 11: 내부의 2.56V를 사용 ADLAR(ADC Left Adjust Result) : 데이터의 저장을 좌측으로 할지 우측으로 할지 결정, 16비트 중 상위 10비트를 쓸 것(ADLAR=1)인지, 하위 10비트를 쓸 것인지 (ADLAR=0) 결정

24 ATmega128의 A/D 컨버터 관련 레지스터 -ADMUX(ADC Multiplexer Selection)
Positive Differential Input Negative Differential Input Gain 01000 ADC0 10x 01001 ADC1 01010 200x 01011 01100 ADC2 01101 ADC3 01110 01111 10000 1x 10001 10010 10011 10100 ADC4 10101 ADC5 10110 ADC6 10111 ADC7 11000 11001 11010 11011 11100 11101 MUX 4~0 Single Ended Input 00000 ADC0 00001 ADC1 00010 ADC2 00011 ADC3 00100 ADC4 00101 ADC5 00110 ADC6 00111 ADC7 11110 1.22V(VBG) 11111 0V(GND)

25 ATmega128의 A/D 컨버터 관련 레지스터 -ADCSRA (ADC Control and Status Register A)
bit 7 6 5 4 3 2 1 ADCSRA ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0 A/D 컨버터의 동작을 설정하거나 동작 상태를 표시하는 기능 ADEN(ADC Enable) : AD 컨버터가 1이면 동작하고 0이면 동작되지 않는다. ADSC(ADC Start Conversion) : 1로 설정하면 A/D 컨버터의 변환이 시작, 프리런닝 모드에서는 1로 설정하면 변환 개시 후 자동적으로 반복하고, 변환이 완료되면 자동적으로 0이 된다. ADFR(ADC Free Running mode) : 1이면 프리런닝 모드 설정

26 ATmega128의 A/D 컨버터 관련 레지스터 -ADCSRA (ADC Control and Status Register A)
bit 7 6 5 4 3 2 1 ADCSRA ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0 ADIF(ADC Interrupt Flag) : A/D 변환이 완료되어 ADC 데이터 레지스터 값이 갱신되고 나면 1로 되면서 A/D 변환 완료 인터럽트를 요청, ADIE=1로 설정되어 있으면 인터럽트 발생 ADIE(ADC Interrupt Enable) : A/D 변환완료 인터럽트를 개별적으로 허용 ADPS2-0(ADC Prescaler Select Bit) : AD 컨버터의 분주비 선택, A/D변화을 수행하는 데 일정한 수의 클럭 주기가 소요되므로 시스템 클럭을 나누는 분주비에 따라 변환시간이 바뀐다. ADPS2 ADPS1 ADPS0 분주비 2 1 4 8 ADPS2 ADPS1 ADPS0 분주비 1 16 32 64 128

27 ATmega128의 A/D 컨버터 관련 레지스터 -ADCH, ADCL (ADC data Register H-L)
bit 7 6 5 4 3 2 1 ADCH - ADC9 ADC8 ADCL ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 ADMUX의 ADLAR값이 0일 경우 bit 7 6 5 4 3 2 1 ADCH ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADCL ADC1 ADC0 - ADMUX의 ADLAR 값이 1일 경우

28 ATmega128의 A/D 컨버터 관련 레지스터 -예제
다음과 같이 셋팅하려고 한다. ADMUX, ADCSR를 설정하시오. 1) 기준전압은 내부의 2.56v를 사용 2) 데이터를 ADCH와 ADCL에 우정렬 3) ADC0 핀을 단극성 입력으로 사용 4) ADC 활성화 5) ADC변환은 시작 6) 프리러닝 모드 7) A/D 변환완료 인터럽트를 개별적으로 허용 8) 64분주 정답 ADMUX=0xC0;// ADCSR=0xE6;// bit 7 6 5 4 3 2 1 ADMUX REFS 1 REFS 0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 ADCSRA ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0

29 ATmega128의 A/D 컨버터 관련 레지스터 -예제
다음과 같이 셋팅하려고 한다. ADMUX, ADCSR를 설정하시오. 1) 기준전압은 외부 AVCC 단자의 입력 전압을 사용 2) 데이터를 ADCH와 ADCL에 좌정렬 3) ADC7 핀을 단극성 입력으로 사용 4) ADC 활성화 5) ADC변환은 시작 6) 프리러닝 모드 아님 7) A/D 변환완료 인터럽트를 개별적으로 허용 8) 128분주 정답 ADMUX=0x67;// ADCSR=0xCF;// bit 7 6 5 4 3 2 1 ADMUX REFS 1 REFS 0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 ADCSRA ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0


Download ppt "ATMega128 타이머/카운터 A/D 컨버터."

Similar presentations


Ads by Google