SlideShare a Scribd company logo
1 of 10
Download to read offline
X[deca] AVR study
Konkuk University. Department of Electronic Engineering
V0.1 by 08기 김정목
Page § 2
Contents
Contents
1 ADC
Page § 3
ADC
Analog
- 전압이나 전류처럼 연속적으로 변하는 물리량을 표현함
- Sequential / Infinite
Digital
- 임의의 시간에서 값이 최소값의 정수배를 가지며, 그 외의 중간값을 가지지 않는 양을 가르킴
- Discrete / Finite
Page § 4
ADC
ADC(Analog to Digital Converter)
- 아날로그 신호를 디지털 신호로 바꾸는 변환기
ADC in Atmega128
1) operation
- Analog voltage input을 10-bit digital value로 변환 (10-bit Resolution)
2) Reference voltage
- V_REF(Reference voltage) ADC의 변화 범위를 나타냄
- V_REF는 AREF / AVCC / internal 2.56(V) 중에 선택 가능
- 최대값 : Voltage(in AREF) – 1LSB / 최소값 : GND
- AREF와 GND 사이에 capacitor를 연결해서 V_REF의 노이즈 감소
3) Conversion Result
- ADC = (V_IN * 1024) / V_REF
Page § 5
ADC
1. ADMUX – ADC Multiplexer Selection Register
1) REFS[1:0] : Reference Selection Bits
ADC에 대한 Voltage reference를 선택한다.
Page § 6
ADC
2) ADLAR : ADC Left Adjust Result
- ADC data register에 저장된 ADC 변환 값의 표현에 영향을 준다.
- ADC 변환 값은 10bit이고 두 개의 8-bit register(ADCH/ADCL)에 표현 하기 때문에 필요
Page § 7
ADC
3) MUX[4:0] : Analog Channel and Gain Selection bit
- Singled ended input channel 선택
Page § 8
ADC
2. ADCSRA – ADC Control and Status Register A
1) ADEN : ADC Enable
ADEN=1 이면 ADC 사용가능 / ADEN=0 이면 ADC 사용불가
2) ADSC : ADC Start Conversion
Single Conversion Mode 에서 ADSC=1 이면 ADC conversion을 시작
3) ADFR : ADC Free Running Select
ADFR=1 이면 free running mode
해당 mode에서는 지속적으로 sampling하고 ADC data register를 업데이트 한다.
4) ADIF : ADC Interrupt Flag
ADC conversion이 끝나고 ADC data register가 업데이트 되면 ADIF가 1(set)이 된다.
5) ADIE : ADC Interrupt Enable
ADIE=1 이면 ADC interrupt를 사용가능하게 한다.
Page § 9
ADC
2) ADPS[2:0] : ADC Prescaler Selection
XTAL frequency와 ADC input clock 사이의 division factor 선택
Page § 10
ADC
#include<avr/io.h>
#include<util/delay.h>
int main(void) {
float result=0;
DDRA = 0xFF;
DDRF = 0x00;
ADMUX = 0x00;
ADCSRA = 0x86;
while(1) {
ADCSRA |= 0x40;
while((ADCSRA&0x10) != 0x10);
result = ADC / 1024.0 * 5;
if(result<0.5) PORTA=0x00;
else if(result<1.5) PORTA=0x01;
else if(result<2.5) PORTA=0x02;
else if(result<3.5) PORTA=0x04;
else if(result<4.5) PORTA=0x08;
else PORTA=0x10;
_delay_ms(50);
}
return 0;
}
R15
RESISTOR VAR
VCC
0
R16
100
C1
105
0
PF0(ADC0)
VCC
C8
0.1uF
0
AREF

More Related Content

Viewers also liked

2013 mcu( 마이크로컨트롤러 ) 수업자료 6
2013 mcu( 마이크로컨트롤러 ) 수업자료 62013 mcu( 마이크로컨트롤러 ) 수업자료 6
2013 mcu( 마이크로컨트롤러 ) 수업자료 6진우 김
 
