Vistas de página en total

domingo, 17 de junio de 2018

RECURSOS ESPECIALES DE LOS MICROCONTROLADORES


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