MICROCONTROLADORES

1.- INTRODUCCIÓN.

Los microcontroladores se utilizan cada día en mayor medida. Muchos de los aparatos que tenemos normalmente en nuestras casas están gobernados por un microcontrolador. Lavadoras, hornos de microondas, frigoríficos, aparatos de aire acondicionado, televisores, lectores de DVD, etc, tienen en su interior uno de estos dispositivos que controla todas sus funciones. En el campo de la automoción los microcontroladores controlan dispositivos tan conocidos como ABS (control de frenada), Airbag, control de tracción, inyección de combustible, etc. El empleo de estos dispositivos aumenta día a día en todos aquellos aparatos multifuncionales, consiguiendo mayores prestaciones y un funcionamiento más fiable.

Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de un ordenador, CPU, Memoria y Unidades de E/S, es decir, se trata de un ordenador completo en un solo circuito integrado. Sus prestaciones son limitadas pues la cantidad de RAM no es muy grande y la velocidad de funcionamiento de la CPU está muy alejada de lo que es normal en los ordenadores PC, pero tienen un alto grado de integración y alto nivel de especialización. Su tamaño es muy reducido, ya que, lógicamente, forman parte del dispositivo que controlan.

Un microcontrolador típico tendrá un generador de reloj integrado y una pequeña cantidad de memoria RAM y ROM/EPROM/EEPROM, lo que quiere decir que para hacerlo funcionar, todo lo que se necesita es un programa de control y un cristal de sincronización. Los microcontroladores de gama alta disponen generalmente también de una gran variedad de dispositivos de entrada/salida, como convertidores de analógico a digital, temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN. Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Los modernos microcontroladores frecuentemente incluyen un lenguaje de programación integrado, como el BASIC que se utiliza bastante con este propósito.

Hay varios fabricantes de microcontroladores y cada fabricante tiene en su catálogo una amplia variedad de modelos con distintas prestaciones para satisfacer casi cualquier necesidad de diseño. Algunos de estos fabricantes son: Atmel, Hitachi, Holtek, Intel, National Semiconductor, Microchip, Motorola, NEC, Texas Instruments, Zilog.

2.- PIC16F84.

A lo largo de las siguientes líneas nos referiremos a los microcontroladores fabricados por la compañía Microchip que reciben el nombre de PICmicro, o abreviadamente PIC, como normalmente se les conoce. Dentro de la gran variedad de modelos que fabrica esta compañía hay un tipo concreto que es muy conocido y utilizado entre los radioaficionados y que recibe la denominación PIC16F84. Se trata de un modelo barato, sencillo de programar, rápido, en el cual se pueden escribir y borrar los programas muchas veces. Sobre él hay mucha documentación, las herramientas de desarrollo son muy asequibles y hay muchos programas de control disponibles para este dispositivo. Sus principales características son:

Memoria Flash de programa (1K x 14).

Memoria EEPROM de datos (64 x 8).

Memoria RAM (68 registros x 8).

Manejo de interrupciones (de 4 fuentes).

Un temporizador/contador (timer de 8 bits).

Encapsulado DIP de 18 patillas.

Un divisor de frecuencia.

Varios puertos de entrada-salida (13 pines en dos puertos, 5 pines el puerto A y 8 pines el puerto B).

Perro guardián (watchdog).

Bajo consumo.

No posee conversores analógicos-digital ni digital-analógicos.

Repertorio de instrucciones reducido (RISC), con tan solo 35 instrucciones distintas.

Frecuencia de reloj externa máxima 10MHz. (Hasta 20MHz en nuevas versiones).

La frecuencia de reloj interna es un cuarto de la externa, lo que significa que con un reloj de 20Mhz, el reloj interno sería de 5Mhz y así pues se ejecutan 5 Millones de Instrucciones por Segundo (5 MIPS).

En la figura número uno se puede ver el patillaje del PIC16F84. La función de cada una de sus patillas es la siguiente.

VDD: Patilla por la que se aplica la tensión positiva de la alimentación.

VSS: Patilla conectada a tierra o negativo de la alimentación.

OSC1/CLKIN: Patilla por la que se aplica la entrada del circuito oscilador externo que proporciona la frecuencia de trabajo del microcontrolador.

OSC2/CLKOUT: Patilla auxiliar del circuito oscilador.

