Você está na página 1de 36

Prcticas

de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

PROCESAMIENTO DIGITAL DE SEALES

PRCTICAS DE LABORATORIO CON


dsPIC33F
Ver 1.0

M.C. GILBERTO SANTILLN TOVAR


DR. DANIEL U. CAMPOS DELGADO

FACULTAD DE CIENCIAS
UASLP

Marzo/2014


Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

CONTENIDO

INTRODUCCIN ............................................................................................................ 1
CARACTERSTICAS GENERALES DEL dsPIC33FJ128GP802 ...................................... 2
ARQUITECTURA DEL dsPIC33FJ128GP802 ............................................................................. 3
CREAR NUEVO PROYECTO EN MPLAB IDE ................................................................ 4
SISTEMA MNIMO DE CONEXIN ................................................................................. 8
PROGRAMACIN DE dsPIC ............................................................................................. 8
Programador MINIPROG+ ........................................................................................... 8
PICkit 2 v2.61 ................................................................................................................ 9
RESULTADOS ................................................................................................................... 10
BIBLIOGRAFA ................................................................................................................. 11
PRCTICA 1.- Puertos de Entrada/Salida. .................................................................... 12
PRCTICA 2.- El Temporizador ................................................................................... 15
PRCTICA 3.- Interrupciones ....................................................................................... 18
PRCTICA 4.- El ADC ................................................................................................. 22
PRCTICA 5.- CONVERSION EN SERIE ADC DAC ............................................ 28


Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

INTRODUCCIN

Los DSC (Controladores Digitales de Seales) son dispositivos dotados de recursos


fsicos y lgicos necesarios para el tratamiento digital de seales. La empresa Microchip
ha unido las caractersticas esenciales de un microcontrolador y un procesador digital de
seales (DSP, por sus siglas en ingls) en un dispositivo llamado dsPIC, el cual combina
las funciones tpicas de los microcontroladores con las del procesamiento digital de
seales. Los DSC se utilizan en una amplia gama de aplicaciones, en las cuales
podemos encontrar: telecomunicaciones, procesamiento de seales, control de motores,
convertidores de energa, instrumentacin biomdica, etc.

Existen dos familias de DSC por parte de Microchip, las series dsPIC30F y dsPIC33F.
El diseo de cada una de las prcticas de este manual se basa en el
dsPIC33FJ128GP802, el cual es un dispositivo de 16 bits que posee convertidores A/D
y D/A integrados, los cuales sern vitales para las tareas de procesamiento digital. En
las secciones subsecuentes se listarn sus caractersticas generales, y el esquema
mnimo de conexin.

Las prcticas siguientes se componen de dos partes: (i) la construccin del hardware, y
(ii) la implementacin del software. Para el hardware, se describe el material a utilizar y
los esquemas de conexin en cada prctica, y para el desarrollo del software, se
implementan los programas que estn codificados en lenguaje C. Con este fin, se
emplean los programas MPLAB IDE v8.89, Compilador c30 y PICkit2, todas estas
herramientas de software necesarias para la programacin del dsPIC33F. Todos estos
programas los facilita libremente el fabricante, las cuales aparecen en la bibliografa
para ser descargados desde la pgina de Microchip. En la siguiente seccin se describe
la creacin, compilacin y programacin del dsPIC.

Dada la similitud entre los microcontroladores PIC y los Controladores digitales de


seales dsPIC, en cuanto a arquitectura y conjunto de instrucciones, los estudiantes que
hayan tenido algn acercamiento con los PIC, se les facilitar la programacin de estos
nuevos dispositivos.

1

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

CARACTERSTICAS GENERALES DEL dsPIC33FJ128GP802

A continuacin se listan las principales caractersticas del dsPIC33FJ128GP802:

Arquitectura Harvard.
Ncleo de 16 bits.
Circuito integrado de 28 pines
Operacin de 3.0 3.6 Volts.
Operacin de hasta 40 MIPS.
Memoria de programa de 128kb.
5 Temporizadores de 16 bits.
Puertos con 21 entradas/salidas.
10/12 bits ADC con 1.1 Msps/500 ksps.
16 bits DAC (Audio).
Comunicacin USART.
Comunicacin I2C.
Interrupciones externas.
Rango de temperatura de -40C a 85C.
Optimizado para programar en lenguaje C.

Para conocer todas las especificaciones tcnicas se recomienda ver la hoja de datos
proporcionada por el fabricante, la cual se puede ser descargada desde el sitio oficial de
Microchip (ver bibliografa).

2

Prcticas de Laboratorio
dsPIC33FJ32GP302/304, dsPIC33FJ64GPX02/X04,
Procesamiento Digital de Seales AND dsPIC33FJ128GPX02/X04
Facultad de Ciencias, UASLP
FIGURE 1-1: dsPIC33FJ32GP302/304, dsPIC33FJ64GPX02/X04, AND dsPIC33FJ128GPX02/
X04 BLOCK DIAGRAM

PSV and Table


Data Access
ARQUITECTURA DEL dsPIC33FJ128GP802
Control Block Y Data Bus

Interrupt X Data Bus


PORTA
Controller

16
8 16 16 16 DMA
RAM
Data Latch Data Latch
23 PORTB
PCU PCH PCL X RAM Y RAM
23
Program Counter
Stack Loop Address Address
Control Control Latch Latch
16
Logic Logic DMA
23 Controller
16 16 PORTC

Address Latch Address Generator Units

Remappable
Program Memory
Pins
EA MUX

Data Latch ROM Latch


24
16 16

Literal Data
Instruction
Decode and
Control Instruction Reg
16

Control Signals
to Various Blocks DSP Engine

16 x 16
OSC2/CLKO Timing Power-up W Register Array
OSC1/CLKI Generation Timer Divide Support
16
Oscillator
FRC/LPRC Start-up Timer
Oscillators
Power-on
Reset
Precision
16-bit ALU
Band Gap Watchdog
Reference Timer
16
Brown-out
Voltage Reset
Regulator

