.


:




:

































 

 

 

 





- (Analog-to-Digital Converter) , . AVR .

:

10- .

0.5 . .

2 . .

65 - 260 .

15 . . .

8 .

7 .

2 10 200.

16- .

0VCC.

2.56 .

.

.

.

ATmega128 10- . 8- , 8 F. 0 (.. GND). 16 . (ADC1, ADC0 ADC3, ADC2) : 0 (1x), 20 (10x), 46 (200x). (ADC1), . 1x 10x, 8- , 200x, 7-.

( -), .

AVCC ( ). AVCC 0.3 VCC. 2.56 AVCC. , AREF .

. 10- . GND, - AREF 1 . AREF AVCC 1.22 REFSn ADMUX. , 2.56 , , .. AREF.

MUX ADMUX. ADC0ADC7, GND 1,22 . .

, . . ,

ADEN ADCSRA. ADEN. ADEN = 0, , , .

10- , ADCH ADCL. 10- 16- ( ), 10- ( ) ADLAR ADMUX.

, 8- , .. ADCH. ADCL, ADCH, , . ADCL . , ADCL ADCH, . ADCH ADCH ADCL .

. ADCH ADCL , , .

. 1 ADSC. . , , .

. 1 ADFR ADCSRA. 1 ADSC ADCSRA. , ADIF .

(10 ), 50200 . 10 , , 200 .

, 100 CPU. ADPS ADCSRA. ADEN ADCSRA. ADEN=1 , ADEN=0.

ADSC ADCSRA, .

13 . ( ADEN ADCSRA) 25 .

- 1.5 , 13,5 . ADIF. ADSC. ADSC .

, ADSC .

. MUXn REFS1:0 ADMUX . , . . , . ( ADIF ADCSRA). , ADSC. , ADMUX 1- ADSC.

. 125 . , 125 . - , .

( REFS1:0 ADMUX).

JTAG, F 74 .

. , .

. 1 ADSC. .

. - 1 ADSC. , . , . .

- . , .

. () (V) . V, 0x3FF. V AVCC, 2,56 , AREF. AVCC . 2,56 VBG, . AREF , , AREF . V AREF . , V , , .

, AREF, , .. . AREF , AVCC 2.56 . .

. , CPU -. . :

1. , . .

2. ( ). , CPU.

3. , CPU . , , . sleep.

, , . , . 0 ADEN . , , , .

. , , , ADCn, . - , .

10 . , . , , - . , .. -.

. , f/2, . , .

ADC. , . , , :

1. () (), , .

2. AVCC VCC LC (RC)- . 2.24.

3. , CPU.

4. - , .


. 2.24.

ADMUX.

7, 6 - REFS1, REFS0. (. 2.43)

 

 

2.43. .

REFS1 REFS0
    AREF, V
    AVCC AREF
   
    2.56 AREF

 

5ADLAR. .

ADLAR . ADLAR=1, , - . ADLAR , (. - ADCL ADCH).

4:0 MUX4:0. (. 2.44).

, . , . , ( ADIF ADCSRA).

 

2.44.

 

MUX4..0 ,
  ADC0
  ADC1
  ADC2
  ADC3
  ADC4
  ADC5
  ADC6
  ADC7
    ADC0 ADC0  
  ADC1 ADC0  
  ADC0 ADC0  
  ADC1 ADC0  
  ADC2 ADC2  
  ADC3 ADC2  
  ADC2 ADC2  
  ADC3 ADC2  
  ADC0 ADC1  
  ADC1 ADC1  
  ADC2 ADC1  
  ADC3 ADC1  
  ADC4 ADC1  
  ADC5 ADC1  
  ADC6 ADC1  
  ADC7 ADC1  
  ADC0 ADC2  
  ADC1 ADC2  
  ADC2 ADC2  
  ADC3 ADC2  
  ADC4 ADC2  
    ADC5 ADC2  
  1.23 (VBG) NA
  0 (GND)
           

 

ADCSRA

               
  ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0
W/R W/R W/R W/R W/R W/R W/R W/R W/R
               

 

7 ADEN. .

1 . 0, , .

6 ADSC. .

. , . , ADSC, 25 , 13 . .

ADSC 1, 0. 0 .

5 ADFR. .

1, . . 0 .

4 ADIF. .

. ADIE I ( SREG), . ADIF . ADIF 1 . , -- ADCSRA . SBI CBI.

3 ADIE. .

1 , , I SREG, .

