Sei sulla pagina 1di 5

Diseño con DSPIC30F4013 en lenguaje MikroBasicPro for DSPIC Docente: Ing.

Roger Guachalla Narváez


xoroger@yahoo.es

PRACTICA 04: Controlador Digital de Señal dsPIC30F4013

1. Objetivos:

 Conocer las características principales del controlador digital de señal dsPIC30F4013


 Realizar operaciones de Entrada y Salida con los puertos del procesador
 Realizar un programa en lenguaje MikroBasicPro que implemente un contador binario con retardo de 200
milisegundos por el puerto RB del DSPIC30F4013.
 Utilizar simulador integrado en MikroBasicPro for dsPIC para comprobar el funcionamiento del programa.

2. Fundamento Teórico

Introducción
 La empresa Microchip ocupa el primer puesto en el ranking mundial de microcontroladores de 8 bits desde el año
2003; sus modelos son conocidos popularmente con el nombre genérico de PIC. Tras el exitoso lanzamiento de las
familias de microcontroladores de 16 bits PIC24, los usuarios necesitan nuevos dispositivos que soporten funciones
de procesamiento digital de señales para atender las nuevas tendencias del mercado orientadas al aumento de la
conectividad por Internet, las mejoras relacionadas con la imagen y el sonido, el control de motores, etc.
 Las aplicaciones modernas mezclan las funciones típicas MCU con las de procesamiento digital de señales (DSP).
Esta situación ha impulsado a Microchip a fabricar un circuito hibrido MCU/DSP cuyo manejo es similar a los
clásicos microcontroladores pero que incluye las principales prestaciones de los DSP Así ha nacido el Controlador
Digital de Señales, abreviadamente DSC (Digital Signal Controller), que reúne las características de un
microcontrolador PIC de I6 bits y las de un DSP de gama baja. En base a este controlador digital de seriales,
Microchip consigue reunir lo mejor de ambos mundos, marcando el comienzo de una nueva era en el mercado de
controladores.
 Los procesadores de la familia dsPIC30F son el penúltimo lanzamiento de Microchip, comenzando a producirlos a
gran escala a finales de 2004. Son los primeros PICs con bus de datos inherente de 16 bits. Incorporan todas las
posibilidades de los anteriores PICs y añaden varias operaciones de DSP implementadas en hardware, como
multiplicación con suma de acumulador (multiply-accumulate, o MAC), barrel shifting, bit reversion o
multiplicación 16x16 bits.
 Posteriormente Microchip lanza al mercado la familia dsPIC33F que incorporan mayor funcionalidad.

Características generales de la familia dsPIC30F

 La arquitectura del CPU los dsPIC30F se basa en un núcleo RISC con arquitectura Harvard mejorada.
 Actuando como soporte central de información existe un banco de 16 registros de 16 bits cada uno
 Se dispone de un bus de datos de 16 líneas y otro de instrucciones de 24.
 Para potenciar la velocidad de las operaciones aritméticas complejas existe un “Motor DSP” que contiene un
multiplicador hardware rápido de 17 X 17 bits, dos acumuladores de 40 bits y un robusto registro de desplazamiento.
 La memoria de programa, tipo FLASH, puede alcanzar un tamaño de 4 M instrucciones de 24 bits cada una, aunque
actualmente sólo hay modelos con una capacidad máxima de 256 K bytes.
 La memoria de datos SRAM puede alcanzar 32K posiciones de 16 bits, aunque en los modelos actuales sólo se llega
a la mitad.
 La memoria de datos se divide en dos espacios, X e Y, que pueden ser accedidos simultáneamente en las operaciones
matemáticas DSP.
 Toda esta estructura admite operaciones MCU y operaciones DSP con un repertorio de 84 instrucciones.
 Las secciones MCU y DSP cooperan en el funcionamiento general y comparten el flujo de instrucciones de los DSC.
 Los recursos específicos del Motor DSP además de soportar las operaciones DSP permiten implementar nuevas y
potentes instrucciones MCU.
 Para reducir el tiempo de ejecución de algunas instrucciones DSP la memoria de datos SRAM se divide en dos
espacios X e Y que pueden ser accedidos a la vez.
 Otra característica importante en los dsPIC30F es la de admitir hasta 45 fuentes distintas de petición de interrupción
con 7 niveles de prioridad, de las cuales 5 son externas.
 Hay modelos de dsPIC30F que disponen de hasta 54 patitas de E/S programables y con otras funciones
multiplexadas con un consumo de 25 mA cada una.
 Se puede encontrar una gran variedad de periféricos en la familia dsPIC30F como temporizadores, conversores AD,
módulos de captura y comparación, módulos PWM para el control de motores, módulos de comunicación PC, SPI,
CAN, UART, DCI, etc.
 También disponen de potentes herramientas para la gestión del sistema (Perro Guardián, Monitor de fallo de
reloj, temporizadores para la estabilización del voltaje de alimentación y la frecuencia, etc.), así como
dispositivos para controlar el consumo de energía (modos de bajo consumo Idle y Sleep, detección de voltaje
bajo, etc.)

Entradas/salidas digitales en el dsPIC30F4013

 A partir del patillaje del dsPIC30F4013 vamos a ver los puertos de que dispone este DSC

PORTA 1 pin. RA11


