Está en la página 1de 14

Arquitectura del Procesador

Digital de Señales

Profesor: Robert I. Quispe R.

Ingeniero Electrónico de la USMP


Licenciado en Matemática-Física de la UNMSM
Maestría en Ciencias de la Electrónica de la UNAC
Doctorado en Ingeniería Eléctrica de la UNAC

1
Logro de aprendizaje

Al finalizar sesión, los estudiantes realizan


programación en lenguaje C en
microcontroladores DSPIC30F para el manejo del
ADC

¿Que veremos hoy?

1. El ADC, Funcionamiento
2. Aplicaciones

2
Arquitectura del procesador digital de señales

Microcontroladores dsPIC

Programación del dsPIC en C

Sesión S10.s1

Conversor Analógico Digital (ADC)


Arquitectura del procesador digital de señales

Conversores A/D

Registros y funcionamiento

Configuración de los conversores A/D

Ejemplos de aplicación

3
Conversor Analógico Digital (ADC)
Arquitectura del procesador digital de señales
El convertidor de analógico a digital (ADC) de 12 bits permite la conversión de
una señal de entrada analógica a un número digital de 12 bits. Este módulo se
basa en una arquitectura de registro de aproximación sucesiva (SAR) y
proporciona una frecuencia de muestreo máxima de 200 ksps. El módulo A / D
tiene hasta 16 entradas analógicas que se multiplexan en un amplificador de
muestreo y retención. El voltaje de referencia analógico se puede seleccionar
mediante software para el voltaje de suministro del dispositivo (AVDD / AVSS)
o el nivel de voltaje en el pin (VREF + / VREF-).

Conversor Analógico Digital (ADC)


Arquitectura del procesador digital de señales

La familia de los dspic30F dispone de un conversor de 10 bits de resolución y


de alta velocidad, y otros de 12 bits de alta resolución.
La conversión de las señales analógicas a digitales es realizada en tres etapas

Muestreo: El muestreo digital es una de las


partes del proceso de digitalización de las
señales. Consiste en tomar muestras de una
señal analógica a una frecuencia o tasa de
muestreo constante.

Cuantificación : Esto consiste en representar la


amplitud de las muestras mediante un numero
finito de valores distintos. Si el convertidor es de
n bits, habrá 2^n posibles valores.

Codificación: Es la representación del valor


asignado a la señal en la etapa de cuantificación
mediante los niveles de tensión 1 y 0.

4
Conversor Analógico Digital (ADC)
Arquitectura del procesador digital de señales
Un ADC de n bits puede representar hasta 2^n valores digitales, de modo
que a la entrada analógica igual a VREF- se le asignará el valor 0 digital, y la
entrada igual a VREF+ le asignará el valor 2^n – 1 digital. Entre VREF- y
VREF+ se pueden presentar un número infinitos de valores analógicos, pero
con n bits, solo se pueden formar 2^n valores discretos diferentes. Por lo
tanto habrá valores analógicos que no podrán ser representados con
exactitud (error de cuantización).

La diferencia entre dos valores analógicos correspondientes a dos valores


digitales consecutivos se define como la resolución de voltaje del ADC.

Conversor Analógico Digital (ADC)


Arquitectura del procesador digital de señales

Ejemplo:
a. Se considera un ADC con resolución de 10 bits, donde VREF- = 0 volts y
VREF+ = 3.3 volts, determine la resolución del ADC. Determine la señal
digital para 0.45, 1v, 2.5v y 3v.

b. Si se considera un ADC de 12 bits, determine la resolución del ADC.


Determine la señal digital para 0.45, 1v, 2.5v y 3v.

5
Conversor Analógico Digital (ADC)

Arquitectura del procesador digital de señales


El módulo A / D tiene hasta 16 entradas
analógicas que se multiplexan en un
amplificador de muestra y retención. La
salida de la muestra y retención es la entrada
al convertidor que genera el resultado.

Registros y funcionamiento
Registros de control
Arquitectura del procesador digital de señales

El modulo A/D tiene seis registros de 16-bit:


• A/D Control Register1 (ADCON1)
• A/D Control Register2 (ADCON2)
• A/D Control Register3 (ADCON3)
• A/D Input Select Register (ADCHS)
• A/D Port Configuration Register (ADPCFG)
• A/D Input Scan Selection Register (ADCSSL)

Los registros ADCON1, ADCON2 y ADCON3 controlan la operación del modulo


A/D.
El registro ADCHS escoge los canales de entrada a convertir. El registro
ADPCFG configura los pines del puerto como entradas analógicas o
entradas/salidas digitales. El registro ADCSSL escoge las entradas a escanear.
El módulo contiene hasta 16-buffers de solo lectura ADCBUF0...ADCBUFF, para
almacenar los resultados del A/D.

6
Arquitectura del procesador digital de señales Arquitectura del procesador digital de señales
Registros

Diagrama en bloque
Registros y funcionamiento
Registros y funcionamiento

7
Registros y funcionamiento
Registro de control ADCON1
Arquitectura del procesador digital de señales

Registros y funcionamiento
Registro de control ADCON2
Arquitectura del procesador digital de señales

8
Registros y funcionamiento
Registro de control ADCON3
Arquitectura del procesador digital de señales

Registros y funcionamiento
Registro de selección de entrada
Arquitectura del procesador digital de señales

9
Registros y funcionamiento
Registro ADPCFG
Arquitectura del procesador digital de señales

Registros y funcionamiento
Configuración de los registros de control
Arquitectura del procesador digital de señales

Para configurar el módulo ADC:


