jueves, 21 de julio de 2011

Programador conectado al puerto paralelo del ordenador
Escrito por Administrator
Viernes, 05 de Septiembre de 2008 18:15
Programador para microcontroladores PIC conectado al Puerto Paralelo del ordenador.
Los programas descritos en el libro "Microcontrolador PIC16F84. Desarrollo de proyectos" de la Editorial Ra-Ma se pueden grabar mediante el programador explicado en esta página. Está basado en el Programador PIC Pablin II explicado en www.pablin.com.ar y permite grabar microcontroladores PIC de 8, 18, 28 y 40 pines así como memorias EEPROM series I2C. Se conecta al puerto paralelo LPT1 del ordenador.
El esquema se muestra en la siguiente figura (pulsando sobre él podrá visualizarlo a mayor tamaño):

El LED D3 indica que el sistema se encuentra alimentado, mientras que el LED D4 se apaga cuando se produce la grabación del dispositivo.
El funcionamiento del circuito utiliza el protocolo del bus I2C para la grabación del microcontrolador PIC o memoria serie. Los pines del puerto paralelo 2 (D0), 3 (D1), 5 (D3), 6 (D4) y 10 (ACK) permiten conectar el circuito con el ordenador a través de los inversores 74LS04.
• El pin 2 (D0) es el encargado de llevar los datos del ordenador a la línea SDA del dispositivo a programar.
• Por el pin 3 (D1) se envía los pulsos de reloj SCL necesarios para la programación.
• El pin 10 (ACK) permite al ordenador leer los datos para el necesario reconocimiento y asentimiento.
• Los pines 5 (D3) y 6 (D4), son los encargados de controlar la tensión de programación (Vpp) necesaria para grabar el microcontrolador PIC y que se conecta al pin MCLR/VPP del microcontrolador. Si este pin se pone a nivel de alimentación Vcc (5 V), el PIC trabaja normalmente mientras que si se le aplica 12v el PIC se inicializa en modo programación.
Por el pin 5 (D3) se envía la orden para proporcionar el impulso de grabación para los microcontroladores de 18 pines y por el pin 6 (D4) para los microcontroladores de 28 ó 40 pines. El control de la tensión de programación lo efectúa el transistor NPN Q2. Hay dos posibilidades:
• Que el ordenador no envíe orden de grabación del microcontrolador, manteniendo en bajo las líneas 5 (D3) y 6 (D4). En este caso, los diodos D1 y D2 no conducen provocando que Q2 esté en corte y el transistor Q1 en saturación. La tensión de programación tiene nivel de masa y a la línea MCLR/VPP no se le aplica impulso de programación. El LED D4 se ilumina avisando de esta situación.
• Cuando el ordenador envía el impulso positivo de programación a través de las línea 5 (D3) ó 6 (D4), el diodo correspondiente conduce, saturando el transistor Q2, que hace que Q1 entre en corte y al pin de programación del microcontrolador le lleguen los 13,5 V necesarios a través de R4 y D4. La corriente por esta línea es muy pequeña y el led D4 permanecerá apagado mientras dura la grabación del PIC.
El circuito requiere como única alimentación de 13,5V a 12V de continua con una corriente mayor de 200 mA. Puede usarse cualquier fuente universal siempre que se respete la polaridad.


Para conectarlo al ordenador se puede utilizar un conector hembra centronics para circuito impreso (igual al que tienen las impresoras) o un cable directo hacia el macho DB25.
Los dibujos para construcción de la placa de circuito impreso y el esquema en formato OrCAD lo pueden descargar pulsando sobre el siguiente enlace programador_paralelo (45.75 kB).
A continuación se muestra una foto del prototipo terminado:

El software utilizado para su programación es el IC-Prog. Hay que utilizar la configuración detallada en la siguiente figura:

De esta configuración se destacan los siguientes aspectos:
• El programador configurado es el "Propic 2 Programmer".
• NO se configura la opción "Invertir MCLR" como en el programador Pablin II original.

Actualizado ( Sábado, 06 de Septiembre de 2008 18:27 )
El P1C16C84 está fabricado en tecnología CMOS, consume baja potencia, y es completamente estático (si el reloj se detiene, los datos de la memoria no se pierden). El 16F84 tiene las mismas características pero posee memoria FLASH, esto hace que tenga menor consumo de energía, y como si fuera poco tiene mayor capacidad de almacenamiento.

