AVR - Chapter 12 황 지 연.

Slides:



Advertisements
Similar presentations
컴퓨터 계측 및 실습 개 요 영남대학교 기계공학부. PC 의 기본장치 PC 의 작동구조.
Advertisements

마이크로 시스템 1 선 덕 한선 덕 한 lecture7. LCD 구동. 마이크로 시스템 2 강의 목표 현재 디스플레이 장치로써 가장 널리 사용되어지는 LCD 을 프로세서 에서 어떻게 제어 하는지 알아본다.
KT-M128 Peripheral Device
마이크로콘트롤러 설계 – 4 Timer 실습 2 – T1, T3
( Foundation for Electronics System Design )
알기쉬운 경영학 Ch.12 중소기업의 경영과 창업 유한대학교.
KT-M128 Peripheral Device
이탈리아 피자스파게티올리브등.
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
SoC 로봇워 참가자 교육.
Analog to Digital Converter
Copyright SangSangDom, All Rights Reserved.
DISPLAY Block diagram BASE BOARD CPU BOARD DDR-3 1GB (256MB X 4) CPU
AVR 실습.
4. ADC 충북인력개발원 전자과 공학박사 강원찬.
임베디드 프로그래밍 Lecture #
EEG Amplifier 9조 : 하민욱 한성연 윤철한
ATmega128의 A/D 컨버터 제어 Robotics_LAB 발표자 : 유 홍 선.
다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴
리니어 스케일 김한수.
9장 가로채기(Interrupt) Slide 1 (of 15).
자동제어 개념2 1 1.
Project . A/D Converter AD Converter using for MOSFET 무한도전 팀명 : 무한도전
마이크로프로세서 메모리 및 입출력장치 인터페이스
2D 게임프로그래밍 프로젝트 2차 발표 유제원.
2013 스마트 컨트롤러 중간 프로젝트 김성엽 진종영 조유진
요한계시록 진행과정 장 차 될 일 천년왕국(20:4-6)/흰보좌(20:11-15) 20
기본 컴퓨터 프로그래밍 Lecture #6.
컬러 LED바 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 컬러 LED바 이해 및 프로그램 실습 응용 작품 만들기.
제어기술 소개 목표 : 제어기의 종류, 제어 방식 등을 살펴본다. 주요내용 제어기의 종류 제어방식 : 시퀀스, 피드백, 등.
Chapter 10 Differential Amplifiers
10장 주변장치 (PIO) Slide 1 (of 28).
DC Motor Control.
RnA DISPLAY 구동 Clcd 구동 Made by Bonobonobono.
Analog Signal 의 PWM 출력 By hyaoo.
 midi LOGGER GL220   신제품 소개 Dec, 2011.
논리의 표현 진법과 숫자 표현 2진수와 10진수 문자의 표현
아날로그 및 디지털 회로의 인터페이싱.
AVR - Chapter 13 황 지 연.
Arduino uno의 Hardware 구성부품의 종류와 그 용도.
AVR - Chapter 6 황 지 연.
AVR - Chapter 15 황 지 연.
UNIT 18 AD Converter Test 로봇 SW 교육원 조용수.
AVR - Chapter 2 황 지 연.
DK-128 ADC 실습 아이티즌 기술연구소
DK-128 ADC 실습 아이티즌 기술연구소
6장. LCD 사용하기.
ATmega128의 구조 및 TOOL의 이해 Robotics_LAB 발표자 : 유 홍 선.
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원
다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴
ATmega128 기초와 응용 A/D 변환기.
9. 아두이노를 이용한 FND 제어 - 스마트 폰으로 제어하는 아두이노 -.
ATmega128 기초와 응용 타이머/카운터.
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
제12주제 갈보리언덕에서 누가복음 23:33-49.
마이크로소프트 박종호.
AVR - Chapter 14 황 지 연.
프로젝트 진행내용.
발표: G2 박진수 사도요한 준비: G2 박진수 사도요한 T3 김택준 미카엘
耽羅國 建國神話 허남춘(제주대 국문학과 교수)
작동 원리 Keypad 박민호.
Applied Electronic Circuit
AdcRead API 함수 분석 마이크로프로세서.
ATMega128 타이머/카운터 A/D 컨버터.
실험 6. RLC Circuit.
Progress Seminar 양승만.
Progress Seminar 권치헌.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

AVR - Chapter 12 황 지 연

A/D 컨버터란? 연속적인 신호인 아날로그 신호를 부호화된 디지털 신호로 변환하는 일. 아날로그 디지털 변환을 수행하는 기계 장치를 아날로그 디지털 변환기(AD Convertor)라고 함. 이 장치는 온도, 압력, 음성, 영상 신호, 전압 등의 실생활에서 연속적으로 측정되는 신호를 컴퓨터에 입력하여 디지털화시키는 장치

A/D 컨버터 중 앙 처 리 장 치 아 날 로 그 장 치 A/D 변환기 D/A 변환기

