ATmega128의 ADC 활용

Download Report

Transcript ATmega128의 ADC 활용

ATmega128의 A/D 컨버터 제어
Robotics_LAB
발표자 : 유 홍 선
A/D 컨버터 제어
A/D 컨버터의 개요

A/D 컨버터란?

연속적인 신호인 아날로그 신호를 디지털 신호로 변
환하는 일을 하는 기계장치를 아날로그 디지털 변환
기(AD Convertor)라고 한다.
A/D 컨버터 제어
A/D 컨버터의 개요

A/D 컨버터의 특징








8채널
10비트 분해능
축차 비교형
내부 아날로그 멀티플렉서 탑재
샘플/홀드회로 탑재로 인하여 A/D 동작동안 전압
고정화
단극성 아날로그 입력/차동입력 선택
포트F는 아날로그 비교기 기능으로도 사용 가능
변환시간(13us~260us – 50KHz~200KHz)
A/D 컨버터 제어
A/D 컨버터의 개요

A/D 컨버터의 구성

범용 PORTF의 특수 기능


ADC 정확도 성능 향상을 위한 독립 전원 구성




AVCC : Analog Supply Voltage
AGND : Analog Ground(반드시 GND와 연결)
AREF : Analog Reference Voltage
입력 전압의 범위



ADC0 ~ 7 : 8채널 10Bit A/D컨버터의 아날로그 입력단자
일반 모드 입력전압의 범위(0V~Vref)
차동입력 모드 입력전압의 범위(-Vref ~ Vref)
Vref의 범위

전원전압 VCC를 초과할 수 없다.(VREF=VGND~VCC, 내부기준
전압 2.56V)
A/D 컨버터 제어
A/D 컨버터의 동작

레지스터의 사용

A/D 컨버터를 제어하기 위해서는 ADC 관련 레지스
터(ADMUX, ADCSRA, ADCH/L)의 사용법을 알아
야 한다.

ADMUX – 아날로그 입력 채널 선택, 기준전압 소스 선택,
변환결과 저장 형식을 지정하는 기능을 수행

ADCSRA – A/D 컨버터의 동작 설정 및 동작 상태를 표시

ADCH/L – ADC의 변환결과를 저장
A/D 컨버터 제어
A/D 컨버터의 동작

레지스터의 사용

ADMUX(ADC Multiplexer Selection Register)

Bit 7, 6 – REFS1~0(Reference Selection Register)

Bit 5 – ADLAR(ADC Left Adjust Result)
Bit 4~0 – MUX4~0(Analog Channel and Selection Bit)

A/D 컨버터 제어
A/D 컨버터의 동작

레지스터의 사용

ADCSRA(ADC Control and Status Register A)






Bit 7 – ADEN(ADC Enable)
Bit 6 – ADSR(ADC Start Conversion)
Bit 5 – ADFR(ADC Free Running Select)
 ADFR=1 : 프리런닝모드, ADFR=0 : 단일변환모드
Bit 4 – ADIF(ADC Interrupt Flag)
Bit 3 – ADIE(ADC Interrupt Enable)
Bit 2,1,0 – ADPS2~0(ADC Prescaler Select Bit)
A/D 컨버터 제어
A/D 컨버터의 동작

레지스터의 사용

ADCH/L(ADC Data Register)
A/D 컨버터 제어
A/D 컨버터의 동작
A/D 컨버터 초기화 설정
A/D 컨버터 스타트
(ADC 시작신호:ADSC)
A/D 변환
A/D 변환 완료
(변환값을 ADCH/L에 저장)
•
•
•
•
•
•
ADC
ADC
ADC
ADC
ADC
ADC
활성화(ADEN=1)
클럭설정(ADPS 2~0)
기준전압설정(REF 1~0)
A/D 변환 완료 인터럽트 요청
입력채널설정(MUX 4~0)
동작모드설정(ADFR)
변환 완료 인터럽트 활성화(ADIE)
ADC 상태플래그 셋
(AIDF = 1)
ADC 다음 동작 결정
(단일/연속동작)
A/D 컨버터 제어
A/D 컨버터의 동작

A/D 변환 오차

양자화 오차(Quantization error)



오프셋 오차(Offset error)





변환 결과가 이상적인 디지털 값에서 일정한 양만큼 벗어난 상태
대처방안 : 변환된 디지털 값에서 일정치 값을 더하거나 빼서 교정
이득 오차(Gain error)


아날로그 값을 디지털 값으로 변환하면서 생기는 변환의 한계
대처방안 : 분해능이 높은 ADC사용으로 극복
변환 결과가 이상적인 디지털 값에서 일정한 비율만큼 벗어난 상
태
대처방안 : 변환된 디지털 값에서 일정치 값을 곱하거나 나누어서
교정
비선형 오차(Integral non-linearity error)
차동 비선형 오차(Differential non-linearity error)
A/D 컨버터 제어

A/D 컨버터의 동작
잡음 제거 방법









AVCC = 독립적인 아날로그 회로 전원 단자
AREF = 기준 전원 입력 단자
AGND = 아날로그 회로 접지 단자
아날로그 입력은 최소한으로 짧게 하고 잡음의 영향이 없도록 회로
를 구성한다.
아날로그 전원단자 AVCC에 VCC를 인가할때는 LC필터를 거쳐 안
정화 시킨다.
아날로그 회로의 모든 접지는 AGND에 접지하여 한 포인트에서만
GND와 접속한다.
ADC 동작중에는 병렬 I/O포트의 논리상태를 스위칭하지 않는다.
잡음에 민감한 아날로그 소자의 ADC의 경우에는 ADC Noise
Reduction mode를 사용한다.
잡음이 심하여 결과값의 변동이 심하면 디지털 필터를 사용하거나
평균치를 구하여 사용한다.
A/D 컨버터 제어
A/D 컨버터의 예제
A/D 컨버터 제어
A/D 컨버터의 동작 결과
아날로그 비교기 제어
아날로그 비교기의 기본구조
아날로그 비교기 제어
아날로그 비교기의 레지스터 사용

Bit 3 – ACME(Analog Comparator Multiplexer Enable)

아날로그 비교기의 음극성 입력에 A/D컨버터의 입력 신호가
사용될 수 있도록 허용
아날로그 비교기 제어
아날로그 비교기의 레지스터 사용

Bit 7 – ACD (Analog Comparator Disable)


Bit 6 – ACBG (Analog Comparator Bandgap Select)





아날로그 비교기의 양극성 입력에 인가되는 전압을 선택
Bit 5 – ACO (Analog Comparator Output)


아날로그 비교기의 동작을 금지 시키는 비트
아날로그 비교기의 출력값으로서 클럭과 동기 되어 발생
Bit 4 – ACI (Analog Comparator Interrupt Flag)
Bit 3 – ACIE (Analog Comparator Interrupt Enable)
Bit 2 – ACIC (Analog Comparator Input Capture Enable)
Bit 1~0 – ACIS1~0 (Analog Comparator Interrupt Mode
Select)
아날로그 비교기 제어
아날로그 비교기의 예제
아날로그 비교기 제어
아날로그 비교기의 동작결과
http://cafe.naver.com/roboticslab.cafe