You are on page 1of 52

Microcontroladores y DSPs

Introduccin a los Controladores Digitales de seales dsPIC30F


M.C. Ricardo lvarez Glez. FCE BUAP
M.C. Ricardo Alvarez

dsPIC30F Controladores digitales de seales de 16 bits


Ofrecen la capacidad de un DSP con las caractersticas de control en tiempo real de un microcontrolador. Interrupciones priorizadas Perifericos extensivos incluidos

M.C. Ricardo Alvarez

dsPIC30F Controladores digitales de seales de 16 bits


Caractersticas para manejo de potencia Todo esto combinado con una mquina DSP Acumuladores duales de 40 bits. MACS de 16 x 16 de un solo ciclo Barrel Shifter de 40 bits Bsquedas duales de operandos
M.C. Ricardo Alvarez

dsPICs Familia de controladores digitales de seales de 16 bits


Ofrecen la flexibilidad y control de un microcontrolador, con las caracteristicas de cmputo y la eficiencia de un DSP. La familia de controladores digitales de seales de 16 bits dsPIC30F, es la mas reciente y avanzada familia de procesadores de Microchip.
M.C. Ricardo Alvarez

Arquitectura Harvard Modificada

M.C. Ricardo Alvarez

Arquitectura Harvard
Permite palabras de diferente tamao: Programa 24 bits Datos 16 bits Mejora la eficiencia del conjunto de instrucciones Permite procesamiento mas rpido, el procesador puede buscar anticipadamente la prxima instruccin, mientras ejecuta la instruccin actual que accesa datos en la RAM.

M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

Memoria de programa
PC de 24 bits, para direccionar hasta 4M x 24 palabras El espacio de memoria de programa contiene: Localidad de reset Tablas de vectores de interrupcin Memoria de programa de usuario EEPROM de datos Memoria de configuracin.
M.C. Ricardo Alvarez

Facilidad de instrucciones para realizar ciclos.


Se pueden realizar ciclos con las instrucciones do y repeat, ambas pueden interrumpirse en cualquier momento. Estas caractersticas hacen los algoritmos repetitivos DSP muy eficientes, mientras mantienen la habilidad de manejar eventos de tiempo real
M.C. Ricardo Alvarez

Memoria de datos
Espacio de datos de 64Kbytes, y es tratado como un espacio lineal de datos para muchas instrucciones. Las instrucciones de multiplicacin de DSP dividen la memoria en dos bloques X, Y. Estas instrucciones DSP soportan lecturas duales de operandos. Cuando no se usan las instrucciones de DSP, la memoria es tratada como un solo bloque de memoria X
M.C. Ricardo Alvarez

Memoria de datos
Primeros 2KB SFRs Despus de los SFR hasta 8 KB RAM de datos, se puede dividir en los bloques X, Y para instrucciones DSP Los primeros 8 KB de datos (2k SFR+ 6k RAM), son conocidos como RAM cercana, accesible
M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

Arreglo de registros de trabajo


16 registros de trabajo de 16 bits cada uno W0...W15 W15 apuntador del stack de software (unicamente) Los registros de trabajo restantes pueden funcionar como: Registros de datos Apuntador de direcciones de datos Registro de offset de direccin

M.C. Ricardo Alvarez

Modos de direccionamiento
Inherente (sin operandos) Relativo Literal Memoria directa Registro directo Registro indirecto Los seis modos de direccionamiento son soportados por cada instruccin.
Los registros de trabajo son usados ampliamente como apuntadores para los modos de direccionamiento indirecto
M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

Visibilidad de espacio de programa


Los 32 KB superiores del mapa de memoria de datos pueden mapearse opcionalmente en memoria de programa, usando el registro de 8 bits de visibilidad de pgina en memoria de programa (PSVPAG)

M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

El mapeo de memoria de programa, como si fuera memoria de datos, permite que cualquier instruccin tenga acceso a la memoria de programa como si fuera memoria de datos. Esta caracterstica es usada para tablas de bsqueda, especialmente para tablas de coeficientes de filtros, para algoritmos DSP.
M.C. Ricardo Alvarez

dsPIC30F Conjunto de Instrucciones.


Instrucciones MCU Instrucciones DSP Estas dos clases de instrucciones estn integradas independientemente en la arquitectura y desarrolladas en una sencilla unidad de ejecucin.
M.C. Ricardo Alvarez

dsPIC30F Conjunto de Instrucciones.


Casi todas las instrucciones se ejecutan en un solo ciclo. Instrucciones de dos ciclos: Instrucciones que cambian el flujo del programa (bra, call, etc). Movimiento doble de palabras (mov D) Instrucciones de lectura/escritura de memoria de programa
M.C. Ricardo Alvarez

dsPIC30F Conjunto de Instrucciones.


Para muchas instrucciones, el dsPIC30F, es capaz de ejecutar: Lectura de memoria de datos Lectura de registro de trabajo Escritura a memoria de datos Lectura de memoria de programa (instruccin). Todo esto durante un solo ciclo de mquina! Operaciones del tipo A+B=C en un solo ciclo
M.C. Ricardo Alvarez

Divide Support

M.C. Ricardo Alvarez