A/D 컨버터의 특징 8채널 10비트 분해능 축차비교형(변환시간 수십us의 종속형 A/D Converor) 내부 아날로그 멀티플렉서 탑재 샘플/홀드회로 탑재로 인하여 A/D 동작동안 전압 고정화 단극성 아날로그 입력 / 차동입력 선택 차동입력에서 10배~200배의 증폭 A/D 가능 포트F는 아날로그 비교기 기능으로도 사용 가능 변환시간 (13us~260us - 50kHz~200kHz

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

A/D 컨버터의 구성 범용 PORTF의 특수 기능 입력 전압의 범위 Vref의 범위 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 Convertor 의 블록도

A/D 컨버터의 동작 단일변환모드(Single conversion mode) 프리런닝코드(Free running mode) ADC 동작을 한번만 수행하게 된다. 프리런닝코드(Free running mode) ADC 동작을 반복적으로 수행하게 된다 ① A/D 컨버터 초기화 설정 ADC 활성화 (ADEN=1) ADC 클럭설정 (ADPS 2~0) ADC 기준전압설정 (REF 1~0) ADC 입력채널설정 (MUX 4~0) ADC 동작모드설정 (ADFR) ADC 변환 완료 인터럽트 활성화 (ADIE)

A/D 컨버터의 동작 ② A/D 컨버터 스타트 ③ A/D 변환 ADC 시작신호 (ADSC) ADC 변환 결과 [단극성 입력] [차등입력]

A/D 컨버터의 동작 ④ A/D 변환 완료 ⑤ A/D 변환 완료 인터럽트 요청 ⑥ ADC 상태플래그 셋 ADC 변환이 완료되면 변환값을 ADCH/L 에 저장하게 된다. ⑤ A/D 변환 완료 인터럽트 요청 ADC Conversion Complete Interrupt 요청 ⑥ ADC 상태플래그 셋 AIDF = 1 ⑦ ADC 다음 동작 결정 단일/연속동작인지 구분하여 다음 동작 수행을 결정한다. (ADFR)

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

A/D 변환 오차 비선형 오차 (Integral non-linearity error) 변환 결과가 교정될 수 없는 상태 대처방안 없음 차동 비선형 오차 (Differential non-linearity error)

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

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

A/D Convertor 잡음 제거 방법

A/D 컨버터 관련 레지스터 ADMUX(ADC Multiplexer Selection Register Bit 7, 6 – REFS1, REFS0 (Reference Selection Bit) REFS1 REFS0 기준 접압 외부의 AREF 단자로 입력된 전압을 사용한다. 1 외부의 AVCC 단자로 입력된 전압을 사용한다. - 내부의 2.56V를 사용한다

A/D 컨버터 관련 레지스터 Bit 5 – ADLAR (ADC Left Adjust Result) ADLAR = 1 : 변환결과값을 ADCH/L에 저장할 때 좌측으로 끝을 맞추어 저장된다 Bit 4,3,2,1,0 – MUXn (Analog Channel and Gain Selection Bit

A/D 컨버터 관련 레지스터

A/D 컨버터 관련 레지스터 ADCSRA(ADC Control and Status Register Bit 7 – ADEN (ADC Enable) ADEN = 1 : ADC 활성화 Bit 6 – ADSC (ADC Start Conversion) ADSC = 1 : ADC의 변환이 시작된다. ( 단일 변환모드일떄 단 한번만 작동 / 프리런닝모드일떄 변환동작반복)

A/D 컨버터 관련 레지스터 Bit 5 – ADFR (ADC Free Running Select) Bit 4 – ADIF (ADC Interrupt Flag) ADC변환완료 인터럽트가 요청되고 그 상태를 이 비트에 표시한다. Bit 3 – ADIE (ADC Interrupt Enable) ADIE = 1 : ADC Interrupt 활성화

A/D 컨버터 관련 레지스터 Bit 2,1,0 – ADPS 2~0 (ADC Prescaler Select Bit)

A/D 컨버터 관련 레지스터 ADCH/L (ADC Data Register) ADC의 변환결과를 저장한다 ADLAR = 0

A/D 컨버터 관련 레지스터 ADLAR = 1

ADC 실습

ADC 실습

ADC 실습

ADC 실습

ADC 실습

ADC 실습 가변 저항

ADC 실습 가변 저항 void main(){ volatile unsigned int ch0,ah0,al0; init_devices(); ktm128_init(); while(1){ ADCSRA &= 0x7f; ADMUX = 0x40; ADCSRA |= 0xC0; al0 = ADCL; ah0 = ADCH; ch0 += al0+ah0*256; printf("data : %d\r\n", ch0); delay(500); ch0 = 0; } }

ADC 실습 적외선 센서

ADC 실습 적외선 센서 void main(){ volatile unsigned int ch0,ah0,al0; init_devices(); ktm128_init(); while(1){ ADCSRA &= 0x7f; ADMUX = 0x41; ADCSRA |= 0xC0; al0 = ADCL; ah0 = ADCH; ch0 += al0+ah0*256; printf("data : %d\r\n", ch0); delay(500); ch0 = 0; } }

ADC 실습 온도 센서

ADC 실습 온도 센서 void main(){ volatile unsigned int ch0,ah0,al0; init_devices(); ktm128_init(); while(1){ ADCSRA &= 0x7f; ADMUX = 0x42; ADCSRA |= 0xC0; al0 = ADCL; ah0 = ADCH; ch0 += al0+ah0*256; printf("data : %d\r\n", ch0); delay(500); ch0 = 0; } }

ADC 실습 조도 센서

ADC 실습 조도 센서 void main(){ volatile unsigned int ch0,ah0,al0; init_devices(); ktm128_init(); while(1){ ADCSRA &= 0x7f; ADMUX = 0x43; ADCSRA |= 0xC0; al0 = ADCL; ah0 = ADCH; ch0 += al0+ah0*256; printf("data : %d\r\n", ch0); delay(500); ch0 = 0; } }

문제 각 센서(4개) 값을 터미널을 이용하여 출력 할 수 있도록 만드시오. 센서 값 중 조도 센서 값을 FND를 통하여 출력 할 수 있도록 만드시오.

문제 도트 매트릭스에 가변저항에 따라 점등의 높이가 틀려지도록 만드시오. 가변저항이 낮으면 도트매트릭스의 점등이 올라간다. 새로 생긴 데이터는 왼쪽에 둔다. 최소값 : 0 최대값 : 1023 각 칸의 간격은 timer를 이용하여 1초에 한번씩 갱신한다.