El encapsulado más común para estos microcontrolador es el DIP (Dual In line Pin) de 18 pines, (el nuestro... ), y utiliza un reloj de 4 MHz (cristal de cuarzo). Sin embargo, hay otros tipos de encapsulado, por ejemplo, el encapsulado tipo surface mount (montaje superficial) es mucho + pequeño.

Terminales del microcontrolador y sus respectivas funciones:

Ésta sería la disposición de sus terminales y sus respectivos nombres...

Encapsulado DIP - PIC16C84/F84

Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 líneas bidireccionales de E/S (definidas por programación). Es capaz de entregar niveles TTL cuando la alimentación aplicada en VDD es de 5V ± 5%. El pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o como entrada del contador/temporizador TMR0. Cuando este pin se programa como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger), puede reconocer señales un poco distorsionadas y llevarlas a niveles lógicos (cero y cinco voltios). Cuando se usa como salida digital se comporta como colector abierto; por lo tanto se debe poner una resistencia de pull-Up (resistencia externa conectada a un nivel de cinco voltios, ...no te preocupes, mas abajo lo entenderás mejor). Como salida, la lógica es inversa: un "0" escrito al pin del puerto entrega a la salida un "1" lógico. Este pin como salida no puede manejar cargas como fuente, sólo en el modo sumidero.

Pata 4 (MCLR / Vpp): Es una pata de múltiples aplicaciones, es la entrada de Reset (master clear) si está a nivel bajo y también es la habilitación de la tensión de programación cuando se está programando el dispositivo. Cuando su tensión es la de VDD el PIC funciona normalmente.

Patas 5 y 14 (VSS y VDD): Son respectivamente las patas de masa y alimentación. La tensión de alimentación de un PIC está comprendida entre 2V y 6V aunque se recomienda no sobrepasar los 5.5V.

Patas 6, 7, 8, 9, 10, 11, 12, 13 (RB0-RB7): Es el PORT B. Corresponden a ocho líneas bidireccionales de E/S (definidas por programación). Pueden manejar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede programarse además como entrada de interrupciones externas INT. Los pines RB4 a RB7 pueden programarse para responder a interrupciones por cambio de estado. Las patas RB6 y RB7 se corresponden con las líneas de entrada de reloj y entrada de datos respectivamente, cuando está en modo programación del integrado.

Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los pines de la entrada externa de reloj y salida de oscilador a cristal respectivamente.

Ahora un poco de electrónica:

Esto comienza a ponerse interesante, no crees...?, ok sigamos... Como estos dispositivos son de tecnología CMOS, todos los pines deben estar conectados a alguna parte, nunca dejarlos al aire porque se puede dañar el integrado. Los pines que no se estén usando se deben conectar a la fuente de alimentación de +5V, como se muestra en la siguiente figura...

Capacidad de corriente en los puertos

La máxima capacidad de corriente de cada uno de los pines de los puertos en modo sumidero (sink) es de 25 mA y en modo fuente (source) es de 20 mA. La máxima capacidad de corriente total de los puertos es:
PUERTO A PUERTO B
Modo Sumidero 80 mA 150 mA
Modo Fuente 50 mA 100 mA

Así se vería la conexión para ambos modos de funcionamiento.

El oscilador externo

Es un circuito externo que le indica al micro la velocidad a la que debe trabajar. Este circuito, que se conoce como oscilador o reloj, es muy simple pero de vital importancia para el buen funcionamiento del sistema. El P1C16C84/F84 puede utilizar cuatro tipos de reloj diferentes. Estos tipos son:

RC. Oscilador con resistencia y condensador.
XT. Cristal.
HS. Cristal de alta velocidad.
LP. Cristal para baja frecuencia y bajo consumo de potencia.

En el momento de programar o "quemar" el microcontrolador se debe especificar que tipo de oscilador se usa. Esto se hace a través de unos fusibles llamados "fusibles de configuración" o fuses.

Aquí utilizaremos el cristal de 4 MHz, porque garantiza mayor precisión y un buen arranque del microcontrolador. Internamente esta frecuencia es dividida por cuatro, lo que hace que la frecuencia efectiva de trabajo sea de 1 MHz, por lo que cada instrucción se ejecuta en un microsegundo. El cristal debe ir acompañado de dos condensadores y el modo de conexión es el siguiente...

Si no requieres mucha precisión en el oscilador, puedes utilizar una resistencia y un condensador, como se muestra en la figura. donde OSC2 queda libre entregando una señal cuya frecuencia es la del OSC/4.

Según las recomendaciones de Microchip R puede tomar valores entre 5k y 100k, y C superior a 20pf.

Reset

El PIC 16C84/F84 posee internamente un circuito temporizador conectado al pin de reset que funciona cuando se da alimentación al micro, se puede entonces conectar el pin de MCLR a la fuente de alimentación. Esto hace que al encender el sistema el microcontrolador quede en estado de reset por un tiempo mientras se estabilizan todas las señales del circuito (lo cual es bastante bueno, por eso siempre la usaremos...).

Este último circuito, es por si deseas tener control sobre el reset del sistema, sólo le conectas un botón y listo...

Ahora vamos al interior del micro




tutorial basico microcontroladores

Microcontroladores - Sistemas microcontrolados

El diagrama de un sistema microcontrolado sería algo así

Los dispositivos de entrada pueden ser un teclado, un interruptor, un sensor, etc.

Los dispositivos de salida pueden ser LED's, pequeños parlantes, zumbadores, interruptores de potencia (tiristores, optoacopladores), u otros dispositivos como relés, luces, un secador de pelo, en fin.. lo que quieras.

Aquí tienes una representación en bloques del microcontroador, para que te des una idea, y puedes ver que lo adaptamos tal y cual es un ordenador, con su fuente de alimentación, un circuito de reloj y el chip microcontrolador, el cual dispone de su CPU, sus memorias, y por supuesto, sus puertos de comunicación listos para conectarse al mundo exterior.

Definamos entonces al microcontrolador; Es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Sacado de un libro...!!!. En fin estas son básicamente algunas de sus partes...

Memoria ROM (Memoria de sólo lectura)
Memoria RAM (Memoria de acceso aleatorio)
Líneas de entrada/salida (I/O) También llamados puertos
Lógica de control Coordina la interacción entre los demás bloques

Eso no es todo, algunos traen funciones especiales, ya hablaremos de ellas.

Microcontroladores PIC16CXX/FXX de Microchip

Me referiré a estos porque serán los que utilizaré aquí, (al menos por ahora). Estos micros pertenecen a la gama media y disponen de un set de 35 instrucciones, por eso lo llaman de tipo RISC (Reduced Instruction Set Computer) en entendible sería "Computador con Set de Instrucciones Reducido" pocas instrucciones pero muy poderosas, otras son de tipo CISC (Complex Instruction Set Computer - Computador con Set de Instrucciones Complejo), demasiadas instrucciones, y lo peor, difíciles de recordar.

Esta familia de microcontroladores se divide en tres rangos según la capacidad de los microcontroladores. El más bajo lo compone la familia 16C5X. El rango medio lo componen las familias 16C6X/ 7X/ 8X, algunos con conversores A/D, comparadores, interrupciones, etc. La familia de rango superior lo componen los 17CXX.

Estas son las funciones especiales de las cuales disponen algunos micros...

Conversores análogo a digital (A/D) en caso de que se requiera medir señales analógicas, por ejemplo temperatura, voltaje, luminosidad, etc.
Temporizadores programables (Timer's) Si se requiere medir períodos de tiempo entre eventos, generar temporizaciones o salidas con frecuencia específica, etc.
Interfaz serial RS-232. Cuando se necesita establecer comunicación con otro microcontrolador o con un computador.
Memoria EEPROM Para desarrollar una aplicación donde los datos no se alteren a pesar de quitar la alimentación, que es un tipo de memoria ROM que se puede programar o borrar eléctricamente sin necesidad de circuitos especiales.
salidas PWM (modulación por ancho de pulso) Para quienes requieren el control de motores DC o cargas resistivas, existen microcontroladores que pueden ofrecer varias de ellas.
Técnica llamada de "Interrupciones", (ésta me gustó) Cuando una señal externa activa una línea de interrupción, el microcontrolador deja de lado la tarea que está ejecutando, atiende dicha interrupción, y luego continúa con lo que estaba haciendo.

Todo esto, sólo para tener una idea de lo que son los micros, ahora vamos a un par de ellos en especial