CAPITULOI
CAPITULOI
CAPITULOI
PROCESADOR DIGITAL DE SEAL dsPIC Los procesadores digitales de seales son microprocesadores diseados para ejecutar algoritmos matemticos repetitivos, teniendo caractersticas similares a la de los microprocesadores de propsito general. Los procesadores digitales de seales poseen una ventaja de aumentar su velocidad porque cuentan con unidades aritmticas especializadas, caracterstica que le permite hacer trabajos simultneamente. Un dsPIC est compuesto bsicamente de un registro que alberga o almacena informacin a la que se le denomina Memoria de Datos y un registro donde se almacena el programa inteligente denominada Memoria de Programa. Qu son realmente los dsPIC? Son microcontroladores PIC de 16 bits a los que se han aadido las prestaciones de los DSP (Procesadores Digitales de Seales). Adems del elevado rendimiento y los numerosos perifricos que integran los dsPIC se distinguen por disponer de un motor DSP que aade al repertorio de instrucciones clsico un conjunto de 19 instrucciones DSP capaces de resolver ptimamente filtros, algoritmos para el tratamiento de la imagen y el sonido, ecuaciones matemticas, etc.
Captura y mantenimiento Seal Digital Seal Analgica
Setear
Muestras Discretas Muestreo Control()
Procesador Digital
Seal Digital Actuador Seal Analgica
Figura 1. Diagrama por bloques de un sistema de procesamiento digital de seales. Caractersticas bsicas de los dsPIC: Rango de funcionamiento - Temperatura: interna de -40 a 85C y externa de -40 a 125C - Voltaje de alimentacin de 2.5 a 5.5V CPU de alto rendimiento - Bus de datos de 16 bits - Banco de 16 registros de propsito general de 16 bits - Manejo de pila con software - Bus de instrucciones 24 bits - Repertorio de 84 instrucciones
Pgina 1
CAMPOS DE APLICACIN DE LOS dsPIC - Voz y Sonido: Permiten eliminar ruidos, reconocimiento de voz y reproduccin de sonidos digitales, as mismo puede actuar en la realizacin de funciones tales como monitorizacin digital, ecualizador y radio por satlite, etc. Control de Motores: Tienen gran participacin para la regulacin de la velocidad, gobierno de aperturas de puertas, maquinas de gimnasia, aspiradoras, etc. - Monitorizacin de sistemas de alimentacin: El conversor AD con que cuenta les hace participativos para la monitorizacin de la alimentacin de servidores, interrupcin de circuitos y control industrial para la carga de bateras. - Conexin a Internet: La participacin en el modulo Ethernet TCP/IP, as mismo en libreras de aplicacin para MODEM permitiendo aadir a los diseos la conectividad. PUERTOS DE ENTRADA Y SALIDA Un dsPIC est compuesto por pines, cuya funcin es enlazar puertos analgicos o digitales, estos pines estn divididos por grupos que pueden ser configurados como Entradas (1) o Salidas (0). El nmero y tipo de puertos depende del modelo de dsPIC que se trate. Todos los pines del dispositivo, salvo VDD, VSS, MCLR y OSC1/CLKI son repartidos entre seales que requieran los perifricos y las lneas de E/S de propsito general. En general, los puertos de E/S son las que permiten que el dsPIC supervise y controle otros dispositivos externos; la mayor parte de pines de E/S soportan varias funciones alternativas multiplexadas en el tiempo. Se debe mencionar que cuando un pin se dedica a un perifrico no puede emplearse al mismo tiempo como el pin de propsito general.
Pgina 2
RD LAT TRIS Q LAT o Puerto CK Cerrojo de datos Bus de datos Puerta RD Pin de E/S Q
Figura 2. Modelo Simplificado de Puerta de entrada/salida ESTRUCTURA DE LOS PUERTOS DE ENTRADA/SALIDA REGISTROS DE CONTROL DE LOS PUERTOS DE E/S: PORT (PORTx): Es un registro de E/S que permiten la lectura o escritura en el puerto, contiene el valor de las lneas de entrada. LATCH (LATx): Registro de E/S se encarga de almacenar el valor que sacan las lneas de salida los LATCHs. TRIS (TRISx): Almacena el valor de la configuracin de los puertos, determinando s, es Entrada (1) o Salida (0). Figura 3. Estructura de los puertos de E/S Los registros PORT: Aquellos datos existentes en los pines de entrada de E/S son accedidos a travs del registro PORTx. Mediante una lectura del registro PORTx se lee el valor que soportan o reciben los pines los pines de E/S, mientras que una escritura en dicho puerto escribe el valor en el registro LATCH correspondiente. Los registros LAT: El registro LATx asociado a un pin de E/S elimina los problemas que pueden ocurrir con las instrucciones de lectura, modificacin y escritura. Los registros TRIS: Los bits del registro de control TRISx son los que determinan si cada pin asociado a cada lnea de E/S correspondiente est configurada como entrada o salida. Si se da el caso que el bit TRIS asociado a un pin de E/S (1) entonces el pin estar configurado como entrada. En caso contrario, si vale (0), estar configurada como salida.
Pgina 3
Como podemos apreciar esta es una instruccin, en la cual el numero 51 se encuentra en formato decimal y se representa su equivalencia como 00110011 en binario
51 dec = 00110011 bin
Ahora bien, supngase que el registro X no tiene datos inicialmente (es decir cada bit es cero), luego del comando X tendr sus 8 celdas con los datos asignados, cada cero y cada uno tiene un significado elctrico, pues as al tener cero quiere decir que hay una tensin de 0 Voltios y al tener 1 tenemos una tensin de 5 voltios. SOFTWARE X = 51 HADWARE
+5V
Figura 4. Funcionamiento de los puertos de E/S Cuando un perifrico es habilitado y el perifrico esta activamente manejando un pin asociado, el uso del pin como pin de salida de propsito general es deshabilitado. El pin de E/S puede ser ledo, pero el driver de salida del bit de puerto paralelo ser deshabilitado. Si un perifrico es deshabilitado, pero el perifrico no est manejando un pin activamente, el pin puede ser manejado por un puerto.
Pgina 4
Figura 5. Diagrama dsPIC modelo dsPIC33FJ32MC204 El dsPIC33FJ32MC204/304 tiene diecisis, registros de 16 bits que trabaja en el modelo del programador. Cada uno de los registros en funciones puede servir como unos datos o direccin. Hay dos clases de instruccin en el dsPIC33FJ32MC204/304: MCU y DSP. Estas dos clases de instruccin son como una sola pieza integradas en un solo CPU. El set de instruccin incluye muchos modos de direccionamiento y es diseado para la eficiencia ptima del compilador de la C. Para la mayora de instrucciones, el dsPIC33FJ32MC204/304 son capaces de ejecutar unos datos (o los datos de programa) que la memoria ley, un registrador en funciones (los datos) lee, una memoria de datos escriba y una memoria de programa (la instruccin) ley por el ciclo de instruccin. DESCRIPCION DE LOS PUERTOS DE E/S DEL dsPIC33FJ32MC204 Alimentacin: VDD: Este pin sirve para el suministro de voltaje de alimentacin positiva. VSS: Este pin se emplea como voltaje de referencia para el dispositivo. VREF +(E): Referencia de voltaje para seales analgicas VREF (E): Referencia de voltaje negativo para seales analgicas. AVDD: Suministro de alimentacin positiva para el mdulo analgico. AVSS: Suministro de alimentacin negativa para el mdulo analgico. VDDCORE: La conexin del condensador del filtro de lgica al CPU. CAPITULO-I :: PUERTOS DE E/S Pgina 5
Pgina 7
Una vez realizada los pasos anteriores, nos muestra una ventana el cual nos permitir crear un nuevo proyecto en MPLAB, prosiguiendo damos click en siguiente
Ahora bien, se necesita seleccionar el dispositivo a utilizar que en este caso es el dsPIC33FG32MC204, para ello escribimos o seleccionamos el modelo a buscar en la opcin Device
Pgina 8
Ahora bien, en la ventana debemos ubicarnos la opcin Create New Project File y damos click en Browse para ubicar la carpeta (PRACTICA1)donde guardaremos nuestro proyecto, escribimos el nombre del proyecto en este caso le damos Ejercicio1 y luego click en Guardar as mismo en siguiente.
Pgina 9
Ahora el asistente de proyectos nos brinda un resumen de la configuracin de los pasos hechos anteriormente, damos clik en finalizar.
Pgina 10
Seleccionamos View>Project, realizado este paso se nos muestra una nueva ventana con el nombre del proyecto Ejercicio1.mcp, damos click derecho en la opcin Source File y click en Add Files
Pgina 11
Luego agregaremos las cabeceras de los dsPIC para ello damos click derecho en Header Files y luego Add Files se nos mostrar una ventana en el cual ubicaremos la libreras C:\Program Files\Microchip\MPLABC30\support\dsPIC33F\h, seleccionamos el modelo de dsPIC p333FJ32MC204 y damos click en Abrir.
Pgina 12
Ahora bien, empezaremos a desarrollar nuestro primer proyecto en C30, en la ventana Solucion1.c. En la siguiente figura podemos observar la librera #include "p33FJ32MC204.h" el cual contiene los nombres de los registros del DSPIC.
Pgina 13
A continuacin, necesitamos ingresar al Proteus 7 (ISIS 7 Profesional) el cual nos permitir hacer un modelado de proyecto creado, cabe mencionar que este software cuenta con una gama de herramientas que nos facilita desempear nuestro modelado.
Ya dentro del Proteus 7, procedemos a escoger las herramientas a utilizar para el modelado del proyecto, para lo cual nos dirigimos en la botn (Seleccionar libreras) pick from libraries ubicada en la parte superior derecha, ya hecho este paso tendremos una ventana que contiene todas la libreras o herramientas.
Pgina 14
Ya hecho esta adicin de las herramientas a utilizar procedemos a seleccionar cada una de ellas y la adicionaremos al panel, se har mediante la seleccin y doble en el panel tratado de buscar la posicin que ms se ajuste para una mejor conexin de ellas.
Ahora procedemos a dibujar el circuito basndonos en la configuracin antes hecha en el MPLAB, nos ubicamos en el pin RA0 que es nuestro pin de salida que va ser conectado a nuestro led y as mismo el led con la resistencia. CAPITULO-I :: PUERTOS DE E/S Pgina 15
Ahora debemos dar doble click en el DSPIC y nos mostrara una nueva ventana, con la descripcin de ella.
Ubicamos en la ventana el icono abrir y ubicaremos la carpeta donde hemos guardado el proyecto en MPLAB, seleccionamos el ejecutable en hexadecimal que en este caso tiene el nombre de Ejercicio1.hex y damos click en abrir.
Pgina 16
A continuacin la pantalla anterior nos mostrara el ejecutable ya adicionado y como paso siguiente damos click en OK.
Ahora todo listo lo que nos queda es hacer click en la parte inferior izquierda en el botn y se apreciar todo nuestro proyecto ya en funcionamiento con el led que se prende y apaga, una y otra vez. Finalmente guardamos el proyecto en la carpeta donde se encuentra el cdigo de MPLAB.
Pgina 17
EJERCICIO N 02: Construir un programa similar al anterior, en cual contenga una funcin delay para definir bases de tiempo, usando una funcin con un argumento de entrada entero (para controlar el tiempo de parpadeo). DESARROLLO: En el desarrollo de este ejercicio se incluye ya una funcin delay_estandar (t) que va determinado por argumento t que indica el tiempo que demorar nuestro led en prender y apagar.
Para el diseo final se hace uso de herramientas tales como LED-GREEN el cual nos mostrara la luz intermitente, y una resistencia modelo 3WATT47R al que conecta nuestro led y el CAPITULO-I :: PUERTOS DE E/S Pgina 18
EJERCICIO N 03: Construir un programa para un dsPIC33FJ32MC204 tal que haga que los LED 03-10 se prendan consecutivamente, es decir primero el LED 03 por un tiempo t, luego el LED 04 (apagndose el LED 03 al mismo tiempo) y as consecutivamente de manera continua. DESARROLLO: Este ejercicio es similar al ejercicio anterior, teniendo como diferencia el hecho de que se trabaja con 8 pines, los cuales estn relacionados con los registros LATA y sus respectivas salidas en valor hexadecimal como muestra el cdigo, el cual indicar que se est activando el pin RA0,RA1RA10 y a la vez indica que se encendern los leds cada una en un tiempo determinado.
Pgina 19
Diseo final es muy similar al anterior variando ligeramente en el uso de herramientas tales como: 8 leds modelo LED-BLUE que son conectados a sus respectivos pines, 8 resistencias del modelo 3WATT47R cada una de ellas conectada su respectivo led y el dsPIC33FJ32MC204 que cumple la funcin principal para el funcionamiento general.
Pgina 20
EJERCICIO N 04: Construir un programa para un dsPIC33FJ32MC204 tal que usando el Switch S3 en el Proteus (el pin RD6 del dsPIC), se pueda controlar el sentido de encendido de los LED: Cuando se mantiene presionado el Switch las luces van en sentido ascendente (LED 03, LED 04) y cuando se deja de presionar el sentido es el inverso (LED 10, LED 09) DESARROLLO: Este ejercicio trabaja con switchs que son pulsadores y como se aprecia en el cdigo, aqu ya se hace uso de la condicional if que trabaja con el pin RB0 del PORTB el cual conectara a nuestro pulsador y nos indica los leds se prendern al pulsar el botn de lo contrario permanecer apagado.
Pgina 21
Pgina 22
EJERCICIO N 05: Construir un programa para un dsPIC33FJ32MC204 tal que el dsPIC haga lo siguiente: Inicialmente todos los LED estn apagados. - Si aprieta S3 (RD6) los leds se encienden y parpadean al mismo tiempo - Si aprieta S4 (RD13) los leds se encienden consecutiva y continuamente - Si aprieta S6 (RD7) se apagan todos los leds DESARROLLO: Usamos condicionales para cada caso haciendo uso de los pines del PORTB con el cual controlamos que switch o botn se est presionando, adems se hace uso de funciones para cada pulsador determinando as que realice las acciones para las que se le program.
Pgina 23
Pgina 24
EJERCICIO N 06: Construir un programa para un dsPIC33FJ32MC204 tal que se pueda mostrar una secuencia en 8 LEDS del siguiente modo: prende y apaga D4-D5, prende y apaga D3-D6, prende y apaga D2-D7, prende y apaga D1-D8 y regresa al estado inicial. DESARROLLO: Bsicamente la programacin de este ejercicio es muy similar a los realizados anteriormente, con la ligera diferencia que aqu se trabaja con los PORT y no con los LAT, pero que en esencia nos da una reaccin similar al encender y apagar los leds.
Pgina 25
Pgina 26
Pgina 27