ATmega ADC 관련 레지스터

글 내용

ADC 관련 레지스터.

ADMUX(ADC Multiplexer Selection Register)

Bit

7

6

5

4

3

2

1

0

 

REFS1

REFS0

ADLAR

MUX4

MUX3

MUX2

MUX1

MUX0

Read/Write

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Initial Value

0

0

0

0

0

0

0

0


▶Bit 7:6-REFS1:0 ( Reference Selection Bits)
 
ADC에서 사용하는 기준전압을 선택한다.

REFS1

REFS0

기준전압

0

0

외부의 AREF 단자로 입력된 전압 사용

0

1

외부의 AVCC 단자로 입력된 전압 사용

1

0

Reserved

1

1

내부의 기준전압 2.56V 사용

 
▶Bit 5-ADLAR(ADC Left Adjust Result)
 
변환 결과가 ADC 레지스터에 저장될 때 정렬 방식을 설정하는 데 사용된다. 0일 때 10비트 ADC값을 오른쪽 정렬, 1일 때 왼쪽정렬.


▶Bit 4~0-MUX4:0-(Analog Channel and Gain Selection Bits)
 
ADC의 아날로그 입력 채널 및 이득을 선택한다.

MUX4~0

단극성 입력

차동입력

+단자

-단자

이득

00000

ADC0

 

00001

ADC1

00010

ADC2

00011

ADC3

00100

ADC4

00101

ADC5

00110

ADC6

00111

ADC7

01000

 

ADC0

ADC0

10X

01001

ADC1

ADC0

10X

01010

ADC0

ADC0

200X

01011

ADC1

ADC0

200X

01100

ADC2

ADC2

10X

01101

ADC3

ADC2

10X

01110

ADC2

ADC2

200X

01111

ADC3

ADC2

200X

10000

ADC0

ADC1

1X

10001

ADC1

ADC1

1X

10010

ADC2

ADC1

1X

10011

ADC3

ADC1

1X

10100

ADC4

ADC1

1X

10101

ADC5

ADC1

1X

10110

ADC6

ADC1

1X

10111

ADC7

ADC1

1X

11000

ADC0

ADC2

1X

11001

ADC1

ADC2

1X

11010

ADC2

ADC2

1X

11011

ADC3

ADC2

1X

11100

ADC4

ADC2

1X

11101

ADC5

ADC2

1X

11110

1.23V

 

11111

0V(GND)

 

ADCSRA(ADC Control and Status Register A)레지스터
 
ADCSRA레지스터는 ADC의 동작을 설정하거나 동작 상태를 표시하는 기능을 수행한다.

Bit

7

6

5

4

3

2

1

0

 

ADEN

ADSC

ADFR

ADIF

ADIE

ADPS2

ADPS1

ADPS0

Read/Write

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Initial Value

0

0

0

0

0

0

0

0

Bit 7 - ADEN (ADC Enable)
 
1일 때 ADC enable, 0일 때 ADC turn off.


▶Bit 6 - ADSC (ADC Start Convertion)
 
1일 때 단일 변환 모드(Single Conversion Mode)에서 A/D 변환을 시작, 0일 때 A/D 변환이 완료되면 하드웨어적으로 0이 됨.


▶Bit 5 - ADFR (ADC Free Running Selection)
 
1일 때 프리런니옴드. ADC 는 연속적으로 데이터 레지스터를 샘플링하고 업데이트함. 0일 때 프리런닝모드 종료.


▶Bit 4 - ADIF(ADC Interrupt Flag)
 
1일 때 ADC 변환이 완료되고 데이터 레지스터가 업데이트 되면 1이 됨. ADIE 비트가 1이고 SREG 레지스터의 I-비트가 1이면 ADC 변환종료 인터럽트가 수행됨. 0일 때 인터럽트 벡터가 수행되면 하드웨어적으로 0이 됨.또는 논리 1을 써주면 0이 됨.


▶Bit 3 - ADIE(ADC Interrupt Enable)
 
1일 때 SREG 레지스터의 I-비트가 1이고 이 비트가 1이면 ADC변환종료 인터럽트가 활성화됨.


▶Bit 2:0 - ADPS (ADC Prescaler Select Bits)
 
XTAL 주파수와 ADC 입력 클럭간의 분배비를 결정하는 비트.

ADPS2

ADPS1

ADPS0

분주비

0

0

0

2

0

0

1

2

0

1

0

4

0

1

1

8

1

0

0

16

1

0

1

32

1

1

0

64

1

1

1

128

 
ADCL, ADCH (ADC Data Register) 레지스터
 
ADCL 및 ADCH 레지스터는 각각 8비트 레지스터로서 A/D 컨버터의 변환 결과를 저장하는 레지스터이다. ADCL과 ADCH 레지스터를 합한 ADCW 레지스터를 사용하기도 한다.

 ADLAR=0

Bit

15

14

13

12

11

10

9

8

 

-

-

-

-

-

-

ADC9

ADC8

 

ADC7

ADC6

ADC5

ADC4

ADC3

ADC2

ADC1

ADC0

 

7

6

5

4

3

2

1

0

Read/Write

R

R

R

R

R

R

R

R

 

R

R

R

R

R

R

R

R

ADLAR=1

Bit

15

14

13

12

11

10

9

8

 

ADC9

ADC8

ADC7

ADC6

ADC5

ADC4

ADC3

ADC2

 

ADC1

ADC0

-

-

-

-

-

-

 

7

6

5

4

3

2

1

0

Read/Write

R

R

R

R

R

R

R

R

 

R

R

R

R

R

R

R

R

▶ADC9:0 - ADC Conversion Result
 
ADC 변환이 종료되면 결과값은 위 두 레지스터에 저장된다.