VCAP/VDDCORE VDD, VSS MCLR

PMP/ Comparator ECAN1 Timers OC/


UART1, 2 ADC1
EPSP 2 Ch. 1-5 PWM1-4

RTCC DAC1 SPI1, 2 IC1, 2, 7, 8 CNx I2C1 DCI

Note: Not all pins or features are implemented on all device pinout configurations. See pinout diagrams for the specific pins and features pres-
ent on each device.

DS70292D-page 16 Preliminary 2009 Microchip Technology Inc.

3

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

CREAR NUEVO PROYECTO EN MPLAB IDE

MPLAB IDE es un software propio de Microchip, el cual permite seleccionar los


distintos DSC soportados para su programacin. Una vez instalados el software
MPLAB IDE, Compilador C30 y PICkit 2, se listan a continuacin los pasos para la
creacin de un nuevo proyecto, compilacin del proyecto (creacin del archivo .HEX) y
programacin del dsPIC.

En el men principal del programa MPLAB IDE, ir a al submen Project


Project Wizard.

Seleccionar el modelo del dispositivo que se va a emplear y dar clic en


Siguiente >.

Seleccionar el compilador y la ruta del toolsuite (generalmente localizada en


C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-gcc.exe)

4

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

Se elige el nombre del proyecto y la ruta donde se guardaran los archivos. En


este ejemplo se llamar P1.

Se muestran las carpetas y los archivos del nuevo proyecto, y seleccionar


Siguiente >.

5

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

La ltima ventana nos muestra el modelo de dsPIC que se utilizar, compilador
y la ruta donde se guardaran los archivos del proyecto.

Una vez finalizado la creacin del nuevo proyecto, se crea un nuevo archivo.
(File New).

En esta nueva ventana se escribir el cdigo de nuestro programa, el cual coloca


en un valor alto los bits 0 y 1 del puerto A. El cdigo se describe a continuacin:
#include <p33FJ128GP802.h> // Define el modelo del dsPIC

// CONFIGURACION DE BITS

_FBS ( RBS_NO_RAM & BSS_NO_FLASH & BWRP_WRPROTECT_OFF );


_FSS ( RSS_NO_RAM & SSS_NO_FLASH & SWRP_WRPROTECT_OFF );
_FGS ( GSS_OFF & GWRP_OFF );
_FOSCSEL ( IESO_OFF & FNOSC_PRIPLL );
_FOSC ( FCKSM_CSDCMD & IOL1WAY_OFF & OSCIOFNC_OFF & POSCMD_XT );
_FPOR ( ALTI2C_OFF & FPWRT_PWR128 );
_FICD ( JTAGEN_OFF & ICS_PGD1 );

// PROGRAMA PRINCIPAL

int main(void){

TRISA=0X0000; // Configura el puerto A como salida.


// 0-Salidas; 1-Entradas
LATAbits.LATA0=1; //Encendemos los bits 0 y 1 del puerto A

6

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

LATAbits.LATA1=1;
}

Guardamos el nuevo archivo con la extensin .c

En el men Project, se escoge Add files to Project y selecciona el archivo


previamente guardado con la extensin .c.

Enseguida seleccionar el icono Build All, lo cual permite compilar el programa


y si no existen errores en el mismo, se despliega el aviso BUILD
SUCCEEDED

Despus de compilar, se habr creado el archivo .HEX, el cual se descarga al


dsPIC a travs de la comunicacin PICkit 2/MINIPROG+.

7

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

SISTEMA MNIMO DE CONEXIN

Para trabajar con el dsPIC33FJ128GP802, se requiere una conexin mnima antes de


iniciar cualquier proyecto. En la figura 1, se muestra el esquema de conexin de cada
uno de los pines necesarios para la programacin del dispositivo. La mayora de los
pines son multiplexados, por lo que durante la programacin los pines conectados a
ICSP+ se emplean para la descarga del programa. Una vez que se realiz la
programacin, stos pines tendrn la funcin que se les asign en el programa.

Figura 1. Esquema mnimo de conexin.

PROGRAMACIN DE dsPIC

Una vez realizado el esquema mnimo de conexin, se proceder a grabar el dispositivo,


lo cual se realiza a travs de la conexin entre el software PICkit 2 y el programador
universal MINIPROG+, ya que a travs de estas herramientas se grabar en el dsPIC el
programa realizado (archivo .HEX).

Programador MINIPROG+
El programador MINIPROG+ (Figura 2), soporta diversas series de dispositivos PIC y
dsPIC para su programacin. Para la serie dsPIC33F la programacin se realiza a travs
del puerto ICSP+.

Figura 2. Programador MINIPROG+.

8

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

Un esquema general de la conexin del programador a travs de ICSP+ (In Circuit
Serial Programming) se muestra en las figura 3.

Figura 3. Esquema de Conexin ICSP+

El dsPIC33FJ128GP802, tiene 3 canales para ser programado, por lo que se deben


identificar los pines correspondientes para realizar la conexin adecuada con el
programador. En la figura 4 se muestra el esquema de conexin utilizando el canal 1
(PGEDx, PGECx).

Figura 4. Conexin ICSP+dsPIC33FJ128GP802.

Nota: Retirar el voltaje de alimentacin del dsPIC cuando se vaya a programar el


dispositivo, ya que se puede dejar la conexin mnima al momento de programar el
circuito mediante el ICSP+.

PICkit 2 v2.61

Con el software PICkit 2, podemos programar el dsPIC, conectando a travs del puerto
USB el programador MINIPROG+. En las siguientes imgenes se muestra el
procedimiento para cargar el programa al dsPIC.

9

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

Una vez conectado el puerto ICSP+ a los pines correspondientes del dsPIC, se ejecutar
el programa PICkit 2. Si se realiza correctamente la conexin entre programador y
dsPIC, nos mostrar la siguiente imagen.

