Microcontrolador
Dispositivo lógico compuesto por un microprocesador (CPU) y una memoria dispuestos en un mismo chip (pastilla).
A diferencia de las FPGAs y otros dispositivos de puertas lógicas programables, en un microcontrolador se programan las instrucciones que se van a ejecutar en su microprocesador (las cuales se guardan en la memoria) y no las funciones lógicas que va a realizar cada pin de entrada/salida. Por tanto, existirá un retardo de varios ciclos de reloj (se trata de un dispositivo completamente síncrono) desde que se pone un valor en una entrada hasta que en consecuencia de este valor se muestra un valor de salida.
Un microcontrolador es prácticamente un ordenador, aunque de capacidad muy limitada. Sin embargo sirven para realizar tareas sencillas, cómo puede ser controlar una máquina de refrescos. Con ellos se pueden gestionar otras memorias externas, controlar LCDs, e incluso mostrar una señal de video. En algunas consolas nos sirven para ejecutar código casero o eliminar la comprobación de disco original. Tanto para Wii cómo para PlayStation existen códigos públicos con los cuales programar un microcontrolador que elimine la protección de la consola.
La mayoría de los microcontroladores se programan en su propio lenguaje ensamblador, aunque existen herramientas con las cuales podemos programar en un lenguaje de alto nivel (cómo C) y compilar al lenguaje del microcontrolador. Esto supone (además de mayor facilidad de programación) poder utilizar librerías que realicen funciones cómo comunicar con otros dispositivos, manejar LCDs, etc.
El microcontrolador puede programarse desde un ordenador mediante un programador (normalmente suele ser sencillo de fabricar) o mediante un dispositivo proporcionado con el fabricante con el cual además de programar se puede depurar ("debugger"), es decir, controlar la ejecución del programa en tiempo real desde el ordenador para observar cómo transcurre el programa y poder corregir posibles fallos. El utilizar un debugger nos limita mucho la capacidad de procesamiento del microcontrolador, pues además del programa se ejecuta el código del debugger, por lo que sólo es útil para programas que no utilicen toda la capacidad del microcontrolador.
Los microcontroladores se pueden clasificar en dos tipos en función de su arquitectura. RISC son los que utilizan un numero muy limitado de instrucciones sencillas. Los CISC utilizan un gran numero de instrucciones, mucho mas complejas.
Los microcontroladores más utilizados son los fabricados por la empresa Microchip. La principal familia de microcontroladores de esta empresa son los denominados PIC. Esta empresa facilita a los clientes un entorno de programación denominado MPLab para el desarrollo de aplicaciones para el microcontrolador.