Logo Studenta

ssee-t02

¡Este material tiene más páginas!

Vista previa del material en texto

Apuntes de: Sistemas embebidos (2009) 
Tema 2 
© Benito Úbeda Miñarro 
 
ABSTRACT 
Descripción de los fundamentos en la arquitectura y funcionalidades de los 
dispositivos MCU, basándonos en la familia dsPIC. 
 
 
 2 
 
 
 
 
 
FAMILIAS DE PROCESADORES EMBEBIDOS 
 
 
Introducción 
 
Los SSEE se diseñan en base a microcontroladores (MCU), procesadores digitales de señal 
(DSP) y microprocesadores de propósito general. Los diseños basados en microcontrolador son 
probablemente los mas frecuentes dadas las múltiples aplicaciones que encuentran. 
 
Históricamente los fabricantes de semiconductores han desarrollado arquitecturas de 
microcontroladores de 8 bits, inicialmente bajo la arquitectura Von Newman y posteriormente 
bajo la arquitectura Harvard, pero a medida que las aplicaciones requerían mayores prestaciones 
y la tecnología de fabricación de chips avanzaba se consiguió fabricar, a precios reducidos, 
microcontroladores mas potentes con arquitecturas de 16 bits y de 32 bits. 
 
Junto con los microcontroladores, los Procesadores Digitales de Señal (DSP) también han 
experimentado una gran evolución. Éstos incorporan la filosofía de diseño de los 
microcontroladores pero incluyen aspectos específicos dentro de su arquitectura para mejorar 
las tareas del procesado de señales, esto es, máxima velocidad para permitir procesamiento en 
tiempo real, operaciones muy repetitivas, alta tasa de transferencia por los puerto de E/S y gran 
cantidad de memoria de datos. 
 
Los DSP se suelen construir en formato de 16 bits y 32 bits y emplean aritmética en punto fijo, 
en punto flotante o ambos. 
 
 En adelante y en busca de una mayor brevedad, se hará alusión especifica a la familia dsPIC de 
Microchip, aunque muchos de los términos comentados serán válidos para cualquier otra 
familia. 
 
2.1.- Microcontroladores de 8 y 16 bits 
 
La idea bajo la que se diseñan los microcontroladores es incluir en un chip todo el 
sistema completo y si no es posible incluir la mayor parte de éste. La estructura 
fundamental y sus características básicas son muy parecidas en todas las familias de 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 3 
microcontroladores. Todos disponen de los bloques esenciales: Procesador, memoria 
de datos y de instrucciones, líneas de E/S, oscilador de reloj y módulos controladores 
de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más 
idóneos para las aplicaciones a las que se destinan preferentemente. 
 
En este apartado se hace un recorrido de los principales recursos que se hallan en 
todos los microcontroladores describiendo las diversas alternativas y opciones que 
pueden encontrarse según el modelo seleccionado. En el punto siguiente veremos 
algunos de estos recursos tomando como base la familia dsPIC de Microchip. 
 
Arquitectura básica 
 
Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de 
von Neumann, en el momento presente se impone la arquitectura Harvard. La 
arquitectura de von Neumann se caracteriza por disponer de una sola memoria 
principal donde se almacenan datos e instrucciones de forma indistinta accediendo a 
ella a través de un sistema de buses único (direcciones, datos y control). En la 
actualidad, la mayoría de los microcontroladores responden a la arquitectura Harvard, 
entre ellos, la familia PIC. 
 
 
Figura 2.1. La arquitectura Harvard frente a la Von-Neumann. 
 
La arquitectura Harvard dispone de dos memorias independientes una, que contiene 
sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de 
 
 
 4 
buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) 
simultáneamente en ambas memorias. Figura 2.2 
 
 
 
Figura 2.2. La arquitectura Harvard dispone de dos memorias independientes para datos y para 
instrucciones, permitiendo accesos simultáneos. 
 
 
En el caso particular de los microcontroladores de Microchip, estos presentan 
básicamente las siguientes características: 
 
 Conjunto de instrucciones RISC. 
 Cada instrucción se codifica mediante una palabra de un numero de bits 
determinado (12, 14, 16, … según la gama). 
 Puertos de entrada salida digitales ( I/O ) a los que se puede acceder pin a pin 
y configurar como entrada o como salida, mediante software. 
 Varios temporizadores de 8, 16 o 32 bits, según el modelo. 
 Divisores de frecuencia programables (PRESCALER), para uso con los 
temporizadores u otras utilidades . 
 Temporizador para mantener en reset al conectar (Power-on reset). 
 Temporizador perro guardian (Watchdog timer). 
 Modo ahorro de energía (Power-saving SLEEP). 
 Alta capacidad para entregar o generar corriente en los pines I/O (High source 
and sink current) 
 Modos de direccionamiento directo, indirecto y relativo. 
 Interfaz para reloj externo (External clock interface). 
 Memoria de datos RAM, en general de tamaño reducido. 
 Memoria de programa Flash de tamaños mas elevados, suficiente para 
albergar el programa. 
 
Además, dentro de la arquitectura, se suelen incluir un conjunto de módulos tales 
como: 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 5 
 
 Canales de entradas analógicas. 
 Comparadores analógicos. 
 Conversores AD 
 Memoria adicional de datos del tipo EEPROM. 
 Capacidad de manejar interrupciones provocadas por fuentes externas e 
internas. 
 Módulo oscilador interno, que es poco estable pero ahorra tamaño en el 
circuito. 
 Salidas de señal PWM. 
 Entradas para captura de señales digitales. 
 Modulo de transmisión serie asíncrono, USART. 
 Interfases para buses de comunicaciones CAN, I2C, SPI, USB. 
 Interfaz directa para LCD 
 Módulo para control de motores. 
 … 
 
 
Describimos a continuación algunos de los bloques de mayor interés. 
 
El procesador o CPU 
 
Es el elemento más importante del microcontrolador y determina sus principales 
características, tanto a nivel hardware como software. 
 
Se encarga de direccionar la memoria de instrucciones, recibir el código de operación 
de la instrucción en curso, su decodificación y la ejecución de la operación que implica 
la instrucción, así como la búsqueda de los operandos y el almacenamiento del 
resultado. 
 
Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los 
procesadores actuales. 
 
CISC: Un gran número de procesadores usados en los microcontroladores están 
basados en la filosofía CISC (Computadores de Juego de Instrucciones Complejo). 
 
 
 6 
Disponen de más de 80 instrucciones máquina en su repertorio, algunas de las cuales 
son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución. 
Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones 
complejas que actúan como macros. 
 
RISC: Tanto la industria de los computadores comerciales como la de los 
microcontroladores se han decantado hacia la filosofía RISC (Computadores de 
Juego de Instrucciones Reducido). En estos procesadores el repertorio de 
instrucciones máquina es muy reducido y las instrucciones son simples y 
generalmente, se ejecutan en un ciclo de instrucción. 
La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software 
del procesador. 
La familia PIC emplea este tipo de instrucciones. 
 
SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de 
instrucciones, además de ser reducido, es “específico”, o sea, las instrucciones se 
adaptan a las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con 
el nombre de SISC (Computadores de Juego de Instrucciones Específico). 
 
Memoria 
 
En los microcontroladores la memoria de instrucciones y datos está integrada en el 
propio chip. Una parte debe ser no volátil,tipo ROM, y se destina a contener el 
programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo 
RAM, volátil, y se destina a guardar las variables y los datos. 
 
Hay dos peculiaridades que diferencian a los sistemas basados en microcontroladores 
de los computadores basados en microprocesador: 
 
1.- No existen sistemas de almacenamiento masivo como disco duro o 
disquetes. 
2.- Como el microcontrolador sólo se destina a una única tarea, en la memoria 
ROM, sólo hay que almacenar un único programa de trabajo. 
 
La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las 
variables y los cambios de información que se produzcan en el transcurso del 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 7 
programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar 
una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. 
 
