Está en la página 1de 52

Microcontroladores y DSPs

Introducción a los Controladores


Digitales de señales dsPIC30F

M.C. Ricardo Álvarez Glez.


FCE BUAP

M.C. Ricardo Alvarez


dsPIC30F Controladores digitales
de señales de 16 bits

• Ofrecen la capacidad de un DSP con las


características de control en tiempo real de
un microcontrolador.
• Interrupciones priorizadas
• Perifericos extensivos incluidos

M.C. Ricardo Alvarez


dsPIC30F Controladores digitales
de señales de 16 bits
• Características para manejo de potencia
• Todo esto combinado con una máquina
DSP
• Acumuladores duales de 40 bits.
• MACS de 16 x 16 de un solo ciclo
• Barrel Shifter de 40 bits
• Búsquedas duales de operandos
M.C. Ricardo Alvarez
dsPICs Familia de controladores
digitales de señales de 16 bits
• Ofrecen la flexibilidad y control de un
microcontrolador, con las caracteristicas de
cómputo y la eficiencia de un DSP.
• La familia de controladores digitales de
señales 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 tamaño:
• Programa 24 bits
• Datos 16 bits
• Mejora la eficiencia del conjunto de instrucciones
• Permite procesamiento mas rápido, el procesador
puede buscar anticipadamente la próxima
instrucción, mientras ejecuta la instrucción 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 interrupción
• Memoria de programa de usuario
• EEPROM de datos
• Memoria de configuración.
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 características 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 multiplicación 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
• Después 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 dirección

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 instrucción.
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 página 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 instrucción tenga acceso a la
memoria de programa como si fuera
memoria de datos.
Esta característica es usada para tablas de
búsqueda, 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 están


integradas independientemente en la
arquitectura y desarrolladas en una sencilla
unidad de ejecución.

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 (instrucción).
¡Todo esto durante un solo ciclo de máquina!
Operaciones del tipo A+B=C en un solo ciclo

M.C. Ricardo Alvarez


Divide Support

M.C. Ricardo Alvarez


Máquina 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 interrupción tiene su propio
vector, y se le puede asignar dinámicamente
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
Periféricos

M.C. Ricardo Alvarez


Variantes del dispositivo

Los dsPICS se dividen en tres categorías principales:


•Propósito general
•Control de motores/Conversión de energía
•Sensores

M.C. Ricardo Alvarez


Familia de propósito 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 alimentación 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. Escribir el código
b. Corregir el código
c. Programar el dispositivo

M.C. Ricardo Alvarez


Es una herramienta de depuración efectiva en costo, que permite
que se pueda probar el código en la tarjeta de circuito.
M.C. Ricardo Alvarez
MPLAB ICE 4000 In-Circuit Emulator, es una
herramienta de depuración completa, capaz de emular
todos los miembros de la familia 30F a velocidad
completa.
M.C. Ricardo Alvarez
M.C. Ricardo Alvarez
Herramientas de programación.
• MPLAB PM3, puede programar todos los
tipos de encapsulado y tiene mas memoria
que el ICD2, ideal para programar en
producción.
• MPLAB ICD2, además de ser un
programador, es un depurador, ideal para
probar y depurar código.

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 código
fuente, para generar código objeto.
Se usa un ligador para convertir el código objeto en un archivo
final de salida (.hex) para programar un dispositivo.
Las directivas son interpretadas en tiempo de construcción, por
el ensamblador, y se usan para definir secciones de memoria,
inicializar constantes, declarar y definir símbolos, 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


Función 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 "parpadeo de led"
.equ __30F2010,1
.include "p30F2010.inc"
.text
.equ cont,0x0810
M.C. Ricardo Alvarez .global __reset
__reset:goto main
.org 100
main: mov #__SP_init,W15 ;inicializa el SP
mov #__SPLIM_init,W0
mov W0,SPLIM
nop
bclr TRISD,#00 ;RD0 salida
bclr TRISD,#01 ;RD1 salida
nop

M.C. Ricardo Alvarez


bset PORTD,#00
bclr PORTD,#01
loop: btg PORTD,#00
call rtdo
btg PORTD,#01
call rtdo
bra loop
;************************************************

M.C. Ricardo Alvarez


rtdo: mov #0xFFFF,W0
mov W0,cont
resta: dec cont
bra NZ,resta
return
.end

M.C. Ricardo Alvarez

También podría gustarte