Adems de mostrar las caractersticas del dispositivo, aparecen las opciones de leer,
borrar y programar el dispositivo, cabe mencionar que el software automticamente
asigna el valor de voltaje de programacin, que como se ha mencionado anteriormente
ser de 3.3 Volts. En el men File Import Hex File, se selecciona el archivo .HEX
que se gener al compilar el programa. Una vez seleccionado el programa se ejecuta la
opcin write para que sea cargado el programa al dsPIC.

Si la programacin fue realizada con xito nos mostrar Programming Successful, y


enseguida se proceder a desconectar la interfaz ICSP+ del dsPIC.

RESULTADOS

Para verificar los resultados de este ejemplo, se conectarn diodos emisores de luz
(LED) en los bits 0 y 1 del puerto A (pin 2 y 3). El resultado obtenido se puede
visualizar en la figura 5.

10

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

Figura 5. Bits 0 y 1 del Puerto A en 1 lgico.

BIBLIOGRAFA

A continuacin se listan los enlaces de donde se pueden descargar de manera gratuita


los diversos programas y manuales necesarios para la programacin del
dsPIC33FJ128GP802.

MPLAB IDE v8.89


http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocNa
me=en023073

Compilador C30 versin estudiante


http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocNa
me=en536656

Pickit2 v2.61
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocNa
me=en023805

Datasheet dsPIC33FJ128GP802
http://ww1.microchip.com/downloads/en/devicedoc/70292d.pdf

Manual De Compilador C30


http://ww1.microchip.com/downloads/en/devicedoc/c30_users_guide_51284f.pdf

Manual de PICkit 2
http://ww1.microchip.com/downloads/en/DeviceDoc/51553B.pdf

11

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP


PRCTICA 1.- Puertos de Entrada/Salida.

OBJETIVO: configurar los puertos como entradas o salidas, y de acuerdo a un pin de


entrada, decidir el estado lgico de un pin de salida.

MATERIAL

1 dsPIC33FJ128GP802.
1 Push-button.
1 Resistencia de 1 k.
1 Diodo emisor de luz (LED).
1 Resistencia de 10 k.
1 Cristal de 20MHz.
2 Capacitores de 30F (cermicos).
1 Capacitor de 4.7 F (tantalio de preferencia).
1 Protoboard.
1 Fuente de CD de 3.3Volts

ACTIVIDADES
1. Crear un nuevo proyecto en MPLAB IDE, con el cdigo de programa
proporcionado, compilarlo y programar el dsPIC.
2. Realizar la conexin proporcionada en la figura 6.
3. Verificar los resultados

DESCRIPCIN DEL PROGRAMA

El programa consiste en leer el bit 0 del puerto A, cuando est a 0 lgico, estarn
activados los bits 11 y 12 del puerto B, de lo contrario, los bits 11 y 12 tendrn un 0
lgico.

#include <p33FJ128GP802.h> // Incluir librera del dsPIC a utilizar

// * * * * BITS DE CONFIGURACION * * * * * * *
_FGS ( GSS_OFF & GWRP_OFF );
_FOSCSEL ( IESO_OFF & FNOSC_PRIPLL );
_FOSC ( FCKSM_CSDCMD & IOL1WAY_OFF & OSCIOFNC_OFF & POSCMD_XT );
_FPOR ( ALTI2C_OFF & FPWRT_PWR128 );
_FICD ( JTAGEN_OFF & ICS_PGD1 );
// * * * * * * * P R O G R A M A * * * * * * * * *
int main(void){
TRISA=0XFFFF; // Configuracin de los puertos
TRISB=0X0000; // Puerto A como entradas y B como salidas
AD1PCFGL=0XFFFF; // Configuracin de las entradas digitales
while(1) {
if(PORTAbits.RA0==0){ // Si bit 0 del puerto A=0
LATBbits.LATB11=1; // Pone a '1' bits 11 y 12
LATBbits.LATB12=1; // del puerto B
}
else {LATBbits.LATB11=0; // Si bit 0 de puerto A=1

12

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

LATBbits.LATB12=0; // Pone a '0' bits 11 y 12 del puerto B
} }
}
Al sistema mnimo de conexin del dsPIC, se deben agregar los componentes mostrados
en la figura 6.

Figura 6. Esquema de conexin para la prctica 1.

RESULTADOS

Las figura 7 nos muestra la conexin completa para la realizacin de esta prctica.

Figura 7. Conexin de componentes para la prctica 1.

En la figura 8 se muestran activos los leds, debido a que en la entrada se presenta un


0 lgico. En esta prctica se utilizaron los pines RA0, RB11 y RB12, pero podemos
configurar cualquiera de las 21 entradas/salidas que posee el dsPIC.

Figura 8. Estados habilitados RB11 y RB12 al estar RA0 en 0.

13

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

BIBLIOGRAFA

Enseguida se presentan enlaces donde el estudiante puede encontrar diversos


ejemplos de aplicaciones para entradas/salidas del dsPIC.

1. http://www.microchip.com/TechDoc.aspx?type=CodeExamples
2. http://ww1.microchip.com/downloads/en/DeviceDoc/70193c.pdf
3. http://isa.uniovi.es/~fernando/Programa_II_EUITI_archivos/Practica%20tablero%20P
uertos%20ES.pdf
4. http://www.ate.uniovi.es/8693/documentos/LECC7ce.pdf
5. http://ww1.microchip.com/downloads/en/DeviceDoc/70190C.pdf
6. http://www.mikroe.com/chapters/view/4/

14

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

PRCTICA 2.- El Temporizador



OBJETIVO: configurar el temporizador para generar tiempos muertos o retardos.

INTRODUCCIN

Un temporizador es un dispositivo configurable, que permite medir el tiempo. Una vez


que ha transcurrido el lapso de tiempo deseado, se emite una alarma, la cual indica que
ha terminado el tiempo programado. Para la configuracin del temporizador es
necesario definir FCY (Frecuencia de Instruccin), la cual est definida por:

!"#
!" =
2
donde FOSC representa la frecuencia de oscilacin, la cual est determinada por el
oscilador externo del dsPIC, y que estara dada por !"# = 20. Por lo que
utilizando un reloj externo de 20 MHz, el dsPIC puede realizar 10 millones de
instrucciones por segundo.

Para generar el retardo, se utilizar el Timer 0, el cual es de 16 bits, esto significa que
puede realizar una cuenta desde 0 hasta 65,535 (2!" 1). En el registro T1CON, se
puede utilizar un divisor de frecuencia (Prescaler), el cual se configura con un valor de
prescaler de 256.

Para la prctica, se calcular un retardo de 20 ms:

!"# = 20
!" !"#
!" = !
= 10

Prescaler: 256

!" = 39,062.5

Por lo que podemos calcular el valor deseado del temporizador de la siguiente manera:

1,000 39, 062.5

20 .

El valor de 781.25, se cargar en el temporizador, para qu una vez que haya llegado a
este valor se emitir una alarma.

Para la configuracin de la frecuencia de oscilacin, se dividi mediante el prescaler,


pero cabe hacer mencin que existe dentro del dsPIC un multiplicador (PLL) que
tambin permite incrementar la frecuencia de oscilacin.

15

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

MATERIAL
1 dsPIC33FJ128GP802.
1 Resistencia de 10 k.
1 Cristal de 20MHz.
2 Capacitores de 30F (cermicos).
1 Capacitor de 4.7 F (tantalio de preferencia).
1 Protoboard.
1 Osciloscopio
1 Fuente de CD de 3.3Volts

ACTIVIDADES
1. Armar el sistema mnimo del dsPIC.
2. Cargar al dsPIC el programa proporcionado en la prctica.
3. Visualizar en osciloscopio la salida (RB13).
4. Realizar el clculo para generar una onda cuadrada con frecuencia de 25
Hz (periodo de 40 ms 20 ms en estado alto y 20 ms en estado bajo).

DESCRIPCIN DEL PROGRAMA

El cdigo de programa que a continuacin se presenta, nos permite generar un cambio


de estado 0 1 lgico en la salida. Este cambio estar determinado por el valor que sea
cargado en el registro del temporizador, con lo que podemos obtener una salida que est
cambiando su nivel a determinado tiempo.

#include <p33FJ128GP802.h> // Incluir libreria del pic a utilizar

// * * * * BITS DE CONFIGURACION * * * * * * *
_FBS ( RBS_NO_RAM & BSS_NO_FLASH & BWRP_WRPROTECT_OFF );
_FSS ( RSS_NO_RAM & SSS_NO_FLASH & SWRP_WRPROTECT_OFF );
_FGS ( GSS_OFF & GWRP_OFF );
_FOSCSEL ( IESO_OFF & FNOSC_PRI );
_FOSC ( FCKSM_CSDCMD & IOL1WAY_OFF & OSCIOFNC_OFF & POSCMD_XT );
_FPOR ( ALTI2C_OFF & FPWRT_PWR128 );
_FICD ( JTAGEN_OFF & ICS_PGD1 );

void retardo_ms (void); // Definen las funciones


int main (void);

// * * * P R O G R A M A * * *
int main(void) {
TRISB=0B1101111111111111; // Configura bit13 del puerto B como salida
while(1){
LATB=0B0010000000000000; // Pone a '1' bit13
retardo_ms(); // Llama funcin de retardo
LATB=0X0000; // Pone a '0' bit13
retardo_ms(); // Llama funcin de retardo
}
}
//**** Funcin Retardo ****************
void retardo_ms( void ){ // Funcin de retardo
T1CON = 0; // Resetear el timer
TMR1 = 0;

16

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

IPC0bits.T1IP = 1; // Interrupcin con prioridad 1
PR1 = 781.25; // Valor en el registro (retardo de 20ms)
IFS0bits.T1IF = 0; // Interrupcin cuando llega a 0
IEC0bits.T1IE = 0;
T1CON = 0X8030; // Prescaler 1:256
while(IFS0bits.T1IF==0);
}
RESULTADOS

En la figura 9, se puede visualizar la salida del dsPIC (RB13) y la generacin del tiempo
muerto en el osciloscopio, el cual se defini de 20 ms para la parte alta de la onda
cuadrada (3.3 V), y otros 20 ms para la parte baja (0 V).

Figura 9. Retardo de 20 ms generado con dsPIC

BIBLIOGRAFA

En los siguientes enlaces, se presenta teora, prctica y configuracin de los


temporizadores. Cabe mencionar que el dsPIC33FJ128GP802 tiene 5 temporizadores de
16 bits.

1. http://galeon.com/leo-tronics/TutorialTimer0.pdf
2. ftp://193.170.235.123/Lernbehelfe/PIC%20Handb%FCcher/dsPIC33F_Reference_Man
ual/9_Watch_Dog_Timer.pdf
3. http://www.mikroe.com/chapters/view/52/chapter-4-timers/#ch4.1.1
4. http://www.todopic.com.ar/foros/index.php?topic=15200.0

17

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

PRCTICA 3.- Interrupciones

OBJETIVO: Comprender el concepto de interrupciones y su nivel de prioridad.

INTRODUCCIN

Una interrupcin es una seal interna o externa recibida por el dsPIC, la cual indica que
se debe "interrumpir" el curso de ejecucin actual (suspensin temporal) y pasar a
ejecutar una subrutina. Una vez finalizada la subrutina de interrupcin, se contina con
la ejecucin del programa principal.
Cuando existen varias peticiones de interrupcin a la vez, se establece un nivel de
prioridad para cada una de ellas. El dsPIC de acuerdo al nivel de interrupcin, ejecutar
cada una de ellas, atendiendo primero a la de mayor nivel de prioridad hasta atender
cada una de las peticiones de interrupcin. Una vez completadas las interrupciones,
regresar a la lnea del programa donde se encontraba antes del llamado de la
interrupcin.

MATERIAL
1 dsPIC33FJ128GP802.
1 Resistencia de 10 k.
1 Resistencia de 1 k.
1 Cristal de 20MHz.
2 Capacitores de 30F (cermicos).
1 Capacitor de 4.7 F (tantalio de preferencia).
1 Diodo LED de 5mm.
1 Diodo LED de 10 mm.
1 Push-button.
1 Protoboard.
1 Fuente de CD de 3.3Volts

ACTIVIDADES
1. Al sistema mnimo, agregar las conexiones mostradas en la figura 10.
2. Cargar al dsPIC el programa proporcionado en la prctica.
3. Visualizar la salida del programa sin ejecutar la interrupcin.
4. Visualizar la salida del programa al ejecutar INT0.

DIAGRAMA ESQUEMTICO

Para la realizacin de la prctica, al sistema mnimo de conexiones del dsPIC agregar


los siguientes componentes:

18

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

led 10 mm

led 5mm

Figura 10. Conexin para la prctica 3

DESCRIPCIN DEL PROGRAMA

El siguiente programa realiza dos procesos. El proceso principal consiste en generar una
secuencia alterno de estados lgicos (encendido/apagado del led de 5 mm) cada 1.2
segundos (1,200 ms); una vez que se habilita la interrupcin (accionamiento del Push-
Button), se proceder a ejecutar otro proceso que consiste en el encendido del led de 10
mm durante 6 segundos (6,000 ms). Una vez concluida la rutina de interrupcin, se
regresar al proceso principal.

#include <p33fj128gp802.h>
#define fcy 16000000

// * * * * BITS DE CONFIGURACION * * * * * * *
_FBS ( RBS_NO_RAM & BSS_NO_FLASH & BWRP_WRPROTECT_OFF );
_FSS ( RSS_NO_RAM & SSS_NO_FLASH & SWRP_WRPROTECT_OFF );
_FGS ( GSS_OFF & GWRP_OFF );
_FOSCSEL ( IESO_OFF & FNOSC_PRIPLL );
_FOSC ( FCKSM_CSDCMD & IOL1WAY_OFF & OSCIOFNC_OFF & POSCMD_XT );
_FPOR ( ALTI2C_OFF & FPWRT_PWR128 );
_FICD ( JTAGEN_OFF & ICS_PGD1 );

int main(void); // Declaracin de funciones


void retardo_ms( unsigned int ms );
void interrupcion(void);

// / / / / / / PROGRAMA PRINCIPAL / / / / / / / / / / /

int main(void){
while(1){ // Ciclo del programa
TRISB=0x5FFF; // bit 13 y 15 como salida
LATBbits.LATB13=1; // '1' bit 13
retardo_ms(1200);
LATBbits.LATB13=0; // '0' bit 13
retardo_ms(1200);
interrupcion();
}
}
void __attribute__((__interrupt__)) _INT0Interrupt(void){ //Proceso de interrupcin

LATBbits.LATB15=1; // '1' en RB15


retardo_ms(2000);
retardo_ms(2000); // Retardo
retardo_ms(2000);

19

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

LATBbits.LATB15=0; // '0' en RD3
IFS0bits.INT0IF = 0; // Salida de la funcin
}
void interrupcion( void ) { // Configuracin de la interrupcin

INTCON2bits.INT0EP = 1;
IPC0bits.INT0IP = 4;
IEC0bits.INT0IE = 1; // Habilita Interrupcin
}
void retardo_ms( unsigned int ms ){
unsigned int periodo=0;
T1CON =0;
TMR1 = 0; // Timer comienza en 0
IPC0bits.T1IP =1;
periodo= (( fcy/256)*ms)/1000;
PR1= periodo; // Tiempo en el registro del timer
IFS0bits.T1IF=0; // Limpia bandera del timer
IEC0bits.T1IE=0; // Deshabilita timer
T1CON=0x8030; // configura TICON
while(IFS0bits.T1IF==0);
}

RESULTADOS

En la figura 11, se puede observar las conexiones necesarias para la realizacin de la


prctica. Los leds nos permitirn visualizar la ejecucin del programa principal (led de
5mm, RB13) y cuando se ejecute la interrupcin se visualizar mediante el led de
10mm, conectado a RB15.

Figura 11. Conexin en protoboard para la prctica 3.

La figura 12 nos muestra la ejecucin del programa principal, el cual consiste en un


encendido/apagado del led de 5mm cada 1.2 seg.

Figura 12. Muestra de la ejecucin del programa principal.

20

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

Mientras tanto, la figura 13 muestra la ejecucin de la subrutina de interrupcin


(encendido del led de 10mm, RB15). Una vez que se concluye la subrutina, se regresa a
la ejecucin del programa principal.

Figura 13. Activacin de la interrupcin mediante un push-button.

BIBLIOGRAFA

Para ms aplicaciones, niveles de interrupcin y ejemplos de programacin, se


proporciona la siguiente lista de pginas electrnicas donde el estudiante podr
consultar los ejemplos.

1. http://ww1.microchip.com/downloads/en/DeviceDoc/70189c.pdf
2. http://ww1.microchip.com/downloads/en/DeviceDoc/70214C.pdf
3. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2573
4. http://batchloaf.wordpress.com/2012/04/12/simple-timer-1-interrupt-example-for-the-
dspic30f4011/

21

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

PRCTICA 4.- El ADC



OBJETIVO: realizar la conversin de seales analgicas en seales digitales,
utilizando el ADC interno del dsPIC, con resolucin de 10 y 12 bits.

INTRODUCCIN

El convertidor Analgico/Digital (ADC), es un circuito que toma valores analgicos de


tensin y los convierte en una palabra binaria. Los valores que definen los lmites de las
tensiones a medir se denominan voltajes de referencia, y se representan por VREF- (el
mnimo) y VREF+ (el mximo). La resolucin del convertidor queda determinada por la
cantidad de bits que representan el resultado de la conversin. El dsPIC33FJ128GP802
tiene dos convertidores analgico/digital, uno con resolucin de 10 bits y el otro de 12
bits.

Un ADC de n bits puede representar hasta 2n valores digitales, de modo que a la entrada
analgica igual a VREF- se le asignar el valor 0 digital, y la entrada igual a VREF+ le
asignar el valor 2n 1 digital. Entre VREF- y VREF+ se pueden presentar un nmero
infinitos de valores analgicos, pero con n bits, solo se pueden formar 2n valores
discretos diferentes. Por lo tanto habr valores analgicos que no podrn ser
representados con exactitud (error de cuantizacin).

La diferencia entre dos valores analgicos correspondientes a dos valores digitales


consecutivos se define como la resolucin de voltaje del ADC.

!"#! !"#!
=
2! 1

Para la realizacin de esta prctica se considera el ADC con resolucin de 12 bits,


donde !"#! = 0 y !"#! = 3.3 , por lo que la resolucin del ADC ser de
0.805 mV. Si se considera el ADC de 10 bits, se tendra una resolucin de 3.22 mV.

MATERIAL
1 dsPIC33FJ128GP802.
1 Resistencia de 10 k.
1 Cristal de 20MHz.
2 Capacitores de 30F (cermicos).
1 Capacitor de 4.7 F (tantalio de preferencia).
12 Diodos LED.
1 Protoboard.
2 Fuente variable de CD de 3.3Volts

ACTIVIDADES
1. Al sistema mnimo, agregar las conexiones mostradas en la figura 14.

22

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

2. Cargar al dsPIC el programa proporcionado en la prctica.
3. Variar el nivel de CD desde 0 Volts en la entrada (RA0), pero sin
sobrepasar los 3.3 Volts.
4. Comprobar nivel de CD en la fuente con la salida digital.

DIAGRAMA ESQUEMTICO

Para la realizacin de la prctica, al sistema mnimo de conexiones del dsPIC agregar


los siguientes componentes:

Figura 14. Esquema de conexin para la prctica 4.

DESCRIPCIN DEL PROGRAMA

El programa lee una entrada analgica de 0 3.3 Volts en CD (VREF+), la cual es


convertida en seal digital con resolucin de 12 bits mediante el ADC interno del
dsPIC. Una vez realizada la conversin, el dato es enviado al puerto B donde se puede
visualizar de manera digital a travs de los leds.
#include <p33FJ128GP802.h>

// * * * * BITS DE CONFIGURACION * * * * * * *
_FBS ( RBS_NO_RAM & BSS_NO_FLASH & BWRP_WRPROTECT_OFF );
_FSS ( RSS_NO_RAM & SSS_NO_FLASH & SWRP_WRPROTECT_OFF );
_FGS ( GSS_OFF & GWRP_OFF );
_FOSCSEL ( IESO_OFF & FNOSC_PRIPLL );
_FOSC ( FCKSM_CSDCMD & IOL1WAY_OFF & OSCIOFNC_OFF & POSCMD_XT );
_FPOR ( ALTI2C_OFF & FPWRT_PWR128 );
_FICD ( JTAGEN_OFF & ICS_PGD1 );

#define fcy 16000000

23

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

int main(void); // Declaracin de funciones
void retardo_ms( unsigned int ms );
void adc (void);

// / / / / / / PROGRAMA PRINCIPAL / / / / / / / / / / /

int main(void){
TRISB=0X0000; // Puerto B como salida
adc(); // Llama funcin adc
AD1CON1bits.ADON = 1; // Habilita ADC

while(1){
AD1CON1bits.SAMP = 1; // Bit para habilitar muestreo
retardo_ms(3); // Tiempo para realizar el muestreo
AD1CON1bits.SAMP = 0; // Retiene dato

while(!AD1CON1bits.DONE); //Se ha realizado la conversin?


PORTB=ADC1BUF0; // Datos se guardan en ADC1BUF0 y se enva al puerto B
}
}
// / / / / / / CONFIGURACION DEL ADC / / / / / / / / /
void adc (void){

TRISA = 0x0001; // Entrada analgica RA0


AD1PCFGL = 0x0000; // Todas entradas analgicas
AD1CON1bits.AD12B=1; // 1=12 bits resolucin y muestreo secuencial
// de los canales; 0= 10 bits ADC
AD1CON1bits.ASAM=0; // El muestreo inicia cuando bit SAMP=1
AD1CON1bits.SSRC=0; // Termina el muestreo e inicia la conversin

AD1CHS0bits.CH0NA =0; // La entrada negativa ser Vss


AD1CHS0bits.CH0SA =0; // Entrada positiva ser AN0

AD1CON2bits.CSCNA =0; // Muestreo secuencial (scan) deshabilitado


AD1CON2bits.VCFG =0; // Referencia para la conversin: Referencia
//positiva=AVdd, Negativa=AVss

AD1CON2bits.BUFM =0; // Configurado como buffer de 16 palabras


AD1CON2bits.SMPI =0; // Despus de la conversin se genera la interrupcin
AD1CON2bits.ALTS =0; // Solo muestra un Canal

AD1CON3bits.ADRC =0; // Reloj del ADC es derivado del sistema


AD1CON3bits.ADCS =21; // Tiempo de conversin.
}
void retardo_ms( unsigned int ms ){
unsigned int periodo=0;
T1CON =0;
TMR1 = 0; // Reset Timer
IPC0bits.T1IP =1;
periodo=((fcy/256)*ms)/1000;
PR1= periodo; // Tiempo en el registro del timer
IFS0bits.T1IF=0; // Limpia bandera del timer
IEC0bits.T1IE=0; // Deshabilita timer
T1CON=0x8030; // configura TICON = 0100000000110000
while(IFS0bits.T1IF==0);

24

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

RESULTADOS

En la figura 14, se muestra el esquema completo de conexin con una entrada analgica
de 0 volts.

Figura 14. Conexin en protoboard para la prctica 4.

La figura 15 muestra el valor digitalizado cuando se tiene una entrada analgica de 0.5
Volts, cabe mencionar que el bit menos significativo est en el lado izquierda de la
figura.

Figura 15. Conversin para una entrada analgica de 0.5 Volts.

25

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

Finalmente, la figura 16 muestra una entrada analgica de 1.6 Volts en RA0, y la figura
17 cuando se tienen la mxima entrada aceptada en RA0 (3.3 Volts).

Figura 16. Conversin digital de una entrada analgica de 1.6 Volts

Figura 17. Conversin digital de una entrada analgica de 3.3 Volts

26

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

BIBLIOGRAFA

En los siguientes enlaces se presenta la teora y prcticas acerca de la conversin


analgica/digital. Como tema importante se describe el Criterio de Nyquist que es
fundamental para la digitalizacin de seales.

1. http://redwood.berkeley.edu/bruno/npb261/aliasing.pdf
2. http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Nyquist%E2%80%93Shannon
_sampling_theorem.html
3. http://www.cursomicros.com/avr/conversor-adc/conversor-adc-del-
avr.html#resolucion-voltajes-referencia
4. http://isa.uniovi.es/~fernando/Programa_II_EUITI_archivos/Practica%20tablero%20C
onversorAD.pdf
5. http://www.ucontrol.com.ar/forosmf/programacion-en-c/conversor-ad-dspic30f/?wap2
6. http://www.microchip.com/TechDoc.aspx?type=CodeExamples

27

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

PRCTICA 5.- CONVERSION EN SERIE ADC DAC


OBJETIVO: realizar la conversin analgica/digital de una seal y enseguida


digital/analgica, al conectar en serie los procesos ADC DAC, y de esta manera
comprobar el criterio de Nyquist.

INTRODUCCION

En el proceso de conversin Analgica/Digital Digital/Analgica de una seal, se


deben considerar dos aspectos muy importantes: el muestreo y la cuantizacin de la
seal. Durante estos procesos, se toman muestras y se cuantizan de acuerdo a la
resolucin del convertidor, por lo que estas operaciones nos pueden restringir la
informacin que se transmite de forma digital.

La consideracin fundamental en el muestreo depende de que tan rpido o durante


que intervalo de tiempo se pueda extraer informacin de la seal, tal que ms adelante
sea posible reconstruir la seal sin tener prdidas de su comportamiento dinmico. En la
figura 18 se muestra de manera general como se realiza el muestreo de una seal.

x(t)
x(T)=x[1]
x[0] x(2T)=x[2]
x[-1] x[3]
x[-2] x[4]

T=Tiempo de muestreo

Figura 18. Muestreo de una seal x(t) cada T seg.

TEOREMA DE NYQUIST

El teorema de Nyquist establece que la reconstruccin de una seal x(t) a partir de sus
muestras x[k], es posible si la seal es muestreada al doble de su ancho de banda (al
menos). Por ejemplo, Si la frecuencia ms alta contenida en la seal analgica () es
!"# , entonces para recuperar la seal () debemos de muestrear a una tasa Fs que
cumpla ! 2!"# .

Cuando la frecuencia de muestreo no cumple el criterio de Nyquist, se produce el


fenmeno conocido como aliasing o traslape, a travs del cual una seal de alta
frecuencia es interpretada como una seal de baja frecuencia.

28

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

1

x1(t) x2(t)
0.8

0.6

0.4

0.2

0.2
x[k]

0.4

0.6 T=0.1 seg


Fs=10 Hz

0.8

1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tiempo (seg)

Figura 19. Seales muestredas que describen el fenmeno de traslape: x1(t) 3 Hz, x2(t) 13 Hz, y
Fs=10 Hz.

MATERIAL
1 dsPIC33FJ128GP802.
1 Resistencia de 10 k.
1 Cristal de 20MHz.
2 Capacitores de 30F (cermicos).
1 Capacitor de 4.7 F (tantalio de preferencia).
1 Protoboard.
1 Generador de funciones.
1 Osciloscopio.
1 Fuente variable de CD de 3.3Volts.

ACTIVIDADES
1. Al sistema mnimo, agregar las conexiones mostradas en la figura 20.
2. Cargar al dsPIC el programa proporcionado en la prctica.
3. Configurar la seal de entrada por medio del generador de funciones,
para establecer una seal senoidal positiva con amplitud de 3Vpp (0.15
Volts a 3.15 Volts) y f = 1KHz. Esta seal se introduce en la entrada
analgica del dsPIC (AN4).
4. En el osciloscopio visualizar la seal de entrada, as como la salida
(DAC1RP).
5. Visualizar la salida cuando se realiza un barrido de frecuencia en la seal
de entrada desde 100 Hz hasta 1MHz.
6. Conclusiones.

DIAGRAMA ESQUEMTICO

Para la realizacin de la prctica, al sistema mnimo de conexiones del dsPIC agregar


los siguientes componentes:
29

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

Figura 20. Esquema de conexin para la prctica 4.

DESCRIPCIN DEL PROGRAMA

El siguiente programa realiza la conversin de una seal analgica, e inmediatamente la


reconstruye mediante un proceso secuencial Analgico/Digital Digital/Analgico, es
decir, la misma entrada se debe visualizar a la salida del dsPIC. Mediante ste proceso
se podr comprobar el teorema de Nyquist, ya que si no se cumple el criterio de
muestreo, se tendr una perdida de informacin, la cual se ver reflejada en la salida
como una seal de menor frecuencia, cuando la frecuencia de la entrada exceda la mitad
de la tasa de muestreo.
#include "p33fj128gp802.h"
#include "dsp.h"
#include "..\h\adcdacDrv.h"

_FOSCSEL(FNOSC_FRC); // Configuracin de oscilador


_FOSC(FCKSM_CSECMD & OSCIOFNC_ON & POSCMD_NONE);
_FWDT(FWDTEN_OFF);

int main (void){

PLLFBD=41; // Configuracin de dsPIC a 40MIPS


CLKDIVbits.PLLPOST=0; // N1=2
CLKDIVbits.PLLPRE=0; // N2=2
OSCTUN=0;
RCONbits.SWDTEN=0; // Deshabilita WatchDog Timer
__builtin_write_OSCCONH(0x01); // Habilita reloj con PLL
__builtin_write_OSCCONL(0x01); // Comienza reloj

while (OSCCONbits.COSC != 0b001); // Espera para cambio de reloj


while(OSCCONbits.LOCK!=1) {};

initAdc(); // Inicializa funciones


initDac();
initDma0();
initTmr3(); // Timer para muestreo de la seal

30

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

extern fractional BufferA[NUMSAMP]; // Configura buffer A


extern fractional BufferB[NUMSAMP]; // Configura buffer B
extern unsigned int DmaBuffer; // Habilita DMA
extern int flag; // Bandera de DMA
int i; // Declara variable i

while (1) {
if(flag) {
for(i = 0; i < NUMSAMP; i++){
while(DAC1STATbits.REMPTY != 1); // Espera la conversion D/A.
if(DmaBuffer == 0)
DAC1RDAT = BufferA[i]; // Carga dato al registro
else
DAC1RDAT = BufferB[i]; // Carga dato al registro }
flag = 0;
}
}
return 0;
}
fractional BufferA[NUMSAMP] __attribute__((space(dma))); // Modo de salida al buffer A
fractional BufferB[NUMSAMP] __attribute__((space(dma))); // Modo de salida al buffer

void initAdc(void) // Funcin ADC


{ AD1CON1bits.FORM = 3; // Formato de salida.
AD1CON1bits.SSRC = 2;
AD1CON1bits.ASAM = 1; // ADC convierte despus del muestreo
AD1CON1bits.AD12B = 1; // Resolucin de 12 bits
AD1CON2bits.CHPS = 0; // Canal CH0
AD1CON3bits.ADRC = 0; // reloj del ADC derivado del sistema
AD1CON3bits.ADCS = 3; // Tad=Tcy*(ADCS+1)= (1/40M)*4 = 100ns
// Tc=14*Tad = 1.4us
AD1CON1bits.ADDMABM = 1;
AD1CON2bits.SMPI = 0;
AD1CHS0bits.CH0SA = 4; // Entrada positiva AN4
AD1CHS0bits.CH0NA = 0; // Entrada negative Vref-
AD1PCFGL=0xFFFF; // todas las entradas analgicas
AD1PCFGLbits.PCFG4 = 0; // AN4
IFS0bits.AD1IF = 0; // Habilita ADC
IEC0bits.AD1IE = 0;
AD1CON1bits.ADON = 1;
}
void initDac(void) { // Funcin DAC
ACLKCONbits.SELACLK = 0; // Configuracin de reloj
ACLKCONbits.AOSCMD = 0;
ACLKCONbits.ASRCSEL = 0;
ACLKCONbits.APSTSCLR = 7;
DAC1STATbits.ROEN = 1; // Salida DAC1RP
DAC1DFLT = 0x0000; // Valor de referencia de la conversin
DAC1CONbits.DACFDIV = 5;
DAC1CONbits.FORM = 1; // Formato del dato
DAC1CONbits.AMPON = 0;
DAC1CONbits.DACEN = 1; // Habilita DAC
}
void initTmr3() { // Funcin Timer
TMR3 = 0x0000; // Reset TMR3
PR3 = SAMPPRD; // carga valor al timer
IFS0bits.T3IF = 0;

31

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

IEC0bits.T3IE = 0;
T3CONbits.TON = 1; // Habilita Timer 3
}
void initDma0(void){
DMA0CONbits.AMODE = 0; // Configuracin DMA
DMA0CONbits.MODE = 2;
DMA0PAD = (int)&ADC1BUF0;
DMA0CNT = (NUMSAMP-1);
DMA0REQ = 13;
DMA0STA = __builtin_dmaoffset(BufferA);
DMA0STB = __builtin_dmaoffset(BufferB);
IFS0bits.DMA0IF = 0;
IEC0bits.DMA0IE = 1;
DMA0CONbits.CHEN = 1; // Habilita canal DMA
}
unsigned int DmaBuffer = 0;
int flag = 0;
void __attribute__((interrupt, no_auto_psv)) _DMA0Interrupt(void){
DmaBuffer ^= 1;
flag = 1;
IFS0bits.DMA0IF = 0;
}
void __attribute__((interrupt, no_auto_psv)) _DAC1RInterrupt(void)
{
IFS4bits.DAC1RIF = 0;
}

RESULTADOS

En las siguientes figuras se observa el proceso de conversin ADC - DAC cuando se


tiene una entrada senoidal, triangular y cuadrada con frecuencias de 1KHz en las 3
seales. Cul sera la frecuencia de muestreo que se mide experimentalmente al variar
la frecuencia de entrada de 100 Hz a 1 MHz?

Salida

Entrada

Figura 21. Conversin en serie ADC-DAC para una seal senoidal.

32

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

Salida

Entrada

Figura 21. Conversin en serie ADC-DAC para una seal triangular.

Salida

Entrada

Figura 22. Conversin en serie ADC-DAC para una seal cuadrada.

BIBLIOGRAFA

En los siguientes enlaces se presenta la teora del criterio de Nyquist, ejemplos de


programacin y referencia de los registros utilizados para la realizacin de esta prctica.

1. http://tintoretto.ucsd.edu/jorge/teaching/mae143a/lectures/8sampling.pdf

33

Prcticas de Laboratorio
Procesamiento Digital de Seales
Facultad de Ciencias, UASLP

2. http://embeddedcodesource.com/developer/microchip_technology/ce154__adc_to_dac_
loopback
3. http://www.dspguide.com/ch3/2.htm
4. http://es.wikipedia.org/wiki/Teorema_de_muestreo_de_Nyquist-Shannon
5. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824
&appnote=en539328
6. http://www.microchip.com/TechDoc.aspx?type=CodeExamples
7. http://ww1.microchip.com/downloads/en/DeviceDoc/70183D.pdf
8. http://www.element14.com/community/solutions/2622

34

Você também pode gostar