Los usuarios de computadores personales están habituados a manejar Megabytes de 
memoria, pero, los diseñadores con microcontroladores trabajan con capacidades de 
ROM comprendidas entre 512 bytes y 48 kbytes y capacidades de RAM del orden de 
unos pocos bytes a algún Kbyte. 
 
Según el tipo de memoria ROM que dispongan los microcontroladores, la aplicación y 
utilización de los mismos es diferente. Se describen las cinco versiones de memoria 
no volátil que se pueden encontrar en los microcontroladores del mercado en general 
y de la familia PIC en particular: 
 
1.- ROM con máscara 
Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la 
fabricación del chip. El elevado coste del diseño de la máscara sólo hace aconsejable 
el empleo de los microcontroladores con este tipo de memoria cuando se precisan 
cantidades superiores a varios miles de unidades. 
 
2.- OTP 
El microcontrolador contiene una memoria no volátil de sólo lectura “programable una 
sola vez” por el usuario. OTP (One Time Programmable). Es el usuario quien puede 
escribir el programa en el chip mediante un sencillo grabador controlado por un 
programa desde un PC. 
 
La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, 
o bien, en la construcción de prototipos y series muy pequeñas. 
 
Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación 
mediante fusibles para proteger el código que contienen. 
 
3.- EPROM 
Los microcontroladores que disponen de memoria EPROM (Erasable Programmable 
Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se 
realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, 
posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en 
 
 
 8 
su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios 
minutos. Las cápsulas son de material cerámico y son más caros que los 
microcontroladores con memoria OTP que están hechos con material plástico. 
Actualmente se encuentran en desuso. 
 
4.- EEPROM 
Se trata de memorias de sólo lectura, programables y borrables eléctricamente 
EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la 
programación como el borrado, se realizan eléctricamente desde el propio grabador y 
bajo el control programado de un PC. Es muy cómoda y rápida la operación de 
grabado y la de borrado. 
Dado que el numero de ciclos de borrado y escritura es muy elevado (100.000 ciclos 
en dsPIC) la principal aplicación que tiene este tipo de memoria es como memoria de 
datos que interesa que sean no volátiles pero reescribibles múltiples veces, tal es el 
caso de parámetros de calibración de sensores. 
 
Por otro lado, este tipo de memoria es relativamente lenta. 
 
5.- FLASH 
Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. 
Funciona como una ROM y una RAM pero consume menos y es más pequeña. Es la 
tecnología que se está imponiendo en la actualidad. 
 
A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más 
rápida y de mayor densidad que la EEPROM. 
 
La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran 
cantidad de memoria de programa no volátil. Es más veloz aunque tolera menos ciclos 
de escritura/borrado (10.000 ciclos en los dsPIC). 
 
Las memorias EEPROM y FLASH son muy útiles al permitir que los 
microcontroladores que las incorporan puedan ser reprogramados “en circuito”, es 
decir, sin tener que sacar el circuito integrado de la tarjeta. Así, un dispositivo con este 
tipo de memoria incorporado al control del motor de un automóvil permite que pueda 
modificarse el programa durante la rutina de mantenimiento periódico, compensando 
los desgastes y otros factores tales como la compresión, la instalación de nuevas 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 9 
piezas, etc. La reprogramación del microcontrolador puede convertirse en una labor 
rutinaria dentro de la puesta a punto. 
 
Puertos de Entrada y Salida digitales 
 
La mayor parte de los pines que posee el encapsulado de un chip microcontrolador se 
dedican a soportar las numerosas líneas de E/S que lo comunican con el mundo 
exterior. 
 
Esta líneas de E/S se destinan a proporcionar el soporte a las señales de entrada, 
salida y control necesarias en cada diseño. 
 
Los pines de E/S se suelen asociar en puertos de 8 bits, de 16 bits o de un numero 
determinado de pines, dependiendo de cada referencia de chip en concreto. La 
tensión y la corriente de entrada/salida de cada pin dependerá también de cada chip 
por lo que siempre es necesario consultar el “data sheet” suministrado por el 
fabricante. 
 
 
 Figura 2.3.- Pin A0 configurado como salida y como entrada. 
 
Las líneas digitales de cada uno de los puertos pueden configurarse como Entrada o 
como Salida, quedando un circuito semejante al que aparece en la figura 2.3. Para ello 
se necesitará configurar algún registro del microcontrolador. En el caso de la familia 
PIC se pone un “1” ó un “0” en el bit correspondiente del registro TRISA, TRISB, … 
según el puerto seleccionado. La máxima corriente que son capaces de entregar a 
una carga o son capaces de adquirir son parámetros de gran importancia. Cuando el 
dispositivo sea incapaz de suministrar la suficiente corriente a un determinado 
dispositivo, será necesario intercalar un DRIVER de corriente adecuado. 
 
 
 10 
 
Figura 2.4. Ejemplo de DRIVER de corriente para poder excitar a un relé electromecánico. 
 
Reloj principal 
 
Todos los microcontroladores disponen de un circuito oscilador que genera una onda 
cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la 
sincronización de todas las operaciones del sistema. 
 
Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se 
necesitan unos pocos componentes exteriores para seleccionar y estabilizar la 
frecuencia de trabajo. Dichos componentes suelen consistir en un resonador del tipo 
cristal de cuarzo, cerámico, RC interno o externo. El empleo de un tipo u otro de 
resonador dependerá de las prestaciones que necesitemos del MCU, medidas en 
Millones de Instrucciones por Segundo (MIPS) u de operaciones por segundo (MOPS). 
 
También hay que tener en cuenta que en la tecnología empleada para fabricar los 
MCU, que habitualmente es CMOS, el aumentar la frecuencia de reloj supone 
disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un 
incremento del consumo de energía. 
 
 
 
 
Figura 2.5. Dos posibles formas de aplicar el reloj: a) reloj externo. B) mediante un resonador de cristal de 
cuarzo. 
 The PIC Microcontroller Family 35
www.newnespress.com
1.4.8.2 Higher Current Load Interface
The circuits given in Figs 1.26 and 1.27 work fi ne for an LED, or for anyother device whose 
current requirement is less than 25 mA. What do we do if we wish to operate a load with 
a higher current rating (e.g., a 12 V fi lament lamp)? The answer is that we have to use a 
switching device, such as a transistor or a relay.
Figure 1.28 shows how we can drive a small lamp from our port pin using a bipolar transistor. 
In this circuit, when the port output pin is at logic 1, current fl ows through the resistor and 
turns the transistor ON, effectively connecting the bottom end of the lamp to ground. It is 
important to realize that the positive supply to the lamp is not related to the PIC supply voltage 
and while the PIC is operating from 5 V, the lamp can be operated from a 12 V supply.The 
current capability depends upon the type of transistor used and several hundred milliamperes 
can be achieved with any type of small npn transistors. For higher currents, bipolar power 
transistors, or preferably MOSFET transistors, can be used.
1.4.8.3 Relay Interface
When we want to switch inductive loads such as relays we have to use a diode in the circuit 
to prevent the transistor from being damaged (see Fig. 1.29). An inductive load can generate a 
Figure 1.28: Driving a Lamp Using a Transistor
Figure 1.29: Driving an Inductive Load (e.g., a Relay)
Ch01-H8615.indd 35Ch01-H8615.indd 35 6/29/07 4:58:20 PM6/29/07 4:58:20 PM
26 Chapter 1
www.newnespress.com
In LP, XT, or HS modes, an external oscillator can be connected to the OSC1 input as shown 
in Fig. 1.18. This can be a crystal-based oscillator, or simple logic gates can be used to design 
an oscillator circuit.
Figure 1.18: Using an External Oscillator
1.4.4.1 Crystal Operation
As shown in Fig. 1.19, in this mode of operation an external crystal and two capacitors are 
connected to the OSC1 and OSC2 inputs of the microcontroller. The capacitors should be 
chosen as in Table 1.6. For example, with a crystal frequency of 4 MHz, two 22-pF capacitors 
can be used.
Figure 1.17: ADCON1 Bit Defi nitions
PCFG3- AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 Vref! Vref"
PCFG0
0000 A A A A A A A A Vdd Vss
0001 A A A A Vref! A A A RA3 Vss
0010 D D D A A A A A Vdd Vss
0011 D D D A Vref! A A A RA3 Vss
0100 D D D D A D A A Vdd Vss
0101 D D D D Vref! D A A RA3 Vss
0110 D D D D D D D D Vdd Vss
0111 D D D D D D D D Vdd Vss
1000 A A A A Vref! Vref" A A RA3 RA2
1001 D D A A A A A A Vdd Vss
1010 D D A A Vref! A A A RA3 Vss
1011 D D A A Vref! Vref" A A RA3 RA2
1100 D D D A Vref! Vref" A A RA3 RA2
1101 D D D D Vref! Vref" A A RA3 RA2
1110 D D D D D D D A Vdd Vss
1111 D D D D Vref! Vref D A RA3 RA2
Ch01-H8615.indd 26Ch01-H8615.indd 26 6/29/07 4:58:16 PM6/29/07 4:58:16 PM
 The PIC Microcontroller Family 27