MCLR#: Esta patilla es activa con nivel lógico bajo, lo que se representa con el símbolo #. Su activación origina la reinicialización o Reset del PIC. También se usa esta patilla durante la grabación de la memoria de programa para introducir por ella la tensión de programación VPP, que está comprendida entre 12 y 14 V.

RA0-RA4: Son las 5 líneas de E/S digitales correspondientes a la Puerta A. La línea RA4 multiplexa otra función expresada por TOCKI. En este segundo caso sirve para recibir una frecuencia externa para alimentar al temporizador interno TMR0.

RB0-RB7: Estas 8 patitas corresponden a las 8 líneas de E/S digitales de la Puerta B. La línea RB0 multiplexa otra función, que es la de servir como entrada a una petición externa de una interrupción, por eso se la denomina RBO/INT.

En resumen, los PIC16F84 tienen un encapsulado de 18 patillas, dos de ellas soportan la tensión de alimentación, otras dos reciben la señal del oscilador externo y otra se utiliza para generar un Reset. Las 13 patillas restantes funcionan como líneas de E/S para controlar las aplicaciones.

Los PIC admiten cuatro tipos de osciladores externos para aplicarles la frecuencia de funcionamiento. El tipo empleado debe especificarse durante el proceso de grabación del programa de control.

OSCILADOR TIPO "RC". Se trata de un oscilador de bajo coste formado por una simple resistencia y un condensador. Proporciona una estabilidad mediocre de la frecuencia, cuyo valor depende de los valores de los dos elementos de la red RC.

OSCILADOR TIPO "HS". Se trata de un oscilador que alcanza una alta velocidad comprendida entre 4 y 10 MHz y está basado en un cristal de cuarzo o un resonador cerámico.

OSCILADOR TIPO "XT". Es un oscilador de cristal o resonador para frecuencias estándar comprendidas entre 100 KHz y 4 MHz.

OSCILADOR TIPO "LP". Oscilador de bajo consumo con cristal o resonador diseñado para trabajar en un rango de frecuencias de 35 a 200 KHz. El cristal de cuarzo o el resonador cerámico se coloca entre las patillas OSC1 y OSC2.

3.- HARDWARE.

Para la escritura del programa de control de un microcontrolador es necesario un "programador". Este dispositivo, conectado a un ordenador PC con la aplicación correspondiente, nos permitirá la grabación del programa de control escrito en lenguaje máquina, en la memoria de programa del microcontrolador. En el mercado se comercializan diversos tipos de programadores adecuados para varios tipos de PIC. En nuestro caso, se ha construido un programador para el PIC16F84 exclusivamente, por ser este un tipo muy utilizado por los radioaficionados en sus diseños.

Para programar el PIC se utiliza el puerto paralelo del ordenador PC, puerto que se emplea normalmente para la conexión con una impresora. La configuración de este puerto se puede ver en la figura número dos. Hay ocho líneas de datos y otras nueve líneas con señales de control y de estado.

En la siguiente tabla se detalla el conexionado del cable entre el ordenador y la impresora.

Línea DB-25 macho
(ordenador)
Dirección Centronics
(impresora)
Strobe 1 1
Data bit 0 2 2
Data bit 1 3 3
Data bit 2 4 4
Data bit 3 5 5
Data bit 4 6 6
Data bit 5 7 7
Data bit 6 8 8
Data bit 7 9 9
Acknowledge 10 10
Busy 11 11
Paper out 12 12
Select 13 13
Autofeed 14 14
Error 15 32
Reset 16 31
Select 17 36
Masa 18 ◄► 33
Masa 19 ◄► 19+20
Masa 20 ◄► 21+22
Masa 21 ◄► 23+24
Masa 22 ◄► 25+26
Masa 23 ◄► 27
Masa 24 ◄► 28+29
Masa 25 ◄► 16+30
Blindaje Cubierta ◄► Cubierta+17

Para la programación de los PIC se utilizan solamente cuatro líneas del puerto paralelo, DB0, pin número dos para el envío de datos desde el ordenador hacia el PIC, DB1, pin número tres para el envío de los pulsos de reloj hacia el PIC, ACK, pin número diez para la lectura de los datos de la memoria del PIC y DB3, pin número cinco para controlar la tensión de programación del PIC.

3.1.- CONTROLADOR PUERTO PARALELO.