2013 mcu( 마이크로컨트롤러 ) 수업자료 5
2013 mcu( 마이크로컨트롤러 ) 수업자료 52013 mcu( 마이크로컨트롤러 ) 수업자료 5
2013 mcu( 마이크로컨트롤러 ) 수업자료 5진우 김
 
2013 MCU( 마이크로컨트롤러 ) 수업자료 1
2013 MCU( 마이크로컨트롤러 ) 수업자료 12013 MCU( 마이크로컨트롤러 ) 수업자료 1
2013 MCU( 마이크로컨트롤러 ) 수업자료 1진우 김
 
AVR 기초와 응용 강의노트(최한호)
AVR 기초와 응용 강의노트(최한호)AVR 기초와 응용 강의노트(최한호)
AVR 기초와 응용 강의노트(최한호)활 김
 
02. led switch
02. led switch02. led switch
02. led switch성호 정
 
노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splattingdrandom
 
Relay and AVR Atmel Atmega 16
Relay and AVR Atmel Atmega 16Relay and AVR Atmel Atmega 16
Relay and AVR Atmel Atmega 16Robo India
 
X[deca] 9월 개강총회
X[deca] 9월 개강총회X[deca] 9월 개강총회
X[deca] 9월 개강총회성호 정
 

Viewers also liked (8)

2013 mcu( 마이크로컨트롤러 ) 수업자료 6
2013 mcu( 마이크로컨트롤러 ) 수업자료 62013 mcu( 마이크로컨트롤러 ) 수업자료 6
2013 mcu( 마이크로컨트롤러 ) 수업자료 6
 
2013 mcu( 마이크로컨트롤러 ) 수업자료 5
2013 mcu( 마이크로컨트롤러 ) 수업자료 52013 mcu( 마이크로컨트롤러 ) 수업자료 5
2013 mcu( 마이크로컨트롤러 ) 수업자료 5
 
2013 MCU( 마이크로컨트롤러 ) 수업자료 1
2013 MCU( 마이크로컨트롤러 ) 수업자료 12013 MCU( 마이크로컨트롤러 ) 수업자료 1
2013 MCU( 마이크로컨트롤러 ) 수업자료 1
 
AVR 기초와 응용 강의노트(최한호)
AVR 기초와 응용 강의노트(최한호)AVR 기초와 응용 강의노트(최한호)
AVR 기초와 응용 강의노트(최한호)
 
02. led switch
02. led switch02. led switch
02. led switch
 
노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splatting
 
Relay and AVR Atmel Atmega 16
Relay and AVR Atmel Atmega 16Relay and AVR Atmel Atmega 16
Relay and AVR Atmel Atmega 16
 
X[deca] 9월 개강총회
X[deca] 9월 개강총회X[deca] 9월 개강총회
X[deca] 9월 개강총회
 

Similar to 06. ADC

2013 mcu( 마이크로컨트롤러 ) 수업자료 3
2013 mcu( 마이크로컨트롤러 ) 수업자료 32013 mcu( 마이크로컨트롤러 ) 수업자료 3
2013 mcu( 마이크로컨트롤러 ) 수업자료 3진우 김
 
광운대[바람] 1.vhdl intro
광운대[바람] 1.vhdl intro광운대[바람] 1.vhdl intro
광운대[바람] 1.vhdl introNAVER D2
 
Maze통신교육 i2c
Maze통신교육   i2cMaze통신교육   i2c
Maze통신교육 i2cgeonhee kim
 

Similar to 06. ADC (6)

Avr lecture4
Avr lecture4Avr lecture4
Avr lecture4
 
Make: 센서
Make: 센서Make: 센서
Make: 센서
 
2013 mcu( 마이크로컨트롤러 ) 수업자료 3
2013 mcu( 마이크로컨트롤러 ) 수업자료 32013 mcu( 마이크로컨트롤러 ) 수업자료 3
2013 mcu( 마이크로컨트롤러 ) 수업자료 3
 