www.newnespress.com
1.4.4.2 Resonator Operation
Resonators are available from 4 to about 8 MHz. They are not as accurate as crystal-based 
oscillators. Resonators are usually 3-pin devices and the two pins at either side are connected 
to OSC1 and OSC2 inputs of the microcontroller. The middle pin is connected to the ground. 
Figure 1.20 shows how a resonator can be used in a PIC microcontroller circuit.
1.4.4.3 RC Oscillator
For applications where the timing accuracy is not important, we can connect an external 
resistor and a capacitor to the OSC1 input of the microcontroller as in Fig. 1.21. The 
oscillator frequency depends upon the values of the resistor and capacitor (see Table 1.7), the 
supply voltage, and to the temperature. For most applications, using a 5 K resistor with a 
20-pF capacitor gives about 4 MHz and this may be acceptable in non-time-critical 
applications.
Figure 1.19: Crystal Oscillator Circuit
Table 1.6: Capacitor Selection for Crystal Operation
 Mode Frequency C1, C2
 LP 32 kHz 68–100 pF
 LP 200 kHz 15–33 pF
 XT 100 kHz 100–150 pF
 XT 2 MHz 15–33 pF
 XT 4 MHz 15–33 pF
 HS 4 MHz 15–33 pF
 HS 10 MHz 15–33 pF
Ch01-H8615.indd 27Ch01-H8615.indd 27 6/29/07 4:58:16 PM6/29/07 4:58:16 PM
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 11 
 
 
Recursos especiales 
 
Cada fabricante oferta numerosas versiones de una arquitectura básica de 
microcontrolador. En algunas amplía las capacidades de las memorias, en otras 
incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para 
aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo 
que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el 
coste, el hardware y el software. 
 
Los principales recursos específicos que suelen incorporan los microcontroladores 
son: 
 
• Temporizadores o “Timers”. 
 
Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta 
de acontecimientos que suceden en el exterior (contadores). 
 
Para la medida de tiempos se carga un registro con el valor adecuado y a continuación 
dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj, 
ciclos de instrucción o algún múltiplo hasta que se desborde y llegue a 0, momento en 
el que se produce un aviso, generalmente, en forma de interrupción. 
 
Cuando se desean contar acontecimientos que se materializan por cambios de nivel o 
flancos en alguna de las patitas del microcontrolador, el mencionado registro se va 
incrementando o decrementando al ritmo de dichos impulsos. 
 
Para calcular el numero de periodos que habrá que contar para medir un determinado 
intervalo temporal, habrá que tener en cuenta: 
 
 La frecuencia de reloj principal. 
 Si empleamos PLL para multiplicar la frecuencia del resonador. 
 Si empleamos algun prescaler para dividir la frecuencia de entrada al contador. 
 El numero de ciclos de reloj que se necesitan para ejecutar una instrucción (4 
en la familia PIC). 
 
 
 12 
 
 
• Perro guardián o “Watchdog”. 
 
Cuando un computador personal se bloquea por un fallo del software u otra causa, se 
pulsa el botón del reset y éste se reinicializa, pero un microcontrolador funciona sin el 
control de un supervisor y de forma continuada las 24 horas del día. El Perro guardián 
consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset 
automáticamente en el sistema. 
 
Se debe diseñar el programa de trabajo que controla la tarea de forma que refresque o 
inicialice al Perro guardián antes de que provoque el reset. Si falla el programa o se 
bloquea, no se refrescará al Perro guardián y, al completar su temporización, 
provocará un reset del sistema. 
El perro guardian funciona a partir de un reloj interno, tipo RC, independiente del reloj 
principal del sistema para conseguir una mayor fiabilidad. 
 
• Protección ante fallo de alimentación o “Brownout”. 
 
Se trata de un circuito que resetea al microcontrolador cuando el voltaje de 
alimentación (VDD) es inferior a un voltaje mínimo (“brownout”). Mientras el voltaje de 
alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, 
comenzando a funcionar normalmente cuando sobrepasa dicho valor. 
 
• Estado de reposo o de bajo consumo. 
 
Son abundantes las situaciones reales de trabajo en que el microcontrolador debe 
esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le 
ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los 
dispositivos portátiles alimentados con baterías), los microcontroladores disponen de 
una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de 
bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho 
estado se detiene el reloj principal y se “congelan” sus circuitos asociados, quedando 
en estado de mínimo consumo. Al activarse una interrupción ocasionada por el 
acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. 
 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 13• Conversores Analogicos/Digitales (ADC) 
 
Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden 
digitalizar señales analógicas procedentes de sensores u otras fuentes de información. 
Suelen disponer de un multiplexor analógico que permite aplicar a la entrada del A/D, 
en forma secuencial, diversas señales analógicas desde determinados pines del 
circuito integrado. 
 
 
Figura 2.6. Un único conversor y varias fuentes de señal aplicadas mediante un multiplexor analógico. 
 
Factores claves en el ADC son la frecuencia máxima de muestreo, el número de bits 
de cuantificación así como la tensión de referencia empleada. 
 
Por ejemplo, la familia dsPIC dispone de ADC de 10 bits y de 12 bits pero la 
frecuencia de muestreo se encuentra en el ámbito de los 100 Ksps. 
 
• Conversores Digitales /Analógicos (DAC) 
 
En ocasiones se incluyen módulos DAC para transforma los datos digitales obtenidos 
del procesamiento de señales en su correspondiente señal analógica. No obstante, al 
necesitar componentes externos del tipo condensadores e inductancias, se suelen 
emplear conversores D/A externos. La salida digital dirigida al DAC puede ser 
paralelo o serie. 
 
Una aplicación típica es para el filtrado de señales de audio y en la generación de 
señales de formas de onda arbitraria, síntesis digital directa (DDS), etc. 
 
• Comparador analógico. 
 
 The PIC Microcontroller Family 23
www.newnespress.com
chosen by programming the A/D converter registers and is typically 5 V. Thus, if we are using 
a 10-bit converter (1024 quantization levels), the resolution of our converter will be 5/1024 ! 
0.00488 V, or 4.88 mV; i.e., we can measure analog voltages with a resolution of 4.88 mV. For 
example, if the measured analog input voltage is 4.88 mV we get the 10-bit digital number 
“0000000001”; if the analog input voltage is 2 " 4.88 ! 9.76 mV, the 10-bit converted number 
will be “0000000010”; if the analog input voltage is 3 " 4.88 ! 14.64 mV, the converted 
number will be “0000000011”; and so on.
In a similar way, if the reference voltage is 5 V and we are using an 8-bit converter (256 
quantization levels), the resolution of the converter will be 5/256 ! 19.53 mV. For example, 
if the measured input voltage is 19.53 mV we get the 8-bit number “00000001”; if the analog 
input voltage is 2 " 19.53 ! 39.06 mV we get the 8-bit number “00000010”; and so on.
The A/D converter is controlled by registers ADCON0 and ADCON1. The bit pattern of 
ADCON0 is shown in Fig. 1.16. ADCON0 is split into four parts; the fi rst part consists of the 
highest two bits ADCS1 and ADCS0 and they are used to select the conversion clock. The 
internal RC oscillator or the external clock can be selected as the conversion clock as in the 
following table:
00 External clock/2
01 External clock/8
10 External clock/32
11 Internal RC clock
The second part of ADCON0 consists of the three bits CHS2, CHS1, and CHS0. These are 
the channel select bits, and they select which input pin is routed to the A/D converter. The 
selection is as follows:
CHS2:CHS1:CHS0
000 Channel 0
001 Channel 1
010 Channel 2
A/D
Converter
Channel 0
Channel 1
Channel 2
Channel 3
Channel 4
Channel 5
Channel 6
Channel 7
Converted
Digital
Signal
Multiplexer
Figure 1.15: Multiplexed A/D Structure
Ch01-H8615.indd 23Ch01-H8615.indd 23 6/29/07 4:58:14 PM6/29/07 4:58:14 PM
 
 
 14 
Algunos modelos de microcontroladores disponen internamente de un Amplificador 
Operacional que actúa como comparador entre una señal fija de referencia y otra 
variable que se aplica por una de las patitas del chip. La salida del comparador 
proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. 
 
También hay modelos de microcontroladores con un módulo de tensión de referencia 
que proporciona diversas tensiones de referencia que se pueden aplicar en los 
comparadores. 
 
• Generador de pulsos de anchura variable, PWM. 
 
Son módulos denominados Output/Compare que proporcionan en su salida una señal 
de pulsos de anchura variable, que se ofrecen al exterior a través de las patitas del 
encapsulado. Variando Su principal aplicación es para controlar la velocidad de giro de 
motores eléctricos de corriente continua. 
 
• Puertos de comunicación. 
 
Tienen como objeto el dotar al microcontrolador de la posibilidad de comunicarse con 
otros dispositivos externos, tales como otros microcontroladores, sensores, 
actuadores, redes de comunicaciones, etc. mediante el empleo protocolos estándar. 
Algunos modelos disponen de recursos que permiten directamente esta tarea, entre 
los que destacan: 
 
• UART, adaptador de comunicación serie asíncrona. 
 
• SPI, adaptador de comunicación serie síncrona. 
 
• Puerto paralelo esclavo para poder conectarse con los buses de otros 
microprocesadores. 
 
• USB (Universal Serial Bus), bus serie para los PC. 
 
• Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. 
 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 15 
• CAN (Controller Area Network), para permitir la adaptación con redes de 
conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el 
cableado de dispositivos en automóviles. En EE.UU. se usa el J185O. 
 
2.1.2.- Familia dsPIC 
 
 El fabricante Microchip lanzó la familia dsPIC con el objetivo de cubrir el nicho de 
mercado existente entre las aplicaciones que les basta con un microcontrolador y 
aquellas especificas donde los DSP de altas prestaciones son la solución idónea. La 
idea era conseguir, dentro de un mismo chip, las funciones MCU+DSP=DSC aunque 
con prestaciones mas limitadas, serían útiles a muchas aplicaciones industriales que 
emplean procesamiento de señales no muy complejo. 
 
A partir de la gama dsPIC30F60xx vamos a comentar algunas de sus prestaciones tal 
como aparecen en la hoja de datos del fabricante: 
 
 
 
Se tratara de una CPU de altas prestaciones con arquitectura Harvard modificada, que 
emplea 24 bits para codificar cada instrucción. 
Hay que tener en cuenta, que aunque se disponga de 144 Kb de memoria de 
programa, solo podemos direccionar 48K instrucciones. 
! 2004 Microchip Technology Inc. Advance Information DS70117A-page 1
dsPIC30F6011/6012/6013/6014
High Performance Modified RISC CPU:
• Modified Harvard architecture
• C compiler optimized instruction set architecture
• Flexible addressing modes
• 84 base instructions
• 24-bit wide instructions, 16-bit wide data path
• Up to 144 Kbytes on-chip Flash program space
• Up to 48K instruction words
• Up to 8 Kbytes of on-chip data RAM
• Up to 4 Kbytes of non-volatile data EEPROM 
• 16 x 16-bit working register array
• Up to 30 MIPs operation:
- DC to 40 MHz external clock input
- 4 MHz-10 MHz oscillator input with 
PLL active (4x, 8x, 16x)
• Up to 41 interrupt sources: 
- 8 user selectable priority levels
- 5 external interrupt sources
- 4 processor traps
DSP Features:
• Dual data fetch
• Modulo and Bit-reversed modes
• Two 40-bit wide accumulators with optional 
saturation logic
• 17-bit x 17-bit single cycle hardware fractional/
integer multiplier
• All DSP instructins are single cycle
- Multiply-Accumulate (MAC) operation
• Single cycle ±16 shift
Peripheral Features:
• High current sink/source I/O pins: 25 mA/25 mA
• Five 16-bit timers/counters; optionally pair up 16-
bit timers into 32-bit timer modules
• 16-bit Capture input functions
• 16-bit Compare/PWM output functions:
• Data Converter Interface (DCI) supports common 
audio Codec protocols, including I2S and AC’97
• 3-wire SPI™ modules (supports 4 Frame modes)
• I2C™ module supports Multi-Master/Slave mode 
and 7-bit/10-bit addressing
• Two addressable UART modules with FIFO 
buffers
• Two CAN bus modules compliant with CAN 2.0B 
standard
Analog Features:
• 12-bit Analog-to-Digital Converter (A/D) with:
- 100 Ksps conversionrate
- Up to 16 input channels
- Conversion available during Sleep and Idle
• Programmable Low Voltage Detection (PLVD)
• Programmable Brown-out Detection and Reset 
generation
Special Microcontroller Features:
• Enhanced Flash program memory:
- 10,000 erase/write cycle (min.) for 
industrial temperature range, 100K (typical)
• Data EEPROM memory:
- 100,000 erase/write cycle (min.) for 
industrial temperature range, 1M (typical)
• Self-reprogrammable under software control
• Power-on Reset (POR), Power-up Timer (PWRT) 
and Oscillator Start-up Timer (OST)
• Flexible Watchdog Timer (WDT) with on-chip low 
power RC oscillator for reliable operation
• Fail-Safe Clock Monitor operation:
- Detects clock failure and switches to on-chip 
low power RC oscillator
• Programmable code protection
• In-Circuit Serial Programming™ (ICSP™)
• Selectable Power Management modes: 
- Sleep, Idle and Alternate Clock modes
CMOS Technology:
• Low power, high speed Flash technology
• Wide operating voltage range (2.5V to 5.5V)
• Industrial and Extended temperature ranges
• Low power consumption
dsPIC30F6011/6012/6013/6014 High Performance
Digital Signal Controllers
 
 
 16 
Consigue hasta 30 millones de instrucciones por segundo e incorpora 41 fuentes de 
interrupción. 
Incorpora hasta 4 Kbytes de memoria de datos tipo EEPROM. 
 