Aunque no es imprescindible, puede ser conveniente controlar el estado de las líneas del puerto paralelo durante la programación del PIC. Para ello se ha construido un circuito CONTROLADOR del puerto paralelo, cuyo esquema se puede ver en la figura número tres. En cada una de las líneas de datos, de control y de estado se ha dispuesto un diodo LED que nos informa de la presencia de tensión, es decir, si la línea está a "cero" o a "uno". En las líneas de datos se ha dispuesto un diodo LED de color verde, en las de control diodos LED amarillos y en las de estado diodos LED de color rojo. Al lado de cada LED hay un terminal donde se puede conectar un osciloscopio y observar la forma de onda presente en cada línea.

Para la construcción del controlador se utiliza un circuito impreso de doble cara, cuyo diseño se puede ver en las figuras número cuatro y cinco. Las medidas de la placa de circuito impreso son 103mm x 65mm. En la figura número seis tenemos la disposición de los componentes sobre la placa de circuito impreso. Los componentes necesarios para su construcción son los siguientes.

LED00 VERDE
LED01 VERDE
LED02 VERDE
LED03 VERDE
LED04 VERDE
LED05 VERDE
LED06 VERDE
LED07 VERDE
LED08 AMARILLO
LED09 AMARILLO
LED10 AMARILLO
LED11 AMARILLO
LED12 ROJO
LED13 ROJO
LED14 ROJO
LED15 ROJO
LED16 ROJO
R00 1K
R01 1K
R02 1K
R03 1K
R04 1K
R05 1K
R06 1K
R07 1K
R08 1K
R09 1K
R10 1K
R11 1K
R12 1K
R13 1K
R14 1K
R15 1K
R16 1K
SD1 25 pins
SD2 25 pins

Los conectores SD1 y SD2 son conectores Cannon del tipo acodado para soldar sobre circuito impreso. En las figuras número siete y ocho se puede ver la placa de circuito impreso preparada para el montaje. Es recomendable utilizar un soldador de punta muy fina, ya que las pistas están muy próximas y es muy fácil hacer un cortocircuito entre ellas.

En la figura número nueve tenemos el comprobador terminado. Se puede hacer una placa de circuito impreso de una cara y realizar los correspondientes puentes en la parte superior, tal como se puede ver en la figura número diez. Una vez completado el montaje del comprobador se ha colocado en una pequeña caja realizada con aglomerado DM de 3 mm. De esta forma se puede manejar mejor y se evitan posibles cortocircuitos. La figura número once muestra los dos prototipos sobre las correspondientes cajas.

Para la prueba del comprobador basta con conectarlo entre el ordenador y la impresora, con el correspondiente cable, y realizar la impresión de algún texto o gráfico. Veremos iluminarse los LED verdes correspondientes a las líneas de datos y el resto de las líneas según las condiciones de la impresión.

Para evitar utilizar la impresora en estas pruebas, es posible construir una "impresora ficticia". Para ello tomaremos un conector Cannon macho y realizaremos los puentes que se pueden apreciar en la figura número doce.

Los puentes que hay que realizar son los siguientes.

1 10
13 15+16
18 11+12

Colocando este conector a la salida del comprobador, el ordenador "ve" una impresora y envía los datos sin ninguna interrupción, igual que si estuviese conectada una impresora verdadera. El ordenador no tiene que esperar a que se impriman los datos y por tanto la velocidad de transmisión es muy rápida y está limitada solamente por el hardware del ordenador. En la figura número trece se puede ver esta "impresora ficticia" y en la figura número catorce tenemos el conector y el comprobador del puerto paralelo.

3.2.- PROGRAMADOR.

Como ya se ha indicado, para la grabación de la memoria de programa del PIC es preciso un "programador", el cual, conectado al puerto paralelo del ordenador, genera las señales correspondientes para almacenar el programa en lenguaje máquina en la citada memoria.

3.2.1.- DESCRIPCIÓN.

En la figura número quince tenemos el esquema del programador.