Mquina DSP
Multiplicador de punto fijo de 17 x17 bits de alta velocidad. ALU de 40 bits. Dos acumuladores saturados de 40 bits Corredor de barril bidireccional de 40 bits (capaz de recorrer hasta 15 bits a la derecha o 16 bits a la izquierda en un solo ciclo)
M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

Interrupciones
El dsPIC30F tiene un sistema priorizado de interrupciones. Cada fuente de interrupcin tiene su propio vector, y se le puede asignar dinmicamente uno de siete niveles de prioridad. La tabla de vectores de interrupciones (IVT) reside en la parte baja de la memoria de programa.
M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

Perifricos

M.C. Ricardo Alvarez

Variantes del dispositivo


Los dsPICS se dividen en tres categoras principales: Propsito general Control de motores/Conversin de energa Sensores

M.C. Ricardo Alvarez

Familia de propsito general


40-80 pines ideal para una variedad de aplicaciones empotradas de 16 bits

M.C. Ricardo Alvarez

Motor Control and Power Conversion Family


28-80 pines, ideales para soportar aplicaciones de control de motores, UPS, inversores, fuentes de alimentacin conmutadas y equipo relacionado. 10-bit, 500-ksps A/D Converter . Motor Control PWM . Quadrature Encoder . Timers, Input Capture, Output Compare . UART, SPI, I2C, CAN Serial Interfaces
M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

Sensor Family
18-28 pines, ideal para soportar aplicaciones incrustadas de bajo costo. . 12-bit, 100-ksps A/D Converter . Timers, Input Capture, Output Compare . UART, SPI, I2C Serial Interfaces

M.C. Ricardo Alvarez

Herramientas de desarrollo
El proceso de desarrollo se puede dividir en tres partes principalmente: a. b. c. Escribir el cdigo Corregir el cdigo Programar el dispositivo

M.C. Ricardo Alvarez

Es una herramienta de depuracin efectiva en costo, que permite que se pueda probar el cdigo en la tarjeta de circuito. M.C. Ricardo Alvarez

MPLAB ICE 4000 In-Circuit Emulator, es una herramienta de depuracin completa, capaz de emular todos los miembros de la familia 30F a velocidad completa.
M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

Herramientas de programacin.
MPLAB PM3, puede programar todos los tipos de encapsulado y tiene mas memoria que el ICD2, ideal para programar en produccin. MPLAB ICD2, adems de ser un programador, es un depurador, ideal para probar y depurar cdigo.
M.C. Ricardo Alvarez

M.C. Ricardo Alvarez

MPLAB PM3 Universal Device Programmer


Puede controlarse desde el MPLAB IDE, desde una linea de comandos, o puede funcionar solo. . Built-in support for In-Circuit Serial Programming. . Serialized programming for unique ID numbers. . Safe mode for code security. . High-speed programming and download through USB. . Secure digital and multimedia card slot for convenient program storage.
M.C. Ricardo Alvarez

MPLAB ASM30 Assembler


Interpreta instrucciones y directivas en archivos de cdigo fuente, para generar cdigo objeto. Se usa un ligador para convertir el cdigo objeto en un archivo final de salida (.hex) para programar un dispositivo. Las directivas son interpretadas en tiempo de construccin, por el ensamblador, y se usan para definir secciones de memoria, inicializar constantes, declarar y definir smbolos, etc. Un punto . Debe preceder cada directiva.

M.C. Ricardo Alvarez

Formato general para instrucciones y directivas: [label:] instruction[operands] [; comment] [label:] directive[arguments] [; comment]

M.C. Ricardo Alvarez

Directivas comunmente usadas:


.equ equates a value to a symbol .include includes another file into the current file .global makes a symbol globally visible .text starts a section of executable code .end ends assembly within a file .section starts a section (of code or data, in program or data memory)

M.C. Ricardo Alvarez

Directivas comunmente usadas:


.space allocates space within a section .bss adds variables to the uninitialized data section .data adds variables to the initialized data section .hword declares words of data within a section .palign aligns code within a section .align aligns data within a section

M.C. Ricardo Alvarez

MPLAB LINK30 LINKER OVERVIEW

M.C. Ricardo Alvarez

Funcin del ligador


Esencialmente liga todos los archivos ensamblados y compilados en el proyecto, para formar un solo archivo ejecutable que pueda programarse en un dispositivo, simularse o emularse. El archivo hex y el archivo mapa se genera a partir del archivo coff

M.C. Ricardo Alvarez

Ejemplo 1
/*Programa de ejemplo para realizar el encendido/apagado de dos leds conectados a RD0 y RD1. Autor: Ricardo Alvarez */ .title .equ .text .equ
M.C. Ricardo Alvarez

"parpadeo de led" __30F2010,1

.include "p30F2010.inc" cont,0x0810

.global __reset

__reset:goto main:

main .org mov mov mov nop bclr bclr nop TRISD,#00 TRISD,#01 ;RD0 salida ;RD1 salida 100 #__SP_init,W15 #__SPLIM_init,W0 W0,SPLIM ;inicializa el SP

M.C. Ricardo Alvarez

bset bclr loop: btg call btg call bra

PORTD,#00 PORTD,#01 PORTD,#00 rtdo PORTD,#01 rtdo loop

;************************************************

M.C. Ricardo Alvarez

rtdo: resta:

mov mov dec bra return .end

#0xFFFF,W0 W0,cont cont NZ,resta

M.C. Ricardo Alvarez

You might also like