El fabricante separa las prestaciones como microcontrolador y como DSP. 
 
 
Las prestaciones como DSP las consigue mediante un multiplicador hardware que 
realiza en un único ciclo de instrucción la operación de multiplicación y suma. 
Emplea un desplazador del tipo Barrel que es capaz de completar un desplazamiento 
a la derecha o a la izquierda de hasta 16 bits en un única instrucción. 
Emplea lógica de saturación para evitar que cuando una variable se desborde tome 
valores no deseados, especialmente útil al trabajar con señales. 
 
 
! 2004 Microchip Technology Inc. Advance Information DS70117A-page 1
dsPIC30F6011/6012/6013/6014
High Performance Modified RISC CPU:
• Modified Harvard architecture
• C compiler optimized instruction set architecture
• Flexible addressing modes
• 84 base instructions
• 24-bit wide instructions, 16-bit wide data path
• Up to 144 Kbytes on-chip Flash program space
• Up to 48K instruction words
• Up to 8 Kbytes of on-chip data RAM
• Up to 4 Kbytes of non-volatile data EEPROM 
• 16 x 16-bit working register array
• Up to 30 MIPs operation:
- DC to 40 MHz external clock input
- 4 MHz-10 MHz oscillator input with 
PLL active (4x, 8x, 16x)
• Up to 41 interrupt sources: 
- 8 user selectable priority levels
- 5 external interrupt sources
- 4 processor traps
DSP Features:
• Dual data fetch
• Modulo and Bit-reversed modes
• Two 40-bit wide accumulators with optional 
saturation logic
• 17-bit x 17-bit single cycle hardware fractional/
integer multiplier
• All DSP instructins are single cycle
- Multiply-Accumulate (MAC) operation
• Single cycle ±16 shift
Peripheral Features:
• High current sink/source I/O pins: 25 mA/25 mA
• Five 16-bit timers/counters; optionally pair up 16-
bit timers into 32-bit timer modules
• 16-bit Capture input functions
• 16-bit Compare/PWM output functions:
• Data Converter Interface (DCI) supports common 
audio Codec protocols, including I2S and AC’97
• 3-wire SPI™ modules (supports 4 Frame modes)
• I2C™ module supports Multi-Master/Slave mode 
and 7-bit/10-bit addressing
• Two addressable UART modules with FIFO 
buffers
• Two CAN bus modules compliant with CAN 2.0B 
standard
Analog Features:
• 12-bit Analog-to-Digital Converter (A/D) with:
- 100 Ksps conversion rate
- Up to 16 input channels
- Conversion available during Sleep and Idle
• Programmable Low Voltage Detection (PLVD)
• Programmable Brown-out Detection and Reset 
generation
Special Microcontroller Features:
• Enhanced Flash program memory:
- 10,000 erase/write cycle (min.) for 
industrial temperature range, 100K (typical)
• Data EEPROM memory:
- 100,000 erase/write cycle (min.) for 
industrial temperature range, 1M (typical)
• Self-reprogrammable under software control
• Power-on Reset (POR), Power-up Timer (PWRT) 
and Oscillator Start-up Timer (OST)
• Flexible Watchdog Timer (WDT) with on-chip low 
power RC oscillator for reliable operation
• Fail-Safe Clock Monitor operation:
- Detects clock failure and switches to on-chip 
low power RC oscillator
• Programmable code protection
• In-Circuit Serial Programming™ (ICSP™)
• Selectable Power Management modes: 
- Sleep, Idle and Alternate Clock modes
CMOS Technology:
• Low power, high speed Flash technology
• Wide operating voltage range (2.5V to 5.5V)
• Industrial and Extended temperature ranges
• Low power consumption
dsPIC30F6011/6012/6013/6014 High Performance
Digital Signal Controllers
! 2004 Microchip Technology Inc. Advance Information DS70117A-page 1
dsPIC30F6011/6012/6013/6014
High Performance Modified RISC CPU:
• Modified Harvard architecture
• C compiler optimized instruction set architecture
• Flexible addressing modes
• 84 base instructions
• 24-bit wide instructions, 16-bit wide data path
• Up to 144 Kbytes on-chip Flash program space
• Up to 48K instruction words
• Up to 8 Kbytes of on-chip data RAM
• Up to 4 Kbytes of non-volatile data EEPROM 
• 16 x 16-bit working register array
• Up to 30 MIPs operation:
- DC to 40 MHz external clock input
- 4 MHz-10 MHz oscillator input with 
PLL active (4x, 8x, 16x)
• Up to 41 interrupt sources: 
- 8 user selectable priority levels
- 5 external interrupt sources
- 4 processor traps
DSP Features:
• Dual data fetch
• Modulo and Bit-reversed modes
• Two 40-bit wide accumulators with optional 
saturation logic
• 17-bit x 17-bit single cycle hardware fractional/
integer multiplier
• All DSP instructins are single cycle
- Multiply-Accumulate (MAC) operation
• Single cycle ±16 shift
Peripheral Features:
• High current sink/source I/O pins: 25 mA/25 mA
• Five 16-bit timers/counters; optionally pair up 16-
bit timers into 32-bit timer modules
• 16-bit Capture input functions
• 16-bit Compare/PWM output functions:
• Data Converter Interface (DCI) supports common 
audio Codec protocols, including I2S and AC’97
• 3-wire SPI™ modules (supports 4 Frame modes)
• I2C™ module supports Multi-Master/Slave mode 
and 7-bit/10-bit addressing
• Two addressable UART modules with FIFO 
buffers
• Two CAN bus modules compliant with CAN 2.0B 
standard
Analog Features:
• 12-bit Analog-to-Digital Converter (A/D) with:
- 100 Ksps conversion rate
- Up to 16 input channels
- Conversion available during Sleep and Idle
• Programmable Low Voltage Detection (PLVD)
• Programmable Brown-out Detection and Reset 
generation
Special Microcontroller Features:
• Enhanced Flash program memory:
- 10,000 erase/write cycle (min.) for 
industrial temperature range, 100K (typical)
• Data EEPROM memory:
- 100,000 erase/write cycle (min.) for 
industrial temperature range, 1M (typical)
• Self-reprogrammable under software control
• Power-on Reset (POR), Power-up Timer (PWRT) 
and Oscillator Start-up Timer (OST)
• Flexible Watchdog Timer (WDT) with on-chip low 
power RC oscillator for reliable operation
• Fail-Safe Clock Monitor operation:
- Detects clock failure and switches to on-chip 
low power RC oscillator
• Programmable code protection
• In-Circuit Serial Programming™ (ICSP™)
• Selectable Power Management modes: 
- Sleep, Idle and Alternate Clock modes
CMOS Technology:
• Low power, high speed Flash technology
• Wide operating voltage range (2.5V to 5.5V)
• Industrial and Extended temperature ranges
• Low power consumption
dsPIC30F6011/6012/6013/6014 High Performance
Digital Signal Controllers
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 17 
 
Las especificaciones como microcontrolador no difieren mucho de lo ya comentado. 
La memoria de programa admite un mínimo de 10.000 ciclos de escritura/borrado,mientras que la EEPROM admite 10 veces mas. 
Una característica importante es la capacidad para autoprogramarse permitiendo el 
acceso a parte de la memoria de programa como si fuese de datos. 
Incorpora además del Power-on Reset (POR) el OST y el PWRT para asegurarse que 
el oscilador está estable en su frecuencia de funcionamiento y el resto de módulos una 
vez se conecta el dispositivo, se despierta del modo sleep o se recupera debido a una 
caída de tensión transitoria. 
El PWRT genera un retardo después de que el BOR haya detectado una bajada de 
tensión, haya reseteado el micro y tras recuperarse la tensión se mantiene en reset el 
tiempo programado en el PWRT. 
 
El conversor ADC empleado es de 12 bit y permite hasta 100.000 muestras por 
segundo, a repartir entre las 16 entradas. Esto quiere decir que si se conectan todas, 
la máxima frecuencia de muestreo de cada una será de 6.5 Kmuestras, suficiente para 
una gran gama de sensores pero por supuesto insuficiente para digitalizar video o 
audio. 
 