PORTB 13 pines. RB0 a RB12
PORTC 3 pines. RC13, RC14 y RC15
PORTD 6 pines. RD0, RD1, RD2, RD3, RD8, RD9
PORTE Ningún pin.
PORTF 7 pines. RF0 aRF6

 En resumen tenemos 30 pines de entrada y salida. Cada una de ellas puede ser entrada o salida
independientemente de las otras.
 La configuración de pines puede parecer absurda, ya que por ejemplo, el puerto A solo tiene el pin RA11; esto
se debe a que existen micros con más pines que tendrán los puertos completos y al tener solamente 30 pines el
fabricante ha seleccionado los más importantes (el pin RA11 también es el pin de interrupción externa, RC13,
RC14 y RC15 tienen otras funciones como comunicación serie).
 En el diagrama de pines del procesador se observa que la mayoría de pines tienen varios nombres, cada nombre
se refiere a una de sus funciones.

Programación de los puertos de entrada/salida paralelos

En general, los puertos de entrada/salida tienen un funcionamiento similar. Para cada puerto existen tres registros,
el TRISX, el PORTX y el LATX. La X indica cualquiera de los puertos que tiene el procesador, A, B, C, D, E o F.

TRISX (Configuración del Puerto: Input/Output)


Este registro sirve para configura si un pin va a ser Salida o Entrada. Un 0 en un bit de este registro indica que el
pin correspondiente es una salida. Un 1 indica que el pin es una entrada.

PORTX (Lectura de Puerto: Input)


La función de este registro es permitir ingresar valores desde los pines exteriores de un puerto configurado como
entrada hacia los registros internos del procesador. Al leer el registro leemos un 0 si la tensión en la entrada está a
nivel bajo y un 1 si la tensión está a nivel alto

LATX (Escritura de Puerto: Output)


Este es un registro que no existe en otros procesadores PIC, su función es para permitir sacar valores desde los
registros internos del procesador hacia los pines exteriores en un puerto configurado como salida.
Al Resetear el procesador, por defecto todos los puertos están configurados en su función de E/S digital y además
siempre como Entrada. Con excepción del Puerto B que está configurado como Entradas analógicas del conversor
A/D. Si deseamos usar el puerto B en modo digital hay que configurar el registro ADPCFG con $FFFF.

Código ejemplo en MikroBasic Pro for dsPIC:

ADPCFG = 0xFFFF 'Configurar pines analógicos de RB como E/S digital

' 111111
' 5432109876543210
TRISB = %1111000011110101
'Los pines RB15, RB14 y RB13 no existen en este micro. Los configuramos como
'entradas, pero podemos también configurarlos como salidas
'Los pines RB11, RB10, RB9, RB8, RB3 y RB1 serán Salidas
'Los pines RB12, RB7, RB6, RB5, RB4, RB2 y RB0 serán Entradas

LATB = %1010101000111100
'A los pines que son entradas o que no existen no les pasa nada
'Los pines de salidas si serán afectados:
' RB11=1 RB10=0 RB9=1 RB8=0 RB3=1 RB1=0

Entrada = PORTB
'Cada bit de la variable Entrada tomará un valor dependiendo de la tensión que
'haya en el pin correspondiente. En los pines que no existen se lee 0
'Los bits que son salidas leerán el valor que se ha escrito previamente con LATB
'Los bits que son exclusivamente entradas leerán un 0 o 1 dependiendo de la
'tensión externa

3. Patillaje del dsPIC30F4013:


4. Diagrama Esquemático EJEMPLO: Contador Binario

Componentes Proteus:

5. Código EJEMPLO: Contador Binario en MikroBasicPro for dsPIC


6. Bits de Configuración del DSPIC30F4013

7. Informe
I. Realizar un RESUMEN (escrito a mano) de por lo menos 4 páginas del fundamento teórico del dsPIC30F4013
incluyendo los siguientes puntos: (Incluir las fuentes de Direcciones WEB así como el Material Impreso usado
para el resumen)
 Características específicas del dsPIC30F4013
 Conjunto de Instrucciones MCU y DSP
 Diferencias entre las familias dsPIC30F y dsPIC33F
II. (1ra Firma) Simular en MikroBasic Pro for dsPIC el Ejemplo: Contador Binario y comprobar su funcionamiento
III. (2da Firma) Simular UNO de los incisos (asignado por el docente). Imprimir el código comentado en MikroBasic
a) Los leds del puerto de Salida realizan el efecto de luces “Auto Fantástico”. Con P0 se inicia la secuencia, con P1
se detiene y con P2 se incrementa la velocidad.
b) Se obtiene un dato X de 3 bits del puerto de Entrada. Usando solo sumas se calcula el valor Y de acuerdo a la
fórmula y se muestra el resultado en el puerto de salida
c) Se obtiene un dato de 3 bits del puerto de Entrada. Este dato es comparado con el número 7. Pueden darse tres
posibilidades:
 Si el Dato es igual a 7 los leds parpadean por 2 segundos y luego se apagan
 Si el Dato es mayor a 7 entonces los leds se prenden por 3 segundos, luego parpadean por 5 segundos y
finalmente se quedan apagados
 Si el Dato es menor a 7 entonces los leds se apagan por 5 segundos, luego parpadean por 3 segundos y
finalmente se quedan prendidos
IV. Conclusiones
8. Bibliografía
 dsPIC Diseño Práctico de Aplicaciones –José María Angulo Usategui
 Hoja de datos: dsPIC30F4013
 www.microchip.com

Potrebbero piacerti anche