2:0 ADPS2:0. .

, CPU (. 2.45)

2.45.

ADPS2 ADPS1 ADPS0
       
       
       
       
       
       
       
       

 

ADCL ADCH.

ADLAR = 0.

               
ADCH - - - - - - ADC9 ADC8
ADCL ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0
               
W/R R R R R R R R R
               

ADLAR = 1.

               
ADCH ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2
ADCL ADC1 ADC0 - - - - - -
                 
W/R R R R R R R R R
               

 

. . ADCL, (.. ), ADCH.

, 8 . 8- ADCH , , ADCL . ADCL, ADCH.

. (ADIF=1) (ADCL, ADCH).

: , V ; V . 0x000 , 0x3FF - 1 .

:

,

: Vpos- ADC3, V NEG - ADC2, GAIN , VREF .

: ADMUX = 0xED (V=2.56 , , =10, ADC3 - ADC2), ADC3 = 300 , ADC2 = 500 , :

= 512 * 10 * (300 - 500) / 2560 = -400 = 0x270

() ADCL = 0x00, ADCH = 0x9C. (ADLAR=0), ADCL = 0x70, ADCH = 0x02.

, 0x200 (-512d) 0x1FF (+511d). (ADC9 ADCH). 1, , 0, .

 

.

; -

; .

; , .. 0 (PF0)

; .

;

;

; AD_CONV

 

;*****************************************************

;

.include "m128def.inc"

;

.def temp = r16

.def data_h= r18

 

;

.cseg

.org 0x000

rjmp RESET;

 

.org $002A

rjmp AD_CONV; ;*****************************************************

 

;

Reset:

 

;

ldi temp, low(RAMEND)

out SPL,temp

ldi temp, high(RAMEND)

out SPH,temp

;*****************************************************

Sei; (I=1 SREG )

ldi temp, 0xff;

out ddrc,temp

;*****************************************************

;

; REFS1, REFS0=11 2.56 ,

;ADLAR = 1 -

; ;

;MUX4:0- 00000 ( PF0),; ( - $E0)

 

ldi temp,0xe0

out admux,temp; $e0 admux

 

;(ADEN=1 , ADSC=1 ;, ADFR=0- ;, ADIF-

; , ADIE=1- ; , ADPS2:0 =000 - ; ( 2).

 

ldi temp,0xc8

out adcsra,temp; $c8 adcsra

 

;***************************************************

;

loop:

nop

nop

rjmp loop

;***************************************************

;

AD_CONV:

in data_h, adch;

out portc, data_h;

ldi temp,0xc8; ,

;

out adcsra,temp

reti;

 

 

 

. 2.25.

1. .

2. .

3. ?

4. . ?

5. () .

6. ?

7. ?

8. ?

9. .

10. ? .

11. ADMUX. ADMUX.

12. ADMUX.

13. ?

14. ADCSRA. .

15. ADCSRA .

16. ? .

 

AIN0 AIN1. AIN0 AIN1, ACO . - 1. , . , : , .

ACSR.

               
ACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0
W/R W/R W/R R W/R W/R W/R W/R W/R
    x          


7 ACD. . 1 . . . ACD ACIE ACSR. .

6 ACBG. . . AIN0 .

5 ACO. . ACO . 1 2 .

4 ACI. . , ACIS1 ACIS0. , ACIE ACSR I SREG. ACI . , ACI 1 .

3 ACIE. . ACIE ACSR I SREG, . .

2 ACIC. . - 1 . , , - 1. 0 . - 1 TICIE1 (TIMSK).

1, 0 ACIS1, ACIS0. . , . . 2.46.

2.46. ACIS1, ACIS0

ACIS1 ACIS0
   
   
   
   

 

ACIS1/ACIS0 ACSR. .

ADC7..0 . , , . ( ACME - SFIOR) (ADEN=0 ADCSRA), MUX2..0 ADMUX , (. . 2.47). ACME ADEN, AIN1.

2.47.

ACME ADEN MUX2..0
  x xxx AIN1
    xxx AIN1
      ADC0
      ADC1
      ADC2
      ADC3
      ADC4
      ADC5
      ADC6
      ADC7

 

1. .

2. .

3. ACSR.

4. .

5. ADC7,...,0 ?

 

 





:


: 2016-11-02; !; : 1429 |


:

:

, .
==> ...

1387 - | 1237 -


© 2015-2024 lektsii.org - -

: 0.156 .