0% encontró este documento útil (0 votos)
167 vistas6 páginas

P4 Micros ADC

El documento explica cómo configurar y utilizar el convertidor analógico-digital (ADC) del microcontrolador ATMega328P. Tiene 8 canales de entrada analógica multiplexados, una resolución de 10 bits y puede digitalizar señales a una frecuencia máxima de 15 kSPS. Describe los registros involucrados en la configuración del ADC y la conversión analógica-digital.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
167 vistas6 páginas

P4 Micros ADC

El documento explica cómo configurar y utilizar el convertidor analógico-digital (ADC) del microcontrolador ATMega328P. Tiene 8 canales de entrada analógica multiplexados, una resolución de 10 bits y puede digitalizar señales a una frecuencia máxima de 15 kSPS. Describe los registros involucrados en la configuración del ADC y la conversión analógica-digital.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PRCTICA 4.

Conversin Analgica/Digital (ADC)

OBJETIVO:Aprenderaconfigurarlosregistrosdelconvertidoranalgicodigital,paradigitalizarseales
analgicas.
MARCOTERICO
El convertidor Analgico/Digital (ADC) del microcontrolador ATMega328P, tiene las siguientes
caractersticasimportantes.

Resolucinde10bit
Presicinabsolutade2LSB
Tiempodeconversinde13sa260s
Velocidaddeconversinde15kSPSamximaresolucin
8canalessencillosdeentradamultiplexado
7DifferentialInputChannels
2DifferentialInputChannelswithOptionalGainof10xand200x
Intervalodelvoltajedeentradaanalgicode0aVCC
Referenciadevoltajeseleccionablede2.56V
Mododecarreralibreoconversinsencilla
IniciodeconversinADCpordisparoautomticooporfuentesdeinterrupcin
InterrupcindeconversinADCcompleta
Canceladorderuidoenmododesuspesin

LasiguientefiguramuestraundiagramaabloquesdelsistemadeADCdeldispositivoATMega328P.

Prctica14
LosregistrosinvolucradosenlasconversionesADCselistanyexplicanacontinuacin.
REGISTRODESELECTORDELMULTIPLEXORADMUX
Bit

Read/Write
InitialValue

7
REFS1
R/W
0

6
REFS0
R/W
0

5
ADLAR
R
0

4
MUX4
R/W
0

3
MUX3
R/W
0

2
MUX2
R/W
0

1
MUX1
R/W
0

0
MUX0
R/W
0

Bit 7:6 REFS1:0: Bit de seleccin de voltaje de referencia

REFS1
0
0
1
1

REFS0
0
1
0
1

VOLTAJEDEREFERENCIASELECCIONADO
Voltajedereferenciainternoapagado,seusaAREF.
TerminalAVCCconectadaalaterminalAREFconuncapacitorexterno.
Reservado
SeusaelVoltajedereferenciainternoconcapacitorexternoalaterminalAREF.

Bit 5 ADLAR: Resultado del ADC ajustado a la izquierda


1
0

Bits 4:0 MUX4:0: Bit de seleccin de canal analgico y ganancia


MUX4..0
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110

Entrada
Sencilla
ADC0
ADC1
ADC2
ADC3
ADC4
ADC5
ADC6
ADC7

01111

Entrada
Entrada
Diferencial Diferencial Ganancia MUX4..0
Positiva
Negativa

10000
10001
10010
10011
10100
10101
10110
10111
ADC0
ADC0
11000
10X
ADC1
ADC0
11001
ADC0
ADC0
11010
200X
ADC1
ADC0
11011
ADC2
ADC2
11100
10X
ADC3
ADC2
11101
ADC2
ADC2
11110
ADC3

200X

ADC2

11111

Entrada
Entrada
Diferencial
Sencilla
Positiva

ADC0
ADC1
ADC2
ADC3
ADC4
ADC5
ADC6
ADC7
ADC0
ADC1
ADC2
ADC3
ADC4
ADC5
1.22V

(VBG)
0V
(GND)

Entrada
Diferencial
Negativa
ADC1
ADC1
ADC1
ADC1
ADC1
ADC1
ADC1
ADC1
ADC2
ADC2
ADC2
ADC2
ADC2
ADC2

Ganancia

1X

REGISTRODECONTROLYESTADOADCSRA
Bit

Read/Write
InitialValue

7
ADEN
R/W
0

6
ADSC
R/W
0

5
ADATE
R
0

4
ADIF
R/W
0

3
ADIE
R/W
0

2
ADPS2
R/W
0

1
ADPS1
R/W
0

0
ADPS0
R/W
0

Prctica14
Bit 7 ADEN: Habilitar ADC
1
0

Bit 6 ADSC: Inicio de Conversin del ADC


1
0

El bit ADSC se lee como 1 lgico mientras se est convirtiendo un dato, y cuando termina la convesin,
automticamente retorna a 0 lgico.
Bit 5 ADATE: Habilitacin del Autodisparo del ADC
1
0

El ADC comenzar la conversin en el borde positivo de la seal de disparo seleccionada. La fuente de disparo
es seleccionada configurando los bit ADTS del registro SFIOR.
Bit 4 ADIF: Bandera de Interrupcin del ADC Interrupt
Este bit se pone en 1 cuando el ADC ha realizado una conversin completa, y el registro de datos ha sido
actualizado. Se borra escribiendo un 1 lgico en la bandera, o por hardware cuando se ejectua una interrupcin
de conversin completa.
Bit 3 ADIE: ADC Interrupt Enable
Cuando se escribe un 1 a este bit I de SREG est en 1, se activa la Interrupcin de Conversin Completa del
ADC.
Bits 2:0 ADPS2:0: Bits de seleccin del Preescalador del ADC
Estos bits determinan el factor de divisin entre la frecuencia del cristal y el reloj de entrada al ADC.
ADSP2