광운대[바람] 1.vhdl intro
광운대[바람] 1.vhdl intro광운대[바람] 1.vhdl intro
광운대[바람] 1.vhdl intro
 
Maze통신교육 i2c
Maze통신교육   i2cMaze통신교육   i2c
Maze통신교육 i2c
 
Avr lecture2
Avr lecture2Avr lecture2
Avr lecture2
 

06. ADC

  • 1. X[deca] AVR study Konkuk University. Department of Electronic Engineering V0.1 by 08기 김정목
  • 3. Page § 3 ADC Analog - 전압이나 전류처럼 연속적으로 변하는 물리량을 표현함 - Sequential / Infinite Digital - 임의의 시간에서 값이 최소값의 정수배를 가지며, 그 외의 중간값을 가지지 않는 양을 가르킴 - Discrete / Finite
  • 4. Page § 4 ADC ADC(Analog to Digital Converter) - 아날로그 신호를 디지털 신호로 바꾸는 변환기 ADC in Atmega128 1) operation - Analog voltage input을 10-bit digital value로 변환 (10-bit Resolution) 2) Reference voltage - V_REF(Reference voltage) ADC의 변화 범위를 나타냄 - V_REF는 AREF / AVCC / internal 2.56(V) 중에 선택 가능 - 최대값 : Voltage(in AREF) – 1LSB / 최소값 : GND - AREF와 GND 사이에 capacitor를 연결해서 V_REF의 노이즈 감소 3) Conversion Result - ADC = (V_IN * 1024) / V_REF
  • 5. Page § 5 ADC 1. ADMUX – ADC Multiplexer Selection Register 1) REFS[1:0] : Reference Selection Bits ADC에 대한 Voltage reference를 선택한다.
  • 6. Page § 6 ADC 2) ADLAR : ADC Left Adjust Result - ADC data register에 저장된 ADC 변환 값의 표현에 영향을 준다. - ADC 변환 값은 10bit이고 두 개의 8-bit register(ADCH/ADCL)에 표현 하기 때문에 필요
  • 7. Page § 7 ADC 3) MUX[4:0] : Analog Channel and Gain Selection bit - Singled ended input channel 선택
  • 8. Page § 8 ADC 2. ADCSRA – ADC Control and Status Register A 1) ADEN : ADC Enable ADEN=1 이면 ADC 사용가능 / ADEN=0 이면 ADC 사용불가 2) ADSC : ADC Start Conversion Single Conversion Mode 에서 ADSC=1 이면 ADC conversion을 시작 3) ADFR : ADC Free Running Select ADFR=1 이면 free running mode 해당 mode에서는 지속적으로 sampling하고 ADC data register를 업데이트 한다. 4) ADIF : ADC Interrupt Flag ADC conversion이 끝나고 ADC data register가 업데이트 되면 ADIF가 1(set)이 된다. 5) ADIE : ADC Interrupt Enable ADIE=1 이면 ADC interrupt를 사용가능하게 한다.
  • 9. Page § 9 ADC 2) ADPS[2:0] : ADC Prescaler Selection XTAL frequency와 ADC input clock 사이의 division factor 선택
  • 10. Page § 10 ADC #include<avr/io.h> #include<util/delay.h> int main(void) { float result=0; DDRA = 0xFF; DDRF = 0x00; ADMUX = 0x00; ADCSRA = 0x86; while(1) { ADCSRA |= 0x40; while((ADCSRA&0x10) != 0x10); result = ADC / 1024.0 * 5; if(result<0.5) PORTA=0x00; else if(result<1.5) PORTA=0x01; else if(result<2.5) PORTA=0x02; else if(result<3.5) PORTA=0x04; else if(result<4.5) PORTA=0x08; else PORTA=0x10; _delay_ms(50); } return 0; } R15 RESISTOR VAR VCC 0 R16 100 C1 105 0 PF0(ADC0) VCC C8 0.1uF 0 AREF