jueves, 23 de febrero de 2012

Microcontroladores.

Que es un microcontrolador?
Un microcontrolador es un circuito integrado que nos ofrece las posibilidades de un pequeño computador. En su interior encontramos un procesador, memoria, y varios periféricos. El secreto de los microcontroladores lo encontramos en su tamaño, su precio y su diversidad. Su valor medio de seis euros, y su tamaño se reduce a unos pocos centímetros cuadrados.

Para que se usan?
Por nombrar varios ejemplos de aplicaciones, tenemos mandos a distancia, termómetros digitales, controles de acceso por puertas de seguridad, los sistemas ABS o EPS de los coches, control y sensórica de maquinaria, domótica del hogar, microrobótica, monederos electrónicos.

Realmente la dificultad no está en usar un microcontrolador para afrontar un proyecto hardware, sino en elegir el fabricante y el modelo adecuado para la aplicación. Con esto lo que tenemos que tener presente es que los microcontroladores nos solucionarán la vida en todos los temas, pero el objetivo es usar el mínimo número de ellos y con el menor coste por unidad.

Un microcontrolador dispone normalmente de los siguientes componentes:
  • Procesador o UCP (Unidad Central de Proceso). 
  • Memoria RAM para Contener los datos. 
  • Memoria para el programa tipo ROM/PROM/EPROM. 
  • Líneas de E/S para comunicarse con el exterior. 
  • Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.). 
  • Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. 

¿Qué microcontrolador emplear?
A la hora de escoger el microcontrolador a emplear en un diseño concreto hay que tener en cuenta multitud de factores, como la documentación y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las características del microcontrolador (tipo de memoria de programa, número de temporizadores, interrupciones, etc.):

Costes. Como es lógico, los fabricantes de microcontroladores compiten duramente para vender sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10 veces más microcontroladores que microprocesadores.

Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su producto una diferencia de precio en el microcontrolador de algunas pesetas es importante (el consumidor deberá pagar además el coste del empaquetado, el de los otros componentes, el diseño del hardware y el desarrollo del software). Si el fabricante desea reducir costes debe tener en cuenta las herramientas de apoyo con que va a contar: emuladores, simuladores, ensambladores, compiladores, etc. Es habitual que muchos de ellos siempre se decanten por microcontroladores pertenecientes a una única familia.

Antes de seleccionar un microcontrolador es importante analizar los requisitos de la aplicación:

Procesamiento de datos: puede ser necesario que el microcontrolador realice cálculos críticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rápido para ello. Por otro lado, habrá que tener en cuenta la precisión de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 ó 32 bits, o incluso a hardware de coma flotante. Una alternativa más barata y quizá suficiente es usar librerías para manejar los datos de alta precisión.

Entrada Salida: para determinar las necesidades de Entrada/Salida del sistema es conveniente dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar. Una vez realizado este análisis puede ser necesario añadir periféricos hardware externos o cambiar a otro microcontrolador más adecuado a ese sistema.

Consumo: algunos productos que incorporan microcontroladores están alimentados con baterías y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo más conveniente en un caso como éste puede ser que el microcontrolador esté en estado de bajo consumo pero que despierte ante la activación de una señal (una interrupción) y ejecute el programa adecuado para procesarla.

Memoria: para detectar las necesidades de memoria de nuestra aplicación debemos separarla en memoria volátil (RAM), memoria no volátil (ROM, EPROM, etc.) y memoria no volátil modificable (EEPROM). Este último tipo de memoria puede ser útil para incluir información específica de la aplicación como un número de serie o parámetros de calibración.

El tipo de memoria a emplear vendrá determinado por el volumen de ventas previsto del producto: de menor a mayor volumen será conveniente emplear EPROM, OTP y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versión preliminar, aunque sea en pseudo-código, de la aplicación y a partir de ella hacer una estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente disponer de memoria no volátil modificable.

Ancho de palabra: el criterio de diseño debe ser seleccionar el microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicación. Usar un microcontrolador de 4 bits supondrá una reducción en los costes importante, mientras que uno de 8 bits puede ser el más adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado coste, deben reservarse para aplicaciones que requieran sus altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado).

Diseño de la placa: la selección de un microcontrolador concreto condicionará el diseño de la placa de circuitos. Debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el resto de componentes del diseño.

Algunos microcontroladores.
Los microcontroladores más populares se encuentran, sin duda, entre las mejores elecciones:

8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todavía sea muy popular.

8051 (Intel y otros). Es sin duda el microcontrolador más popular. Fácil de programar, pero potente. Está bien documentado y posee cientos de variantes e incontables herramientas de desarrollo.

80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las herramientas de desarrollo para PC.

68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular con gran cantidad de variantes.

683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan algunos periféricos. Son microcontroladores de altísimas prestaciones.

PIC (MicroChip). Familia de microcontroladores que gana popularidad día a día. Fueron los primeros microcontroladores RISC.

Ejemplo de un pic:
Vemos que las patas llamadas RA0/1/2/3/4 y RB0/1/2/3/4/5/6/7 son puertos que se los puede configurar mediante la programación como Puertos de "entrada" o "salida" de información.

Despues tenemos la pata "Vss" que es la de alimentación, ahí tienen que entrar 5V y la pata 14 llamada VDD es donde tendríamos que conectar a "Tierra". 

También sabemos que Todo microprocesador o microcontrolador necesita de un circuito que le indique a qué velocidad debe trabajar. Este circuito es conocido como un oscilador de frecuencia. Este oscilador es como el motor del microcontrolador por lo tanto, este pequeño circuito no debe faltar. En el caso del microcontrolador PIC16F84 el pin 15 y el pin 16 son utilizados para introducir la frecuencia de reloj.

La "A" final de los modelos PIC16F873A, PIC16F874A, PIC16F876A y PIC16F877A indica que estos modelos cuentan con módulos de comparación analógicos.

Microchip Technology Inc. fabrica estos microcontroladores en encapsulados PDIP y SPDIP, SOIC,SSOP, PLCC, QFP y QFN.

Los dispositivos PIC16F870, PIC16F872, PIC16F873A y PIC16F876A se fabrican en encapsulados de 28 patitas en formatos PDIP, SOIC, SSOP y QFN, mientras que los dispositivos PIC16F871, PIC16F874A y PIC16F877A se fabrican en encapsulados de 40 patitas para formato PDIP, y en encapsulados de 44 patitas para formatos PLCC, QFP y QFN.

En los encapsulados de 28 patitas no está implementado el Puerto Paralelo Esclavo (PSP).

Entonces segun el formato que le den son las patitas que necesita el microcontrolador.
Muchas de las patitas o terminales de estos dispositivos, como suele ocurrir en la mayoria de microcontroladores, tienen más de una función (multiplexación), dependiendo de cómo se configuren internamente por software.

1 comentario: