Preguntas Desarrollados Por El Examen
Preguntas Desarrollados Por El Examen
Preguntas Desarrollados Por El Examen
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
}
}