Encapsulado 
 
 
! 2004 Microchip Technology Inc. Advance Information DS70117A-page 1
dsPIC30F6011/6012/6013/6014
High Performance Modified RISC CPU:
• Modified Harvard architecture
• C compiler optimized instruction set architecture
• Flexible addressing modes
• 84 base instructions
• 24-bit wide instructions, 16-bit wide data path
• Up to 144 Kbytes on-chip Flash program space
• Up to 48K instruction words
• Up to 8 Kbytes of on-chip data RAM
• Up to 4 Kbytes of non-volatile data EEPROM 
• 16 x 16-bit working register array
• Up to 30 MIPs operation:
- DC to 40 MHz external clock input
- 4 MHz-10 MHz oscillator input with 
PLL active (4x, 8x, 16x)
• Up to 41 interrupt sources: 
- 8 user selectable priority levels
- 5 external interrupt sources
- 4 processor traps
DSP Features:
• Dual data fetch
• Modulo and Bit-reversed modes
• Two 40-bit wide accumulators with optional 
saturation logic
• 17-bit x 17-bit single cycle hardware fractional/
integer multiplier
• All DSP instructins are single cycle
- Multiply-Accumulate (MAC) operation
• Single cycle ±16 shift
Peripheral Features:
• High current sink/source I/O pins: 25 mA/25 mA
• Five 16-bit timers/counters; optionally pair up 16-
bit timers into 32-bit timer modules
• 16-bit Capture input functions
• 16-bit Compare/PWM output functions:
• Data Converter Interface (DCI) supports common 
audio Codec protocols, including I2S and AC’97
• 3-wire SPI™ modules (supports 4 Frame modes)
• I2C™ module supports Multi-Master/Slave mode 
and 7-bit/10-bit addressing
• Two addressable UART modules with FIFO 
buffers
• Two CAN bus modules compliant with CAN 2.0B 
standard
Analog Features:
• 12-bit Analog-to-Digital Converter (A/D) with:
- 100 Ksps conversion rate
- Up to 16 input channels
- Conversion available during Sleep and Idle
• Programmable Low Voltage Detection (PLVD)
• Programmable Brown-out Detection and Reset 
generation
Special Microcontroller Features:
• Enhanced Flash program memory:
- 10,000 erase/write cycle (min.) for 
industrial temperature range, 100K (typical)
• Data EEPROM memory:
- 100,000 erase/write cycle (min.) for 
industrial temperature range, 1M (typical)
• Self-reprogrammable under software control
• Power-on Reset (POR), Power-up Timer (PWRT) 
and Oscillator Start-up Timer (OST)
• Flexible Watchdog Timer (WDT) with on-chip low 
power RC oscillator for reliable operation
• Fail-Safe Clock Monitor operation:
- Detects clock failure and switches to on-chip 
low power RC oscillator
• Programmable code protection
• In-Circuit Serial Programming™ (ICSP™)
• Selectable Power Management modes: 
- Sleep, Idle and Alternate Clock modes
CMOS Technology:
• Low power, high speed Flash technology
• Wide operating voltage range (2.5V to 5.5V)
• Industrial and Extended temperature ranges
• Low power consumption
dsPIC30F6011/6012/6013/6014 High Performance
Digital Signal Controllers
 
 
 18 
 
Figura 2.7. Descripción del encapsulado y función de cada uno de los pines que lleva un detrminado 
microcontrolador. 
 
Como vemos, con tal de minimizar el numero de pines, la mayor parte de ellos se 
encuentran multiplexados, siendo necesario configurarlos para la función deseada. 
Los pines se encuentran estructurados en puertos, aunque no siempre se encuentran 
todos sus pines implementados. 
dsPIC30F6011/6012/6013/6014
DS70117A-page 2 Advance Information ! 2004 Microchip Technology Inc.
dsPIC30F6011/6012/6013/6014 Controller Families
Pin Diagrams
Note: For descriptions of individual pins, see Section 1.0.
Device Pins
Program Memory
SRAM 
Bytes
EEPROM
Bytes
Timer 
16-bit
Input
Cap
Output 
Comp/Std 
PWM
Codec 
Interface
A/D 12-bit 
100 Ksps
U
A
R
T
S
P
I ™
I2
C
™
C
A
N
Bytes Instructions
dsPIC30F6011 64 132K 44K 6144 2048 5 8 8 — 16 ch 2 2 1 2
dsPIC30F6012 64 144K 48K 8192 4096 5 8 8 AC’97, I2S 16 ch 2 2 1 2
dsPIC30F6013 80 132K 44K 6144 2048 5 8 8 — 16 ch 2 2 1 2
dsPIC30F6014 80 144K 48K 8192 4096 5 8 8 AC’97, I2S 16 ch 2 2 1 2
1
2
3
4
5
6
7
8
9
10
11
12
13 36
35
34
33
3
2
3
1
3
0
2
9
2
8
2
7
2
6
6
4
6
3
6
2
6
1
6
0
5
9
5
8
5
7
5
6
14
15
16
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/T4CK/CN1/RC13
EMUC2/OC1/RD0
IC4/INT4/RD11
IC2/INT2/RD9
IC1/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKI
VDD
SCL/RG2
EMUC3/SCK1/INT0/RF6
U1RX/SDI1/RF2
EMUD3/U1TX/SDO1/RF3
RG15
T2CK/RC1
T3CK/RC2
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
VSS
VDD
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/VREF-/CN3/RB1
PGD/EMUD/AN0/VREF+/CN2/RB0
O
C
8
/C
N
1
6
/R
D
7
R
G
1
3
R
G
1
2
R
G
1
4
V
S
S
C
2
T
X
/R
G
1
C
1
T
X
/R
F
1
C
2
R
X
/R
G
0
E
M
U
D
2
/O
C
2
/R
D
1
O
C
3
/R
D
2
A
N
6
/O
C
F
A
/R
B
6
A
N
7
/R
B
7
A
V
D
D
A
V
S
S
A
N
8
/R
B
8
A
N
9
/R
B
9
A
N
1
0
/R
B
1
0
A
N
1
1
/R
B
1
1
V
S
S
V
D
D
A
N
1
2
/R
B
1
2
A
N
1
3
/R
B
1
3
A
N
1
4
/R
B
1
4
A
N
1
5
/O
C
F
B
/C
N
1
2
/R
B
1
5
U
2
T
X
/C
N
1
8
/R
F
5
U
2
R
X
/C
N
1
7
/R
F
4
SDA/RG3
43
42
41
40
39
38
37
44
48
47
46
5
0
4
9
5
1
5
4
5
3
5
2
5
5
45
SS2/CN11/RG9
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
IC3/INT3/RD10
V
D
D
C
1
R
X
/R
F
0
O
C
4
/R
D
3
O
C
7
/C
N
1
5
/R
D
6
O
C
6
/I
C
6
/C
N
1
4
/R
D
5
O
C
5
/I
C
5
/C
N
1
3
/R
D
4
64-Pin TQFP
dsPIC30F6011
Note: Pinout subject to change.
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 19 
 
Figura 2.8. Asociación de pines en puertos en un determinado microcontrolador. 
 
2.2.- Familias de 32 bits (ARM) 
 
ARM es el fabricante líder en el suministro a la industria de soluciones basadas en el 
empleo de microprocesadores RISC de 16-/32-bits. La empresa otorga licencias de 
fabricación a los principales fabricantes de semiconductores debido a su tecnología de 
alto rendimiento y bajo coste, la eficiencia energética de los procesadores RISC, gama 
de periféricos, y el sistema de diseños de chips. ARM también proporciona el apoyo 
necesario para desarrollar un sistema completo. Los cores del microprocesador ARM 
se están convirtiendo rápidamente en el estándar RISC por volumen en mercados 
tales como los dispositivos de comunicaciones portátiles, ordenadores portátiles, 
PDAs, multimedia digital y resto de soluciones embebidas. 
 
Las diferentes evoluciones en la arquitectura han creado las diferentes familias 
denominadas como ARM7, ARM9, ARM10. 
 
Por ejemplo, veamos un modelo de la familia ARM7: 
dsPIC30F6011/6012/6013/6014
DS70117A-page 8 Advance Information ! 2004 Microchip Technology Inc.
FIGURE 1-1: dsPIC30F6011/6012 BLOCK DIAGRAM 
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
Power-up
Timer
Oscillator
Start-up Timer
POR/BOR
Reset
Watchdog
Timer
Instruction
Decode &
Control
OSC1/CLKI
MCLR
VDD, VSS
AN4/CN6/RB4
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
 Low Voltage
