microcontroladores y dsps - · pdf filem.c. ricardo alvarez microcontroladores y dsps...

52
M.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE BUAP

Upload: trinhdang

Post on 03-Feb-2018

234 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Microcontroladores y DSPs

Introducción a los Controladores Digitales de señales dsPIC30F

M.C. Ricardo Álvarez Glez.FCE BUAP

Page 2: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 3: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 4: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 5: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Arquitectura Harvard Modificada

Page 6: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 7: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 8: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Memoria de programa

• PC de 24 bits, para direccionar hasta 4M x 24 palabrasEl 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.

Page 9: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 10: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 11: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 12: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 13: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 14: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Modos de direccionamiento• Inherente (sin operandos)• Relativo• Literal• Memoria directa• Registro directo• Registro indirectoLos 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

Page 15: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 16: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 17: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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)

Page 18: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 19: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 20: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 21: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 22: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 23: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Divide Support

Page 24: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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)

Page 25: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 26: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 27: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 28: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 29: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Periféricos

Page 30: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 31: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Familia de propósito general40-80 pines ideal para una variedad de aplicaciones empotradas de 16 bits

Page 32: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Motor Control and PowerConversion 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

Page 33: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 34: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 35: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 36: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Herramientas de desarrolloEl proceso de desarrollo se puede dividir en tres partes principalmente:

a. Escribir el código

b. Corregir el código

c. Programar el dispositivo

Page 37: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 38: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 39: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 40: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 41: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Page 42: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

MPLAB PM3 Universal DeviceProgrammer

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 programstorage.

Page 43: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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.

Page 44: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

Formato general para instrucciones y directivas:

[label:] instruction[operands] [; comment]

[label:] directive[arguments] [; comment]

Page 45: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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)

Page 46: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 47: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

MPLAB LINK30 LINKER OVERVIEW

Page 48: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

Page 49: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

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

.global __reset

Page 50: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

__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

Page 51: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

bset PORTD,#00

bclr PORTD,#01

loop: btg PORTD,#00

call rtdo

btg PORTD,#01

call rtdo

bra loop

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

Page 52: Microcontroladores y DSPs - · PDF fileM.C. Ricardo Alvarez Microcontroladores y DSPs Introducción a los Controladores Digitales de señales dsPIC30F M.C. Ricardo Álvarez Glez. FCE

M.C. Ricardo Alvarez

rtdo: mov #0xFFFF,W0

mov W0,cont

resta: dec cont

bra NZ,resta

return

.end