El PIC a programar se conecta al puerto paralelo del ordenador a través de tres "buffer" y un transistor. Por el pin número dos salen los datos hacia el PIC, y en el pin número tres tenemos los pulsos de reloj para sincronizar el sistema. Una vez grabados, los datos se leen y se envían al PC por el pin número diez para verificar que la grabación ha sido correcta. Por el pin número cinco salen los niveles para poner el PIC en modo grabación en el momento adecuado. Los tres "buffer" contenidos en el integrado IC1, 7411, aislan el puerto paralelo para no cargarlo excesivamente. El transistor Q01 convierte los niveles de 5 voltios del pin número cinco, en niveles de 13,5 voltios que son los necesarios para poner el PIC en modo de grabación. Todo el conjunto está alimentado por una fuente de diseño clásico, transformador, rectificador y dos estabilizadores 7812 y 7805. El primer estabilizador 7812 tiene en su retorno a masa dos diodos en serie con lo que la tensión de salida sube hasta 13,5 voltios para la grabación del PIC. El segundo estabilizador proporciona una tensión de 5 voltios para alimentar el PIC y el integrado IC1. Un LED rojo conectado a la tensión de 5 voltios nos informa del funcionamiento de la fuente, mientras que otro LED verde en el circuito de colector del transistor Q! Nos indica los momentos en que se está produciendo la programación del PIC.

3.2.2.- CONSTRUCCIÓN.

Para la construcción del programador utilizaremos una placa de circuito impreso, cuyo diseño se puede ver en la figura número dieciséis. Los componentes necesarios para la construcción del programador son los siguientes.

C01 1000µF
C02 100nF
C03 10µF
C04 100nF
C05 10µF
C06 100nF
C07 100nF
D01 1N4007
D02 1N4007
D03 1N4007
D04 1N4007
F01 0,1A
IC01 7411
IC02 7812
IC03 7805
IC04 Zócalo PIC
LED01 Verde
LED02 Rojo
Q01 BC549
R01 100
R02 100
R03 4K7
R04 1K
R05 1K
R06 1K
S01 Interruptor
SD01 (25 pins)
TR01 2 x 12

Las medidas de la placa de circuito impreso son 67mm x 113mm. En la figura número diecisiete se puede ver la disposición de los componentes sobre la placa de circuito impreso y en la figura número dieciocho tenemos una placa preparada para el montaje.

Como paso previo realizaremos los cuatro puentes que se indican en la figura número diecisiete. A continuación colocaremos los componentes sobre la placa de circuito impreso y procederemos a la soldadura empleando un soldador de punta fina y estaño fino de calidad, teniendo cuidado de poner la cantidad justa para no hacer un cortocircuito entre pistas, que en algunos puntos están muy próximas. El transformador empleado es un modelo de 12+12 voltios, 2,8VA, para circuito impreso. El conector SD1 es un modelo acodado para circuito impreso. Colocaremos dos zócalos, uno de 14 patillas para el integrado IC1, 7411, y otro de 18 patillas para el PIC que vamos a programar.

En la figura número diecinueve podemos ver la placa de circuito impreso con todos los componentes montados. Para que el manejo del programador sea mas cómodo se ha realizado un caja con aglomerado DM de 3 milímetros de grueso. De esta manera evitamos posibles cortocircuitos al manejar la placa sin protección. También como media de seguridad, se ha cubierto la parte de entrada de tensión de red con un trozo de metacrilato sujeto con un par de tornillos. Así eliminamos la posibilidad de recibir una descarga eléctrica al tocar inadvertidamente el portafusible o cualquier otra parte del circuito conectada a la red de 220 voltios. En la figura número veinte se puede ver el programador dentro de la mencionada caja y en la figura número veintiuno la tapa de metacrilato colocada. La figura número veintidós nos muestra los tres prototipos objeto del presente artículo.

Como ya se ha indicado, el programador se ha construido exclusivamente para los PIC16F84 y por tanto se ha dispuesto un zócalo de dieciocho patillas para la inserción del PIC. Es preciso tener mucho cuidado de no doblar alguna patilla al insertar el integrado en el zócalo. Cómo el espacio disponible no es excesivo, es conveniente utilizar una herramienta adecuada para la extracción del PIC. En la figura número veintitrés se pueden ver unas pinzas adecuadas para esta operación. La mayor es articulada y sujeta firmemente el integrado en el momento de retirarlo de la placa del programador.

4.- SOFTWARE.

Para la programación del PIC es preciso la utilización del correspondiente software. Un programa de amplia utilización es IC-Prog, un programa de libre distribución que se puede descargar de la web del desarrollador, Bonny Gijzen. La dirección para la descarga del programa es http://www.ic-prog.net/download.html. Este programa está traducido al español y tiene frecuentes revisiones. Los ficheros que es preciso descargar son los siguientes.