ADSP1

ADSP0

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Factor de
divisin
2
2
4
8
16
32
64
128

REGISTRODECONTROLYESTADOBADCSRB
Bit

Read/Write
InitialValue

R/W
0

6
ACME
R/W
0

Losbits7,5,4y3noseutilizan.

R/W
0

R
0

R/W
0

2
ADTS2
R/W
0

1
ADTS1
R/W
0

0
ADTS0
R/W
0

Prctica14
Bit 6 ACME: Si se configura con un 1 lgico, indica si el ADC va a trabajar con el comparador analgico. Si
no se utiliza, entonces se pone en 0 lgico.
Bit 2:0 ADTS2:0: Configuracin de la Fuente de Disparo Automtico del ADC

Seutilizanparaconfigurarlafuentedelasealdeautodisparo.
ADTS2 ADTS1 ADTS0 FUENTEDEDISPARO
0
0
0
Mododecarreralibre
0
0
1
Comparadoranalgico
0
1
0
Interrupcinexterna0
0
1
1
IgualacindecomparacinTemporizador/Comparador0
1
0
0
SobreflujodelTemporizador/Comparador0
1
0
1
IgualacindecomparacinTemporizador/Comparador1
1
1
0
SobreflujodelTemporizador/Comparador1
1
1
1
CapturadeeventosdelTemporizador/Comparador1

REGISTRODECONTROLDIDR0
Bit

Read/Write
InitialValue

R/W
0

R/W
0

5
ADC5D
R/W
0

4
ADC4D
R/W
0

3
ADC3D
R/W
0

2
ADC2D
R/W
0

1
ADC1D
R/W
0

0
ADC0D
R/W
0

Bit 5:0 ADC5:0D: Se configura la terminal del microcontrolador, que va a ser utilizada como entrada
analgica, para que slo funcione con el ADC, y que la parte interna de la terminal que tiene que ver con el
comportamiento digital no se vea afectado.

REGISTRODEDATOSDELADC
ADLAR=0
Bit
ADCH
ADCL

Read/Write
InitialValue

15

ADC7
7
R
0

14

ADC6
6
R
0

13

ADC5
5
R
0

12

ADC4
4
R
0

11

ADC3
3
R
0

10

ADC2
2
R
0

9
ADC9
ADC1
1
R
0

8
ADC8
ADC0
0
R
0

15
ADC9
ADC1
7
R
0

14
ADC8
ADC0
6
R
0

13
ADC7

5
R
0

12
ADC6

4
R
0

11
ADC5

3
R
0

10
ADC4

2
R
0

9
ADC3

1
R
0

8
ADC2

0
R
0

ADLAR=1
Bit
ADCH
ADCL

Read/Write
InitialValue

Prctica14
DESARROLLO:
1. Escribayanaliceelsiguientecdigo,elcualesparautilizarelconvertidoranalgicodigital,yconteste
laspreguntassiguientes:
a. CuntoscanalesdeconversinAnalgicoDigitaltieneelmicrocotnrolador?
b. Culeselcanalquesevaamuestrear?
c. Culeselnmerodebitdeconversin?
d. Culeslafrecuenciademuestreo?
e. Qupuertoeselqueseutilizaparaconvertir?
f. Enqupuertossemuestranlosresultados?
g. Culeselvalordelvoltajedereferencia?
h. Coloquecomentariosalcdigoqueexpliquelaconfiguracinqueseestutilizandoparael
microcontrolador.
#include<avr/io.h>
#include<avr/interrupt.h>

voidPorts_Setup();
voidADC_Setup();

voidPorts_Setup()
{

DDRD=0xFF;

DDRC=0x03;
}

voidADC_Setup()
{

ADMUX=(0<<REFS1)|(1<<REFS0)|(0<<ADLAR)|(0<<MUX3)|(1<<MUX2)|(0<<MUX1)|(1<<MUX0);

ADCSRA=(1<<ADEN)|(0<<ADSC)|(1<<ADATE)|(0<<ADIF)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|
(1<<ADPS0);

ADCSRB=(0<<ACME)|(0<<ADTS2)|(0<<ADTS1)|(0<<ADTS0);

DIDR0=(1<<ADC5D)|(0<<ADC4D)|(0<<ADC3D)|(0<<ADC2D)|(0<<ADC1D)|(0<<ADC0D);
}

ISR(ADC_vect,ISR_NAKED)
{

PORTD=ADCL;

PORTC=ADCH;

reti();
}

intmain(void)
{

Ports_Setup();

ADC_Setup();

sei();

ADCSRA|=(1<<ADSC);

while(1){}

Prctica14
}

2. Conecteunpotencimetroenconfiguracindedivisordetensinenelcanaldeconversindel
convertidor,yobtengaelvalordigitalcorrespondienteacadaunodelossiguientesvoltajes.
a. 3.3V
b. 0.5V
c. 1.2V
d. 4.5V
e. 5V

3. Compruebequeelvalordigitalobtenidocorrespondealosvoltajesdeentradadelpunto2.
4. Utilizandoelcdigodelaprctica3ydelaprctica4,realiceunprogramaquepermitavariarelciclo
detrabajodeunasealPWM,deacuerdoalvaloranalgicoqueentraalconvertidor,utilizandoun
potencimetroendivisordetensin.
5. Anotesusconclusiones.

También podría gustarte