Figura
recursos especiales de microcontroladores (Imagen tomada de http://oswagar.galeon.com)
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.
SPECIAL RESOURCES OF MICROCONTROLLERS
Each manufacturer offers numerous versions of a basic microcontroller architecture. In some it extends the capacities of the memories, in others it incorporates new resources, in others it reduces the benefits to the minimum for very simple applications, etc. The designer's job is to find the minimum model that meets all the requirements of his application. In this way, you will minimize the cost, hardware and software.
LOS PRINCIPALES RECURSOS ESPECÍFICOS QUE
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 o algún
múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un
aviso. Cuando se desean contar acontecimientos que se materializan por cambios
de nivel o flancos en alguna de los pines del microcontrolador, el mencionado
registro se va incrementando o decrementando al ritmo de dichos impulsos.
PERRO
GUARDIÁN “WATCHDOG TIMER” WDT: Cuando el
computador personal se bloquea por un fallo del software u otra causa, se pulsa
el botón del reset y se reinicializa el sistema. Pero un microcontrolador
funciona sin el control de un supervisor y de forma continua las 24 horas del
día. El Perro guardián consiste en un temporizador (2 ms hasta 131 seg
dependiendo del PIC) que, cuando se desborda y pasa por 0, provoca un reset
automáticamente en el sistema. Se debe diseñar el programa 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á el reset.
ESTADO
DE REPOSO O BAJO CONSUMO SLEEP, STAND BY O POWER SAVING: 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 active de nuevo en funcionamiento
(interrupción). Para ahorrar energía, (factor clave en los aparatos
portátiles), 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 u
oscilador principal y se “congelan” sus circuitos asociados, quedando sumido en
un profundo “sueño” el microcontrolador. Al activarse una interrupción
ocasionada por el acontecimiento esperado, el microcontrolador se despierta y
reanuda su trabajo. En este estado el uC consume menos de 200nA y sólo despertará
(wake up) mediante una interrupción externa. El modo sleep es muy necesario en
aplicaciones que se alimentarán a partir de baterías.
PROTECCIÓN
ANTE FALLO DE ALIMENTACIÓN O “BROWN OUT RESET” BOR Se trata de un circuito que resetea al
microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un
voltaje mínimo (“brown out”). Mientras el voltaje de alimentación sea inferior
al de brown out el dispositivo se mantiene reseteado, comenzando a funcionar
normalmente cuando sobrepasa dicho valor. Útil Para aplicaciones que
funcionarán con baterías, cuando la batería esté baja de carga el PIC no
funcionará por protección.
RESET
DE ENCENDIDO (“POWER ON RESET”) POR: Todos los PIC
tienen la facultad de generar una autoreinicialización o autoreset al conectarles
la alimentación.
TEMPORIZACION
DE ENCENDIDO (“POWER UP TIMER”) PWRT: Es una opción
para que el μC espere un tiempo (aproximadamente 75mS) antes de empezar a
ejecutar instrucciones después de alimentar el PIC. Es útil para evitar
funcionamientos erráticos del μC por ruido o rebotes al conectar la
alimentación.
CÓDIGO
DE PROTECCIÓN (CODE PROTECT) CP: Cuando se
procede a realizar la grabación del programa mediante el hardware cargador
(loadder code), el PIC puede protegerse para evitar su lectura. También
disponen los PIC de posiciones reservadas para registrar números de serie,
códigos de identificación, prueba, etc.
INTERRUPCION
MEDIANTE PINES EXTERNOS: Los pines de
interrupción externa constituye uno de los aspectos más importantes en un
microcontrolador pues ofrece la posibilidad de interactuar de una manera óptima
con periféricos externos de entrada tales como: teclados de computadora,
receptores IR, RF, USB, teclados, pulsadores, etc. Los pines de interrupción externa
más comunes son RB0, RB1, RB2, RB4, RB5, RB6, RB7 para gama alta.
PRIORIDAD
DE INTERRUPCIONES: PRIORITY INTERRUPTIONS (LÉASE PRAIÓRIRI INTERROPSHIONS): La gama alta permite programar
prioridad LOW OR HIGH a cada interrupción dependiendo de la importancia y urgencia
en el circuito y/o aplicación.
INTERRUPCIONES
VECTORIZADAS: Algunos μC
poseen una dirección única (vector de interrupción independiente) para cada
evento de interrupción, esto optimiza el tiempo en detección y facilita el
manejo de cada interrupción. Los μC microchip no disponen de esta opción, sin
embargo, algunos μC motorola si permiten dicha función.
PULL
UP / PULL DOWN INTERNO
Los
μC PIC tiene Pull UP interno en el puerto B (B0 a B7), no disponen de pull
down. La resistencia interna de Pull UP es alrededor de 3KΩ. El puerto B del PIC es el único que tiene la
opción de Pull UP interno, es decir, por software se puede garantizar que el
PIC interpretará como 1 lógico todos los pines del puerto B configurados como
entrada y que estén al aire (input float). Esto es práctico cuando se debe
conectar pulsadores o teclados matriciales a un μC y no se desea comprar
resistores externos de PULL UP. Los microcontroladores son fabricados con
tecnología CMOS (Complementary Metal Oxide Semiconductor) lo cual implica que
tienen alta impedancia de entrada (sus entradas requieren muy baja corriente,
en el orden de μA), si una entrada se deja al aire (input float) el μC lo
interpretará como ruido (debido al ruido electromagnético EMI presente en el
ambiente o efecto antena y se puede inducir una tensión fantasma en los pines
de entrada que estén flotando).
Pull
UP EXTERNO: es una resistencia externa que se conecta de una entrada del
microcontrolador hacia +VCC. Un PULL DOWN es lo mismo pero conectada hacia tierra.
La función de estas resistencias (del orden 1KΩ a 100KΩ) es garantizarle un
estado a los pines al aire o input float (léase input flout) del PIC
configurados como entrada.
CAPACIDAD
DE CORRIENTE: MODO SINK (IOL), MODO SOURCE (IOH): Para la gama media y alta de microchip,
la corriente máxima de salida en modo sink (sumidero) o “cero lógico” es de 25
mA y la corriente máxima de salida en modo source (fuente) o “uno lógico” es de
25 mA. Este aspecto es de singular importancia pues indica la potencia que
puede transmitir el PIC a los periféricos de salida tales como Relés, Led,
Motores, etc.
EL
ABANICO DE ENTRADA Y SALIDA (Fan In / Fan Out) de un Circuito integrado está
relacionado con las impedancias de entrada y salida del mismo. Las corrientes
en un PIC alimentado a 5V son:
IOL
= 25mA (modo sink o sumidero léase sink) corriente de salida en 0 lógico
IOH
= 25mA (modo source o fuente leáse soors) corriente de salida en 1 lógico
IIL
= 1μA (Corriente de entrada en cero lógico)
IIH
= 1μA (Corriente de entrada en uno lógico)
Considerando
que un led (diodo emisor de luz) requiere para encender una tensión de 2V
mínimo y una corriente entre 5 a 50 mA, se puede afirmar que un PIC puede
encender directamente hasta 5 led por un solo terminal. Obviamente si la carga
requiere más corriente (un relé convencional exige 30mA aproximadamente) se
debe conectar un buffer (impulsador de corriente) o un transistor en emisor o
colector común.
Por
ser un dispositivo construido con tecnología CMOS (Complementary Metal Oxide semiconductor)
los PIC presentan una alta impedancia de entrada, esto implica que la corriente
de entrada por cada pin está en el orden de los microamperios, es decir, se
puede aplicar a un μC la salida directa de cualquier sensor sin necesidad de
una etapa previa de acondicionamiento de corriente (amplificador seguidor de
voltaje o buffer amplificador de corriente).
CONVERSOR
A/D (CAD): Los
microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden
procesar señales analógicas, tan abundantes en las aplicaciones. Suelen
disponer de un multiplexor que permite aplicar a la entrada del CAD diversas
señales analógicas desde los pines del circuito integrado. La familia 16F87X y
18FXX2 disponen de un conversor A/D de 8 canales a 10 bit de resolución y la
familia 18FXXXX disponen de un conversor A/D de 13 canales a 10 bit de
resolución.
CONVERSOR
D/A (DAC): Transforma
los datos digitales obtenidos del procesamiento del computador en su
correspondiente señal analógica que saca al exterior por una de los pines de la
cápsula. No todos los μC traen esta opción en su interior. Los PIC’s gama
enana, baja, media y alta no disponen de esta opción.
COMPARADOR
ANALÓGICO: Algunos
modelos de microcontroladores (16F62X) 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 los pines de la cápsula. 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.
PUERTAS
DE ENTRADA/SALIDA E/S DIGITALES: Todos los
microcontroladores destinan algunas de sus pines a soportar líneas de E/S
digitales. Por lo general, estas líneas se agrupan de ocho en ocho formando
Puertas. Las líneas digitales de las Puertas pueden configurarse como Entrada o
como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro
destinado a su configuración.
PUERTAS
DE COMUNICACIÓN USART, I2C, PARALELO, SPI, USB: Con objeto de dotar al microcontrolador
de la posibilidad de comunicarse con otros dispositivos externos, otros buses
de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con
otros elementos bajo otras normas y protocolos. Algunos modelos disponen de
recursos que permiten directamente esta tarea, entre los que destacan:
·
UART (UNIVERSAL ASYNCRONOUS RECEPTION
TRANSMISION).
·
USART (UNIVERSAL SYNCRONOUS ASYNCRONOUS
RECEPTION TRANSMISION).
·
PARALLEL PORT: Puerto paralelo esclavo para
poder conectarse con los buses de otros microprocesadores.
·
USB (Universal Serial Bus), que es un moderno
bus serie para los PC de ala velocidad.
·
Bus I2C (INTERFAZ DE CIRCUITOS INTEGRADOS), que
es un interfaz serie de dos hilos desarrollado por Philips.
·
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.
·
SPI: Interfaz de Periféricos Serial
·
MSSP: Master Synchronous Serial Port
PROGRAMMIN
(ICSP) VIA TWO PINS:
Reprogramación in Circuit, es decir, no es necesario retirar el PIC del
circuito, pues los datos se cargan a la memoria de programa mediante el puerto
serial UART RS232 Tx y Rx.
DEPURACIÓN
DEL PROGRAMA IN CIRCUIT: IN-CIRCUIT DEBUG (ICD) VIA TWO PINS: La gama alta permite realizar (mediante
un hardware específico) una depuración (debugger= delete bug = eliminar
cucarachas o bichos) de un código fuente. Esta depuración se realiza con la PC
conectada en tiempo real, el programa se irá ejecutando línea por línea en el
editor (MPLAB SIMULATOR) y en el circuito hardware mediante el puerto serial
RS232 del PIC y del PC.
HARDWARE
MULTIPLICADOR CON UNA INSTRUCCION: 8 X 8 SINGLE-CYCLE HARDWARE MULTIPLIER: La gama alta incluye una instrucción
(MULLW) para multiplicar 1 byte x 1 byte y ofrece la respuesta en 2 bytes.
MODULOS
CAPTURA COMPARACION PWM CCP: Captura una
trama de datos serial y luego la compara con registros internos, útil en
aplicaciones de sensores ultrasónicos. El módulo PWM (PULSE WIDE MODULATION)
son circuitos que proporcionan en su salida pulsos de ciclo útil (tiempo en ‘1’
lógico) variable y periodo constante, que se ofrecen al exterior a través de
los pines del encapsulado. Suelen emplearse para el control de velocidad de
motores de DC y Servomotores.
LEVEL
STACK (NIVELES DE PILA): La pila
(Stack) es una zona de memoria RAM independiente de la memoria de datos y de la
memoria de programa del μC. Su estructura es del tipo LIFO (Last In First Out)
por lo que el último dato que se guarda es el primero que sale. La pila se
carga con cada instrucción CALL o con la generación de una interrupción, se
descarga con cada instrucción RETURN o RETFIE. Cuando el diseñador realiza más
de 31 llamados de subrutina (CALL léase coll) sin regresar (sin uso del RETURN
léase ruitorn) el puntero de pila (STACK POINTER) se desborda y se presenta el
fenómeno denominado OVERFLOW STACK (desbordamiento de pila léase overflou
ssteak), lo cual es un error de programación pues el puntero de programa
(Pointer Program) salta a un lugar inesperado. Lo deseable en un μC es que
disponga de una gran memoria de pila independiente de la memoria de datos.
MEMORIA
EEPROM DE DATO: Es una
memoria relativamente pequeña (64 a 256 bytes) en la cual se pueden guardar los
datos del programador y no se pierden incluso al desconectar la alimentación
del circuito.
LOW
VOLTAGE DETECT (LVD): Detecta si un
voltaje aplicado al uC es menor de un nivel programado. Es útil para detectar
si la batería de alimentación está agotada.
SELECCIÓN
DE OSCILADOR: Dependiendo
de la frecuencia natural del cristal, se debe seleccionar el modo de oscilación
y los condensadores de estabilización. En gama alta 18FXX2 si se desea una
frecuencia superior a 25MHz, se debe activar el modo PLL (phase locked loop)
multiplicador de frecuencia del cristal por 4. Por ejemplo, para trabajar a
40MHz (frecuencia máxima de la familia 18FXX2) lo correcto es conectar un
cristal de 10MHz con condensadores de 27pF y activar el circuito PLL del μC. La
frecuencia máxima de la familia 16F87X es 20MHz y la frecuencia máxima de la
familia 18FXXXX es 48MHz. La familia 18FXXXX tiene la opción de trabajar con un
oscilador interno configurable desde 31KHz hasta 8MHz.
El oscilador de la familia 18FXXXX se
puede configurar de las siguientes maneras:
1.
XT: CRYSTAL/RESONATOR
2.
XTPLL: CRYSTAL/RESONATOR WITH PLL ENABLED
3.
HS: HIGH-SPEED CRYSTAL/RESONATOR
4.
HSPLL HIGH-SPEED CRYSTAL/RESONATOR WITH PLL
ENABLED
5.
EC EXTERNAL CLOCK WITH FOSC/4 OUTPUT
6.
ECIO EXTERNAL CLOCK WITH I/O ON RA6
7.
ECPLL EXTERNAL CLOCK WITH PLL ENABLED AND
FOSC/4 OUTPUT ON RA6
8.
ECPIO EXTERNAL CLOCK WITH PLL ENABLED, I/O ON
RA6
9.
INTHS INTERNAL OSC USED AS MICROCONTROLLER CK
SOURCE, HS OSC USED AS USB CK SOURCE
10.
INTXT INTERNAL OSC USED AS MICROCONTROLLER
CLOCK SOURCE, XT OSC USED AS USB CK SOURCE
11.
INTIO INTERNAL OSC USED AS MICRO CK SOURCE, EC
OSC USED AS USB CK SOURCE, DIGITAL I/O ON RA6
12.
INTCKO INT OSC USED AS MICRO CK SOURCE, EC OSC
USED AS USB CK SOURCE, FOSC/4 OUTPUT ON RA6
No hay comentarios:
Publicar un comentario