Detect
 UART1,
 CAN2
Timing
GenerationCAN1,
AN5/CN7/RB5
16
PCH PCL
Program Counter
ALU<16>
16
24
24
24
24
X Data Bus
 IR
I2C
DCI
PGC/EMUC/AN6/OCFA/RB6
PGD/EMUD/AN7/RB7
PCU
12-bit ADC
 Timers
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
SS2/CN11/RG9
Input
 Capture
Module
 Output
Compare
Module
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/CN1/RC13
T2CK/RC1
 PORTB
C1RX/RF0
C1TX/RF1
U1RX/RF2
U1TX/RF3
C2RX/RG0
C2TX/RG1
SCL/RG2
SDA/RG3
 
PORTG
 PORTD
16
 16 16
 16 x 16
W Reg Array
Divide
UnitEngine
DSP
 Decode
ROM Latch
16
Y Data Bus
Effective Address
X RAGU
X WAGU
 Y AGU
AN0/CN2/RB0
AN1/CN3/RB1
AN2/SS1/LVDIN/CN4/RB2
AN3/CN5/RB3
OSC2/CLKO/RC15
U2RX/CN17/RF4
AVDD, AVSS
UART2SPI2
 16
 16
16
16
 16
 PORTC
 PORTF
16
16
 16
16
8
Interrupt
Controller PSV & Table
Data Access
Control Block
Stack
Control 
Logic
Loop
Control
Logic
Data LatchData Latch
Y Data 
(4 Kbytes)
RAM
X Data 
(4 Kbytes)
RAM
Address
Latch
Address
Latch
Control Signals 
to Various Blocks
EMUC2/OC1/RD0
EMUD2/OC2/RD1
OC3/RD2
OC4/RD3
OC5/CN13/RD4
OC6/CN14/RD5
OC7/CN15/RD6
OC8/CN16/RD7
IC1/RD8
IC2/RD9
IC3/RD10
IC4/RD11
16
CSDI/RG12
CSDO/RG13
CSCK/RG14
COFS/RG15
T3CK/RC2
SPI1,
Address Latch
Program Memory
(144 Kbytes)
Data Latch
Data EEPROM
(4 Kbytes)
 16
 
 
 20 
 
Figura 2.9. Diagrama básico de la arquitectura de un microprocesador ARM7. 
 
 
The ARM7TDMI, has a core based on the fourth version of the ARM architecture. This 
implementation uses a three stage pipeline – a standard fetch-decode-execute 
organization. It features a unified cache, as well as the Thumb extension permitting 32-
bit and 16-bit operation. It is completely forward compatible, meaning that any code 
written for this core will be compatible with any new core releases, such as ARM9 or 
ARM10. This core also includes the on-chip debug extension. 
 
Para más información visitar: 
http://www.arm.com/ 
 
2.3.- Procesadores digitales de señal, DSP. 
 
A lo largo de los últimos años, la aparición y posterior desarrollo de los dispositivos 
especializados en el procesado digital de señales o DSPs ha supuesto la apertura de 
una nueva vía de evolución hacia niveles superiores en el tratamiento de datos. 
 
En este corto espacio de tiempo, debido a su bajo coste y gran rendimiento, los DSPs 
han reemplazado casi por completo a la tecnología analógica tradicional en campos 
como telecomunicaciones, procesado de audio y vídeo y control industrial. Se ha 
generalizado el diseño de soluciones en este campo por parte de empresas de primer 
nivel, desarrolladores independientes y universidades. 
 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 21 
 
Figura 2.10. Diagrma de un SE que incorpora un nuclo DSP y modulos adicionales . 
 
 
Es necesario un conocimiento de la teoría de tratamiento digital de señales, en la que 
se basan estos procesadores, para poder comprender el por qué de las arquitecturas 
que emplean estos procesadores así como disponer de criterios ante la posible la 
elección del procesador idóneo para un proceso determinado. 
 
2.3.1.- Fundamentos del tratamiento digital de la señal 
 
Mientras en la tecnología analógica el procesamiento de señales se implementa 
mediante cálculo integral, en la tecnología digital esta operación se reduce a sumas 
acumulativas de productos. Además, es posible procesar digitalmente y a continuación 
reconstruir señales de toda naturaleza, muestreándolas según el teorema de Nyquist. 
 
La mayoría de las aplicaciones digitales comparten cálculos comunes. Las 
operaciones básicas en el procesamiento digital de la señal como filtrado, correlación, 
convolución, se reducen a la siguiente estructura matemática de multiplicación 
acumulación. 
 
A=B*C+D 
 
Como ejemplo, veamos la típica ecuación de un filtro FIR: 
 
 
 
 
 22 
 
 
2.3.2.- Dispositivos específicos en el tratamiento digital de la señal 
 
Se han analizado los procesadores digitales de señal (DSPs), que son los dispositivos 
encargados del tratamiento digital de señal. Los DSPs comparten unas características 
comunes para optimizar el cálculo de la estructura matemática de multiplicación 
acumulación, permitiendo realizar la operación de multiplicación-acumulación y varios 
accesos a memoria en un solo ciclo de instrucción, por esto el procesador puede 
buscar una instrucción mientras a la vez está realizando la búsqueda de operandos 
y/o almacenando el resultado de una instrucción anterior. Para realizar múltiples 
accesos a memoria, los DSP incluyen unidades generadoras de direcciones, que 
operan en paralelo con la ejecución de instrucciones aritméticas, y memorias 
multipuerto e incluso bancos de memoria independientes. Al implicar los algoritmos 
DSP cálculos repetitivos, la mayoría de los DSP disponen de un conjunto de 
instrucciones que soportan la ejecución de bucles. 
Además, incorporan puertos de entrada/salida serie o paralelo, manejo de fuentes 
externas de interrupciones y accesos directos a memoria sin intervención del 
procesador. 
 
Todas estas características se recogen en la arquitectura Harvard, que dispone de 
varios buses independientes para datos e instrucciones; frente a la arquitectura Von 
Neumann, sobre la que se desarrollan los procesadores de propósito general, que al 
tener un único bus de datos y otro de instrucciones, no permite cargar datos en 
paralelo con la búsqueda de código, provocando un cuello de botella que ralentiza la 
ejecución de algoritmos DSP. 
 
En función de la empresa fabricante de los chips DSP, existen algunas diferencias en 
la manera de implementar la arquitectura Harvard. Las empresas con mayor presencia 
en el mercado de los DSPs son Texas Instruments, Analog Devices y Freescale 
(Antigua Motorota). Estas empresas fabrican una gran variedad de DSPs que incluyen 
desde procesadores de 16 bits en coma fija a procesadores de 32 bits en coma 
flotante. 
 
Generalmente los DSPs de coma flotante usan palabras de 32 bits y los de coma fija 
usan palabras de 16 bits. Se han escogido para el estudio el TMS320C30 de Texas 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 23 
Instruments de 32 bits en coma flotante y el ADSP 2100 de Analog Devices de 16 en 
coma fija. Aunque los procesadores de coma fija suelen ser de 16 bits, Motorola 
dispone de una familia de procesadores de 24 bits en coma fija para incrementar el 
rango dinámico, por este motivo, también se ha escogido para el estudio el DSP56000 
de Motorola de 24 bits en coma flotante. 
 
TMS320C30 
 
