Professional Documents
Culture Documents
5. Explicar después de realizar la conversión el ADC como se guarda el resultado digital de 12 bits
Respuesta
El resultado de la conversión A / D se carga en un búfer de RAM "de sólo lectura", de 16
palabras y de 12 bits de ancho.
El resultado de la conversión desde el búfer designado por ADBUF0, ADBUF1, ... ADBUFF es, a
través del registro de salida de 16 bits, leído de acuerdo con el formato de salida seleccionado.
El contenido del búfer RAM en las ubicaciones ADBUF0 a ADBUFF no puede escribirse por
software, sino que está escrito exclusivamente por el convertidor A / D.
6. Explicar el proceso de conversión del ADC
Respuesta
Tras la configuración del convertidor A / D, el proceso de adquisición de muestras de la señal de entrada
se inicia configurando el bit SAMP.
La conversión puede iniciarse por varias fuentes:
bit de control programable
temporizador después de un intervalo de tiempo preestablecido,
o un evento externo. Cuando el tiempo de conversión se ha completado,
El resultado digital se carga en el búfer RAM localizado desde ADBUF0 al ADBUFF.
Al finalizar la conversión A / D, el bit DONE y el indicador de interrupción se establecen después del
número de muestras definidas por los bits de control SMPI.
7.- Indicar los pasos a seguir para realizar la conversión del ADC
Respuesta
Se deben seguir los siguientes pasos para realizar una conversión A / D:
a) Configure el módulo A / D
configurar los pines de puerto como entradas analógicas, referencia de tensión y pines de E / S
digitales
seleccionar el canal de entrada del convertidor A / D,
seleccione el reloj de conversión A / D,
seleccionar fuente de disparo de conversión A / D,
encienda el módulo A / D;
b) configure la interrupción A / D (si es necesario)
borrar el bit ADIF (IFS0,11>),
seleccione la prioridad de interrupción A / D,
ajustar el bit ADIE (IEC0 <11>);
Empezar el muestreo
Esperar el tiempo de adquisición requerido;
Fin de adquisición de disparo, conversión de inicio;
Fin de adquisición de disparo, conversión de inicio;
Espere a que A / D complete, ya sea por
esperando la interrupción A / D, o
esperar a que el bit DONE se ajuste;
Leer buffer de resultados A / D, borrar bit ADIF si es necesario.
8. Diga como realiza la configuración del ADC con respecto a la tensión de referencia aplicado al ADC
Solución
2
El voltaje de referencia podría seleccionarse para ser las tensiones de alimentación interna AVDD o
AVSS o las referencias externas de voltaje VREF + o VREF- a través de los pines externos.
El periodo de conversión ADC denominado TAD, generado por un contador de 6 bits, es seleccionado
por los bits de control ADCS <5: 0> del registro (ADCON3 <5: 0>).
El período TAD se define por la fórmula:
Para que la conversión A / D dé un resultado correcto, se requiere que el tiempo de conversión, 14TAD,
sea al menos 10 μs.
A partir de esta condición se puede concluir que el periodo mínimo del convertidor A / D es TAD = 667ns
(aplicable a dsPIC30F4013).
Para los convertidores A / D de 10 bits de la familia dsPIC30F el período mínimo del reloj es 154ns.
La Tabla 7-1 presenta los valores del periodo del convertidor A / D y la duración de la conversión A / D
como funciones del reloj de instrucción TCY del microcontrolador.
8. Desarrollar el programa para la conversión de una señal analógica AN0 y mostrarlo en el puerto D en
08 leds
En este ejemplo se muestra un inicio de muestra manual y un inicio de conversión manual. El resultado
de la conversión A / D se envía a la salida del puerto D.
Solución
/ * Device = dsPIC30F4013
Reloj = 10MHz * /
void main()
{
TRISB = 0xFFFF; // El puerto B es entrada
3
TRISD = 0; // El puerto D es salida (para los resultados ADC)
ADPCFG = 0xFBFF; // El 10º canal es muestreado y cubierto
ADCON1 = 0; // ADC desactivado, output_format = INTEGER
// Inicio manual de la conversión
// Inicio manual del muestreo
ADCHS = 0x000A; // Conecta RB10 en AN10 como entrada CH0
ADCSSL = 0; // Sin escaneo
ADCON3 = 0x1003; // ADCS = 3 (min TAD para 10MHz es 3 * TCY = 300ns)
ADCON2 = 0; // Interrumpir al completar una muestra / convertir
ADCON1.F15 = 1; // ADC on
while (1)
{
ADCON1.F1 = 1; // Iniciar el muestreo (SAMP = 1)
Delay_ms (100); // Espera 100 ms (muestreo ...)
ADCON1.F1 = 0; // Borrar el bit SAMP (conversión de activación)
while (ADCON1.F0 == 0)
Asm nop; // Espera el bit DONE en ADCON1
LATD = ADCBUF0; // Resultado de salida en el puerto D
}
}