1. Seleccione los pines de puerto como entradas analógicas (ADPCFG <15: 0>)
2. Seleccione la fuente de referencia de voltaje para que coincida con el rango
esperado en entradas analógicas (ADCON2 <15:13>).
3. Seleccione el reloj de conversión analógica para que coincida con la
velocidad de datos deseada con el reloj del procesador (ADCON3 <5: 0>).TAD
4. Determine cuántos canales de muestreo y retención se utilizarán (ADCON2
<9: 8> y ADPCFG <15: 0>).
5. Seleccione la secuencia apropiada de muestra / conversión (ADCON1 <7: 5>
y ADCON3 <12: 8>).
6. Seleccione la forma en que se presentan los resultados de la conversión en
el búfer (ADCON1 <9: 8>).
7. Encienda el módulo ADC (ADCON1 <15>).
8. Configure la interrupción ADC (si es necesario):
A) Borre el bit AD1IF.
B) Seleccione la prioridad de interrupción ADC.

10
Registros y funcionamiento

Arquitectura del procesador digital de señales

Selección de la fuente de referencia de


voltaje

Las referencias de voltaje para las


conversiones A / D se seleccionan
utilizando los bits de control VCFG <2:
0> (ADCON2 <15:13>).
La referencia de voltaje superior
(VREFH) y la referencia de voltaje
inferior (VREFL) pueden ser los rieles
de voltaje AVDD y AVSS internos o los
pines de entrada VREF + y VREF-.

Configuración de los conversores A/D

Selección del reloj de conversión


Arquitectura del procesador digital de señales

El conversor A/D tiene un limite de velocidad de conversión de datos. Para


realizar el calculo de la velocidad de conversión es necesario el valor de un
periodo de reloj (TAD), dado que el tiempo de conversión es igual a 14TAD por
cada dato.
La selección del periodo de la señal de reloj se da mediante software con los
bits de control ADCON3<5:0>

11
Configuración de los conversores A/D
Calculo del TAD:
Arquitectura del procesador digital de señales
En una serie de iteraciones o pasos, los CAD de aproximaciones sucesivas “proponen”
valores digitales, los convierten en analógicos y los comparan con la señal a convertir. Es
por esto que requieren de un reloj que les indique en que momento se debe ejecutar un
paso del procedimiento.
Cuando se usan las tensiones analógicas de alimentación también como voltajes de
referencia, el periodo de este reloj (TAD) debe ser mayor a 668 ns.
La duración de TAD se obtiene a partir del ciclo de instrucción (TCY), que a su vez, depende
de la frecuencia del oscilador principal (FOSC) del dsPIC.

Ya que estoy usando una frecuencia de instrucción Fcy=30MHz el menor valor


que se puede usar en los bits de control ADCS para satisfacer la condición
TAD > 668 ns es 39, lo que establece :
ADC Conversion Clock TAD = (TCY/2) * (ADCS + 1) = (1/30M/2) * 40 = 666.6 ns (1.5 MHz)
ADC Conversion Time for 12-bit Tconv = 14 * TAD = 9332.4 ns (107.2 KHz)

Configuración de los conversores A/D


Arquitectura del procesador digital de señales

El uso de los registros ADPCFG y TRIS controla la operación de los


pines del puerto A/D. Los pines del puerto que se desean como entradas
analógicas deben tener su correspondiente TRIS puesto a ‘1’ (entrada).
La operación A/D es indiferente del estado de los bits
CH0SA<3:0>/CH0SB<3:0> y los bits TRIS.

12
Configuración de los conversores A/D

Arquitectura del procesador digital de señales Configuración de Registros.

ADPCFG = 0xFBFF; // Se configura el ADPCFG para que el único pin


// usado analógicamente sea el AN10
ADCON1bits.SSRC = 0b111; // selección de la muestra después que la
//conversión termina,12 bits
ADCON1bits.ASAM = 1; // Formato del resultado entero, Comienzo de la
//conversión automático,
ADCHSbits.CH0SA = 0b1010; // Entrada positiva AN10 para la entrada de la
//muestra
ADCHSbits.CH0NA = 0; // Entrada negativa se usa el VR-
ADCON2bits.VCFG = 0b000; // Referencias: AVDD y AVSS,
ADCON2bits.BUFM = 0; //Se selecciona nivel de buffer 16*1 y
ADCON3bits.ADCS = 39; //ADCS=39 -->Valor del TAD>667ns
// ADC Conversion Clock TAD = (TCY/2) * (ADCS + 1) = (1/30M/2) * 40 =
// 666.6 ns (1.5 MHz)
// ADC Conversion Time for 12-bit Tconv = 14 * TAD = 9332.4 ns (107.2 KHz)

Configuración de los conversores A/D

Configuración de Registros para interrupción.


Arquitectura del procesador digital de señales

ADCON2bits.SMPI = 0; // 1 ADC Channel is scanned


//ADCSSL: A/D Input Scan Selection Register
ADCSSL = 0x0000;
ADCSSLbits.CSSL0 = 1; // Enable AN0 for channel scan
//ADPCFG: Port Configuration Register
ADPCFGbits.PCFG0 = 0; // AN0 as Analog Input

IFS0bits.ADIF = 0; // Reseteamos el Flag del ADC


IEC0bits.ADIE = 1; // Habilitamos la Interrupción
ADCON1bits.ADON = 1; // Prende el ADC

Rutina de Ejecución de interrupción.

void __attribute__((interrupt, no_auto_psv)) _ADC1Interrupt(void) {

IFS0bits.AD1IF = 0; /* Ponemos a 0 el Flag de la Int ADC*/


}

13
Configuración de los conversores A/D

Arquitectura del procesador digital de señales


Ejercicio Nº 01:
Construir un programa para un dsPIC30F4013 tal que el DSPIC lea la
señal análoga generada por un potenciómetro en el pin AN10, almacene
su valor y lo muestre a través del puerto B.

Gracias
Microcontroladores

14

También podría gustarte