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

Slides:



Advertisements
Similar presentations
42 강 신호 변환 방식 5 과목 데이터통신 강사 이 민 욱. 42 강 신호 변환 방식  신호 변환 방식 1. 데이터와 신호 변환기 (1) 신호 변환기 ① Modem : 디지털 데이터 (Data) 를 아날로그 신호 (Signal) 로 변환시키는 장비로 PSTN( 공중.
Advertisements

컴퓨터와 인터넷.
재료수치해석 HW # 박재혁.
                                  9장 컴퓨터 기반 데이터 수집의 기초.
AVR 실습.
ATmega128의 A/D 컨버터 제어 Robotics_LAB 발표자 : 유 홍 선.
AVR - Chapter 11 황 지 연.
                                  8장 A/D 변환기 A/D Converter? A/D Converter 원리 Bit 수와 최대범위 및 해상도와의 관계.
신호조절*(Signal Conditioning)
                                  7장 D/A 변환기 D/A Converter? D/A Converter 원리 Bit 수와 최대범위 및 해상도와의 관계.
Chapter 13 기타 연산 증폭기회로.
UNIT 15 Timer & Watch Dog 로봇 SW 교육원 조용수.
아날로그 입력과 출력.
DC Motor Control Robotics_LAB 유 홍 선.
Digital Design with CPLD Applications and VHDL Chapter 12
10장 랜덤 디지털 신호처리 1.
디지털논리실습 기본 논리 게이트 부울대수 조합회로.
Multiplexer 설계.
실험 8. 연산증폭기 특성 목적 연산증폭기의 개관, 특성 및 사용법 이해 입력저항, 개루프 이득, 출력저항, 슬루레이트 등
전기공학실험 함수발생기 설계.
컴퓨터 계측 및 실습 D/A-converter
실험 3 - 비선형 연산 증폭기 회로와 능동 필터 전자전기컴퓨터공학부 방 기 영.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
5 장 부호화(Encoding) 5.1 디지털-대-디지털 5.2 아날로그-대-디지털 5.3 디지털-대-아날로그
디지털영상처리 및 실습 대구보건대학 방사선과.
실험1. 연산 증폭기 특성 전자전기컴퓨터공학부 방기영.
컴퓨터 계측 및 실습 D/A-converter
Chapter 14 특수 목적 연산 증폭기 회로.
컴퓨터 응용과 3학년 1반 조장 김영조 조원 구본건 , 임선택
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
“DC POWER SUPPLY의 소개”.
DK-128 ADC 실습 아이티즌 기술연구소
DK-128 ADC 실습 아이티즌 기술연구소
AVR - Chapter 12 황 지 연.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
4. LAN의 배선체계 (3장. LAN: Local Area Network)
PSW : PROGRAM STATUS WORD
ATmega128 FND 실습 휴먼네트웍스 기술연구소
ATmega128 기초와 응용 A/D 변환기.
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
8051기반의 음성 인식 프로세서 설계 Chang-Min Kim and Soo-Young Lee
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
DMX 통신선에 전원(24V) 연결 시 보호 회로 내장 ( 통신-IC 파괴되지 않음 )
플립플롭, 카운터, 레지스터 순서회로 플립플롭 카운터 레지스터.
DK-128 FND 실습 아이티즌 기술연구소
오브젝트 순서회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
483(W) x 88(H) x 260(D) / 19(W) x 3.5(H) x 10.2(D)
                                  11장 컴퓨터 기반 데이터 수집.
4 장 신호(Signals) 4.1 아날로그와 디지털(Analog and Digital)
논리회로 설계 및 실험 5주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
ARM Development Suite v1.2
아날로그-디지털 부호화(1/7) 아날로그 정보를 디지털 신호로 변환 아날로그-디지털 부호화 과정.
AVR - Chapter 3 황 지 연.
실험 10 OP Amp 연산회로.
Common Emitter Amp. 참고 문헌 : 전자회로 5판, Sedra/Smith - 5장의 내용을 중심으로 구성.
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
논리회로 설계 및 실험 4주차.
시리얼 UART 정리 정보통신•컴퓨터 공학부 송명규
AdcRead API 함수 분석 마이크로프로세서.
OP-AMP를 이용한 함수발생기 제작 안정훈 박선진 변규현
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
아날로그 신호를 디지털 신호로 변환하는 A/D 변환기 A/D 변환 시 고려하여 할 샘플링 주파수 D/A 변환기
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
디 코 더 n비트의 2진 코드를 입력으로 받아들여 최대 2n개의 서로 다른 정보로 바꿔 주는 조합 회로
Presentation transcript:

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

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

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

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

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

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

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

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

분해능

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

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

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

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

AD 컨버터

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

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

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

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

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

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

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

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) 결정

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)

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이면 프리런닝 모드 설정

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

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일 경우

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;//11000000 ADCSR=0xE6;//11101110 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

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