El TMS320C30 de Texas Instruments es un procesador de 32 en coma flotante. 
Dispone de un multiplicador en paralelo con la ALU y de dos unidades generadoras de 
direcciones, es posible realizar varios accesos a memoria en un ciclo de instrucción, 
debido a que dispone de memoria multipuerto. La memoria está dividida en tres 
bloques independientes que pueden soportar dos accesos por ciclo de instrucción, 
incluye una caché de instrucciones de 64x32bits. El TMS320C30 dispone de buses 
independientes para instrucciones, datos y DMA. Incorpora 2 temporizadores, 2 
puertos serie y un controlador de DMA. El set de instrucciones del TMS320C30 
dispone de instrucciones específicas para la repeticiones de secciones del código 
como RPTS (para repetir una instrucción) y RPTB (para repetir un bloque de 
instrucciones). 
 
ADSP 2100 
 
Los dispositivos de la familia ADSP 2100 de Analog Devices son procesadores de 16 
bits de coma fija, aunque están preparados para implementar operaciones con 
aritmética flotante. Poseen 4 buses internos que se multiplexan en dos externamente: 
bus de direcciones de datos (14 bits), bus de direcciones de programa (14 bits), bus 
de datos de datos (16 bits) y bus de datos de programa (24 bits), esto permite acceder 
independientemente a la memoria de datos y memoria de programa.Otra de sus 
características básicas es que poseen dos unidades generadoras de direcciones 
(DAG), que posibilitan el direccionamiento de dos operandos de forma simultánea así 
como proporcionar direccionamiento circular y de inversión de bit. La unidad MAC 
permite realizar la operación multiplicar-acumular en un solo ciclo de instrucción, para 
ello dispones de dos ficheros de registros de entrada conectados a través de los buses 
correspondientes a zonas de memoria diferentes. 
 
 
 
 
 24 
DSP56000 
 
El Motorola DSP56000 es un procesador de coma fija de 24 bits. La ALU del 
DSP56000 implementa en un sólo ciclo de instrucción la operación de multiplicar-
acumular. La memoria está dividida para aumentar la velocidad al trabajar en paralelo. 
Hay cuatro buses bidireccionales de datos de 24 bits y 3 de direcciones de 16 bits. La 
AGU realiza el cálculo de las direcciones efectivas usando aritmética entera, 
implementa tres tipos de aritmética: lineal, módulo y acarreo inverso. El propósito del 
set de instrucciones es mantener las tres unidades operativas del DSP56000 (ALU, 
AGU y unidad de control de programa) ocupadas cada ciclo de instrucción. El 
DSP56000 tiene dos instrucciones especiales para la ejecución repetitiva de 
instrucciones y para generar bucles DO y REP. 
 
 
Para mayor detalle visitar: 
http://focus.ti.com/dsp/docs/dsphome.tsp?sectionId=46&DCMP=TIHomeTracking&HQ
S=Other+OT+home_p_dsp 
 
2.3.3.- Implementación de aplicaciones sobre DSP 
 
Después de analizar las arquitecturas de los dispositivos, se ha obtenido una visión 
general del abanico de aplicaciones que soportan los DSPs. Por ejemplo, en el campo 
militar se utilizan los DSPs para procesamiento de radar, sonar o guía de misiles. En el 
campo del tratamiento de voz y audio para la codificación, síntesis y reconocimiento 
de voz. En el sector de las telecomunicaciones para la codificación ADPCM, 
cancelación de eco, telefonía móvil, televisión digital, etc.. Algunos de los avances de 
los DSPs en instrumentación médica son las imágenes ultrasónicas, radiografías 
digitales y varias formas de tomografía (CAT, tomografía asistida por ordenador; PET, 
tomografía por emisión de positrones; MRI, imágenes por resonancia magnética). 
 
 
2.3.4.- Parámetros en la elección de un DSP 
 
Una vez analizadas las arquitecturas de los dispositivos y las aplicaciones en los que 
éstos tienen presencia, se consideran los factores que hacen a un DSP adecuado 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 25 
para cada tipo de aplicación. Los diseñadores de sistemas DSP utilizan el procesador 
más simple que se ajusta a las necesidades de su aplicación. 
 
El formato aritmético que soporta el dispositivo es un factor importante de cara a 
seleccionarlo para un proceso en concreto. La aritmética en coma flotante es mucho 
más flexible que la de coma fija, se dispone de un rango dinámico mucho mayor, con 
lo que son más fáciles de programar, ya que el programador no ha de preocuparse del 
rango dinámico ni de la precisión, aunque son más caros porque el procesamiento en 
coma flotante exige una circuitería más compleja. Por ejemplo se utilizan en la 
instrumentación científica y médica. Los DSPs de coma fija se usan en muchas 
aplicaciones debido a que ofrecen grandes prestaciones, para aplicaciones con un 
rango dinámico pequeño, a muy bajo precio. Por ejemplo, para el tratamiento de 
señales de voz que tienen un ancho de banda muy reducido. 
 
El tamaño del dato tiene una mayor repercusión en el coste, ya que influye 
notablemente en el tamaño del chip y el número de pins que requiere, así como el 
tamaño de los dispositivos externos conectados al DSP. Por todo esto, los 
diseñadores tratan de emplear anchuras de palabras lo mas pequeñas posibles de 
acuerdo a sus necesidades. Hay que buscar el equilibrio entre el tamaño de palabra y 
la complejidad de desarrollo. 
 
Cada tipo de procesador es ideal para un rango específico de aplicaciones. Los DSPs 
de 16 bits de coma fija, como por ejemplo la familia de Motorola DSP 56100 son 
buenos para sistemas de voz, como teléfonos, ya que estos DSP trabajan con el rango 
relativamente estrecho de las frecuencias del sonido. Las aplicaciones estéreo de alta 
fidelidad tienen un rango de frecuencias más amplio, un DSP de 24 bits de coma fija 
como los DSP56002 son los adecuados ya que el DSP ha de ser de 24 bits para 
poder manipular los valores que se obtienen al procesar la señal. El procesamiento de 
imágenes, gráficas en 3D y simulaciones científicas tiene un rango dinámico mucho 
más amplio y necesitan DSPs de 32 bits con aritmética de coma flotante como por 
ejemplo el 96002 o el TMS320C30. 
 
 
 
 26 
3. Bibliografía 
 
 
Microcontroladores PIC. La Solución en un Chip. 
J. Mª. Angulo Usategui, E. Martín Cuenca, I. Angulo Martínez 
Ed. Paraninfo. ( 1997 ) 
 
Microcontroladores PIC. Diseño práctico de aplicaciones. 
J. Mª. Angulo Usategui, I. Angulo Martínez 
Mc Graw Hill [ 1999 ] 
 
Microcontroladores. 
Vicente Torres. 
Servicio Publicaciones UPV. 
 
 
Sitios web 
 
Microchip. http://www.microchip.com 
Sagitron: Distribuidor de Microchip en 
España. 
http://www.sagitron.es 
Parallax. http://www.parallaxinc.com 
Enlaces interesantes sobre PIC. http://www.dontronics-shop.com/links-pic-
links.html 
Dontronics. Pagina principal http://www.dontronics.com 
The Picmicro Ring. http://members.tripod.com/~mdileo/pmring
.html 
Microcontoladores: Información, 
Herramientas y Programador. 
http://www.geocities.com/TheTropics/2174
/micro.html 
GNUPic “Free Microcontroller Software 
Tools 
http://huizen.dds.nl/~gnupic/index.html 
Mundo Electrónico: Enlaces. http://www.geocities.com/CapeCanaveral/
Campus/9468/mundo.htm 
The Electronic Projects Page: Algunos 
proyectos. 
http://www.blichfeldt.dk 
 
Universidad de Murcia 
07BN.- SISTEMAS EMBEBIDOS (2009) 
Apuntes del profesor: Benito Úbeda 
 
 
 27 
PICALL PIC programmers http://www.picallw.com/ 
Proyecto Fin de Carrera de Gaspar Vidal 
que utiliza los Pic como soporte hardware. 
http://www.geocities.com/CapeCanaveral/
Campus/8775/proyecto/pfc.htm 
Otro curso sobre microcontroladores http://usuarios.lycos.es/sfriswolker/pic

Continuar navegando