http://www.ic-prog.net/icprog105D.zip
http://www.ic-prog.net/icprog_driver.zip
http://www.ic-prog.net/help_spanish.zip

Los tres ficheros corresponden al programa, el driver para Windows NT/2000/XP y la traducción al español. Una vez descomprimidos los ficheros, los copiaremos a una carpeta dentro de Archivos de Programa, pues no es necesaria ninguna instalación. Si es necesario, crearemos el acceso directo que colocaremos en el grupo de programas que prefiera el lector.

La primera vez que iniciamos el programa nos pide la configuración del hardware. En este punto elegimos Tait Serial Programmer, aunque la configuración se puede cambiar posteriormente. En la figura número veinticuatro se puede ver la pantalla de inicio del programa. En todas las posiciones aparece el byte 3FFF, lo que quiere decir que todos los bits están a "uno".

En la pantalla "Ajustes hardware", además de elegir Tait Serial Programmer, hay que seleccionar el puerto LPT1 y marcar las casillas "Windows API" "Invertir MCLR", quedando las demás casillas sin activar. Esto se puede ver en la figura número veinticinco.

En la pantalla "Opciones", seleccionamos la pestaña "Miscelánea" y marcamos la casilla "Habilitar driver NT/2000/XP", tal como vemos en la figura número veintiséis.

Las opciones normales son leer un fichero del disco duro, leer el PIC, grabar el PIC, borrar el PIC, verificar el PIC. El programa es muy fácil de usar y la grabación del PIC se hace en pocos segundos.

5.- RESUMEN.

En el presente artículo se da un pequeño repaso a las principales características de los microcontroladores, haciendo especial mención de los PICmicro y en especial del tipo 16F84. Se describe la construcción y empleo de un programador para este tipo así como la utilización del correspondiente software. Un comprobador de puerto paralelo y una impresora virtual completan el artículo.

El montaje descrito en el presente artículo no ha sido probado en grandes series y, por tanto, no se tiene certeza de que su funcionamiento sea 100% correcto. Solamente se describe la construcción y el funcionamiento del prototipo.

El autor no se hace responsable de posibles derechos de copia. La información para la realización de este montaje procede de diversas publicaciones, libros, revistas, etc., así cómo de los propios conocimientos del autor.

El autor no se hace responsable de posibles daños y/o perjuicios causados por la construcción y/o uso de este dispositivo, daños personales o muerte, daños a la propiedad, daños al medio ambiente, lucro cesante, perdida total o parcial de datos informáticos o cualquier tipo de daño que se pudiera derivar del montaje y/o uso de este dispositivo.

No se aconseja el uso de este dispositivo en aplicaciones críticas, cómo son control de maquinaria peligrosa, control de navegación o tráfico, maquinaria de mantenimiento de vida o sistemas cuyo mal funcionamiento pueda provocar causas o efectos anteriormente mencionados. Este dispositivo no es tolerante a fallos.

El autor declina cualquier responsabilidad, ni se hace responsable de no mencionar a los dueños de las posibles patentes que aquí se pudieran reflejar.

El dispositivo descrito en el presente artículo es un montaje experimental, cuyo propósito es el estudio de los diferentes aspectos de la Electrónica, por tanto, no está destinado a su utilización industrial ni para su explotación comercial en cualquiera de sus facetas.

El autor no efectúa ninguna actividad comercial relacionada con este u otros montajes publicados en esta u otras revistas o publicaciones de cualquier tipo.

El presente artículo y todos los publicados hasta el momento en la revista "RADIOAFICIONADOS", están recopilados en un DVD a disposición de quien lo solicite. Se incluyen todos los textos, así como las fotografías, dibujos, gráficos, plantillas de circuitos impresos, etc.

Aunque se ha intentado proporcionar todos los detalles necesarios para la realización del proyecto, es posible que algún aspecto no haya quedado suficientemente desarrollado. Como es natural, con mucho gusto el autor dará cumplida información sobre cualquier detalle no especificado, o cualquier punto en particular que no haya quedado completamente explicado. Buena suerte a todos.

Luis Sánchez Pérez. EA4NH

E-mail : ea4nh@ure.es

[ Inicio ] [ Datos personales ] [ El cuarto de la radio ] [ Artículos ] [ Fotografía ] [ Música ] [ Otros ]