Sei sulla pagina 1di 38

Kit de Programaci n

de PICs

(cap tulo escrito por el Ing. A. H. Picerno)

INTRODUCCION
Cuando se ensea un tema que conjuga las caractersticas de hardware y software, se trata de generar un nuevo aficionado sabiendo que el primer paso no
es ensear a programar sino ensear a
realizar un dispositivo prctico; el inters
por la programacin seguramente vendr luego.
Yo me imagin que la mejor manera
de explicar todo esto sobre un PIC es relatando cmo se concreta el dispositivo,
desde la idea inicial hasta la realizacin
prctica, suponiendo que el programa lo
disea otra persona a requerimiento
nuestro.
ACLARACION DEL AUTOR
Este captulo fue escrito para que Ud.
arme el dispositivo y no para que lo lea
alegremente y deje que otros realicen la
experiencia prctica. Por favor, decida si
va a tomar el tema en serio, y si la respuesta es s; no dude en armar el dispositivo propuesto. Si no lo hace es muy probable que en determinado momento deje de entender lo que est leyendo y
crame que no es culpa ma. Como ya
dijera, si Ud. pretende aprender a andar
en bicicleta en forma terica es un firme
candidato al yeso.

QUE NOS PROPONEMOS ARMAR


No tendremos grandes pretensiones sobre el dispositivo a armar, ya que slo lo

tomamos como ejemplo. En principio, un


simple circuito que encienda un conjunto
de leds en secuencia es suficiente. Es decir que nuestro dispositivo va a tener 4
leds rojos que numeraremos del uno al
cuatro. Cuando lo encendamos, se encender primero el led 1 por un instante,
luego se apagar y se encender el dos
y as sucesivamente hasta que se enciendan los cuatro leds; posteriormente al
apagado del nmero 4 se vuelve a comenzar una nueva secuencia por el nmero 1.
En principio, el tiempo para completar
una secuencia no se considera como algo que debe ser muy preciso y se lo ubica en el rango de medio segundo con
posibilidad de variarlo slo por modificacin del programa.
El dispositivo debe ser barato y utilizar
un PIC 16C84 o 16F84, que cuesta menos
de 8 dlares, comprado por unidad (posteriormente se pretende desarmar el dispositivo y armar otros; por esa razn se eligieron PICs fcilmente programables y reprogramables).
Por otro lado, el circuito debe ser muy
simple y con pocos componentes ya que
pretendemos armarlo en un protoboard
(panel de armado sin soldador).
Vamos a suponer que no tenemos un
dispositivo programador a nuestra disposicin; es decir que deberemos armar tambin un dispositivo programador de nuestros PICs que se conecte al puerto paralelo de una PC (el puerto de impresora).
Nuestra intencin es que construya un dispositivo para programar PIC que sea muy

Todo sobre PICs

59

KIT

DE

PROGRAMACIN

DE

PICS

sencillo de modo que se


pueda armar en el mismo
protoboard y que se conectar a la PC por intermedio
de una manguera.
Como todos sabemos, un
dispositivo para una PC
(hardware), siempre necesita un programa que lo controle (software). Nuestra intencin es que Ud. no compre nada ms que lo imprescindible; as que vamos
a usar un software gratuito
llamado NOPPP que puede
bajarse por Internet y cuya
distribucin hemos facilitado hace un tiempo a los
compradores de Saber
Electrnica (si an no lo tiene y desea recibirlo sin cargo, contctese
telefnicamente con el departamento de
Atencin al Cliente al 011-4301-8804 o por
e-mail a
ateclien@vianetworks.net.ar).
Antes de continuar, quiero realizar algunas aclaraciones con respecto a los
trminos utilizados en este artculo. Cuando decimos programar nos estamos refiriendo a disear un programa para un
PIC y a la persona que realiz ese trabajo
la llamamos programador; cuando decimos cargar nos estaremos refiriendo a
llenar con datos la memoria de un PIC y
el dispositivo que realiza esta funcin lo
llamaremos cargador de PICs. Aunque
parezca increble nuestro amplio idioma
no tiene una palabra precisa que diferenciara a la accin del aparato y se suscitaban graves confusiones al leer, por algo
tan simple. En realidad, s estaba acuado un trmino prctico para el dispositivo:
quemador de PICs, pero el mismo slo
se puede aplicar a aquellos PICs que slo
se pueden grabar una sola vez. Por otro

60

Todo sobre PICs

Figura 1

lado, el trmino se puede confundir con


un dispositivo que funcionando mal quema a los PIC en lugar de cargarlos, tal como el autor mencionar con respecto a
un programador comercial.
EL CIRCUITO DEL PROGRAMADOR
Un circuito con PIC siempre se compone de dos secciones. El circuito del dispositivo deseado y los necesarios componentes perifricos imprescindibles para
que el PIC funcione, a saber clock y reset
(la primer seccin cambia con cada proyecto, en tanto que la segunda puede
ser comn a muchos proyectos). Ambos
circuitos perifricos tienen diferentes opciones: el clock puede ser a cristal cuando se requiera precisin, o a RC (como
en nuestro caso) cuando slo se requiere
que la secuencia de encendido tenga un
tiempo aproximado. En cuanto al reset,
ste puede ser externo con un pulsador o
interno y automtico, cada vez que se
conecta la alimentacin de 5V. Una vez

KIT
definidas estas cosas se
puede dibujar el circuito
completo, tal como lo
mostramos en la figura 1.
Observemos primero la
seccin perifrica imprescindible. El clock est generado por un oscilador
RC realizado con el PIC,
R1 y C1 (elegidos para obtener una secuencia completa que dure un segundo aproximadamente), en
tanto que el reset se realiza en forma automtica,
cada vez que se enciende el equipo, por intermedio de R6. Nuestro circuito
de aplicacin no puede ser ms sencillo,
slo utilizamos cuatro LEDs sobre las patas RA0 a RA3 (puerto A tomado parcialmente) y sus correspondientes resistores de pull up (resistores a fuente). Nada
ms simple y fcil de armar en un panel
protoboard.

DE

PROGRAMACIN

DE

PICS

Figura 2

INSTRUYENDO AL REY MICRO

El maestro de nuestro PIC recin comprado es nuestra PC, ella le va a ensear


a realizar su trabajo. Pero la PC no tiene
un zcalo para PIC, entonces en qu
parte de mi PC conecto el PIC?. La respuesta es: como mi PC no tiene una conexin prevista para el PIC yo la debo
Qu ocurrira si compro los compoconstruir. El dispositivo con un zcalo para
nentes, los armo y pruebo directamente
conectar el PIC e instruirlo se llama genel circuito?
No va a funcionar porque como el PIC ricamente Programador de PICs, pero
nosotros en este artculo convenimos en
no est instruido para realizar ninguna
llamarlo cargador de PICs y es como
funcin y los LEDs van a permanecer todos encendidos. El PIC tiene una memoria un apndice de nuestra PC, conectado
interna que debe cargarse con nmeros con un cable al puerto paralelo de la misma.
binarios de 8 dgitos; exactamente tiene
48 posiciones de memoria (numeradas
Si la PC tiene dos puertos paralelos de
desde el 0 hasta el 2F en nmeros hexasalida se usar uno para la impresora y el
decimales), en donde se le indicar que
tarea debe realizar o qu datos fijos debe otro para nuestro programador, si slo tiene uno, se desconectar provisoriamente
cargar para ejecutar esas tareas.
la impresora para conectar el programaEn nuestro caso activar transistores indor, o mejor aun, se conectarn ambos
ternos en algunas patas del puerto A
(predispuestas como salidas) de modo de dispositivos a travs de una caja selectora que se consigue en los negocios de
generar cortocircuitos momentneos a
computadoras y se usa para conectar
masa en forma secuencial.

Todo sobre PICs

61

KIT

DE

PROGRAMACIN

DE

PICS

dos impresoras a la misma PC. Ver figura


2.
Si Ud. tiene un mnimo conocimiento
sobre computadoras, sabr que un dispositivo conectado a la PC es totalmente
intil si no est acompaado de un programa instalado en el disco rgido de la
misma. En algunos casos se necesitan dos
programas, a saber: el driver del dispositivo y un programa de aplicacin que utilice dicho dispositivo. En el caso de dispositivos que se conectan en el puerto paralelo, el programa driver no es necesario
porque dicho puerto ya est debidamente habilitado para usar la impresora. Lo
que s se requiere obligatoriamente, es un
software de aplicacin del programador
que suele proveerlo el fabricante del mismo.
Programadores y software de aplicacin de los mismos hay muchos. Algunos
son muy simples y econmicos (tan econmicos que muchos se entregan gratuitamente por Internet, es decir que el autor regala el software y da las explicaciones para armar el hardware) y otros son
muy complejos y caros. La diferencia entre unos y otros suele ser la posibilidad de
aceptar ms tipos de PICs (adems del
16C84 y 16F84 existen muchos otros) e inclusive microprocesadores o memorias de
otras marcas. Tambin se diferencian en
la velocidad a la cual cargan el PIC; los
hay de alta productividad que trabajan
con un elevado flujo de datos y otros ms
lentos que slo sirven para tareas de
aprendizaje.
En nuestro caso vamos a trabajar, como lo hemos hecho desde el comienzo
de nuestras notas en Saber Electrnica,
con un software que se llama NOPPP, que
es absolutamente gratuito y se puede bajar desde Internet. Este software est previsto para ser usado slo con los

62

Todo sobre PICs

PIC16C84, PIC16C83 y PIC16F84 que son


los ms utilizados y los nicos que utilizamos en nuestra serie Educando al rey Micro.
Con respecto al hardware, Ud. puede
usar el que propone el autor del software
que es muy sencillo o usar otro que le propongo yo ms adelante y que tiene algunas ventajas con respecto a una mejor
forma de los pulsos de programacin. El
NOPPP es suficientemente sencillo como
para implementarlo en un panel protoboard, pero como es un hardware que
deberemos usar ms adelante para programar otros PICs conviene armarlo en
forma ms definitiva utilizando una plaqueta de circuito impreso o una plaqueta
ojalillada. Si Ud. slo desea armar el circuito de este artculo puede armar tanto
el cargador como el circuito de aplicacin en dos lugares distintos del mismo
protoboard.
Si quiere algo ms definitivo utilice el
circuito que le propongo yo, que es bastante ms profesional ya que cuenta con
un integrado lgico con 6 amplificadores
buffers que separa la PC del programador propiamente dicho.

LAS SEALES DE
PROGRAMACION DE UN PIC
Si Ud. est acostumbrado a trabajar
con memorias serie, no va a tener inconvenientes para entender cmo se programa un PIC y puede saltar esta seccin. Si
no lo est, lea atentamente esta seccin
en donde develaremos el misterio de la
carga de un programa en nuestro hasta
ahora inculto rey.
El PIC, como una memoria, tiene una
pata que predispone el dispositivo para
leer o para escribir. Si la pata 4 del PIC est a un potencial comprendido entre 13 y

KIT
14 V, el PIC est preparado para escribir
los datos que provienen de la PC. Si la
pata 4 est por debajo de 6V, el dispositivo est previsto para ser ledo. Los datos
a leer o escribir se ponen/obtienen de la
pata 13 del PIC con la pata 12 del mismo
que opera como clock.
Aquellos que conocen el proceso de
carga de datos en una memoria serie, no
tendrn mayores inconveniente en entender la frase anterior. Para aquellos que no
conocen el proceso explicamos lo siguiente:
Un PIC se lee/escribe accediendo a las
diferentes posiciones de memoria por la
misma pata por la que se obtienen/ingresan los datos (la pata 13). La seal primero elige la posicin de memoria a ser leda/escrita, y luego que esa posicin est

Figura 3

DE

PROGRAMACIN

DE

PICS

accesible se escriben/leen los datos. El


clock que se coloca en la pata 12 sirve
para indicar en qu momento se debe
transferir la informacin. Los datos pueden estar sobre la pata 13 todo el tiempo
que Ud. desee, ya que no sern ni ledos
ni escritos por la PC hasta que se produzca un cambio de estado (de alto para
bajo) en la pata 12. Al autor le gusta explicar estos hechos haciendo un paralelo
con la ejecucin de un penal. El jugador
13 pone la pelota pero hasta que el 12 no
la patea no sabemos si ser gol. El juzgamiento lo realiza el juez que anular el
penal si no coincide con su silbato ya sea
que est convertido o no.
En la figura 3 mostramos las formas de
seal indicadas por Microchip para leer/grabar un PIC.
El lector observar que dentro
del comando existe una primera seccin de 6 bits que
indica la posicin
de memoria a ser
leda/escrita y luego la lnea de datos permanece en
estado de alta impedancia por un
intervalo de tiempo
que depende de
la operacin (durante ese tiempo el
clock est apagado). Por ltimo ingresan/egresan los
datos.
Las conexiones
de fuente y las seales deben ser
aplicadas segn
una secuencia predeterminada que

Todo sobre PICs

63

KIT

DE

PROGRAMACIN

DE

PICS
Figura 4

mismo criterio a un
ritmo tal que el dato
est presente por lo
menos durante
100nS.
H) Cuando todos
los datos fueron cargados se debe esperar 1 segundo.
I) Desconectar la
fuente de 13V.
J) Desconectar la
fuente de 5V.
K) Retirar el micro
grabado.

Por sobre todas las


cosas debe respetarse el criterio de no
sacar un PIC de su
zcalo con las fuentes conectadas, porque puede desprodebe respetarse invariablemente. Los
gramarse o, peor aun, daarse definitivanombres de las seales se aclaran en la fi- mente.
gura 4.
Tambin es muy importante respetar
las tensiones de fuente y no demorar la
A) El primer paso es colocar el PIC en
llegada de datos, luego conectar VPP
el zcalo del programador con seales y (porque podran cargarse datos falsos por
fuentes a potencial de masa.
interferencias electromagnticas).
B) Levantar la tensin de fuente VDD a
Como usted puede observar de la desun potencial de 5V 0,2V por la pata 14
cripcin anterior la entrada RB6 es utiliza(VDD).
da como clock y la RB7 como entrada de
C) Levantar la tensin de fuente VPP a datos en una clsica operacin de transun potencial de 13V 0,3V por la pata 4
ferencia de datos en serie.
(MCLR NEGADO).
Observe que hay un tiempo entre el
D) Esperar en esas condiciones un
momento en que MCLR NEGADO sale de
tiempo superior a 1mS.
la condicin de reset hasta que aparece
E) Posicionar el primer dato en la pata el primer dato o el primer pulso de clock.
13 (RB7) con un potencial alto (mayor a 4 Tambin hay un tiempo mnimo para la
V) o bajo (menor a 1V).
permanencia de un dato en la entrada
F) Cuando la pata 12 (RB6) pase a un
(la representacin usada para un dato
estado bajo, inferior a 1V, el dato se car- significa que el mismo puede ser alto o
ga en la memoria.
bajo, depende del bit que se est graG) Continuar cargando los datos con el bando). Lo que no hay es un tiempo m-

64

Todo sobre PICs

KIT
ximo pero evidentemente cuando mayor
es este tiempo ms lenta ser la carga
del programa.
El tiempo ms adecuado depende de
factores tales como el largo del cable utilizado para conectar el programador a la
PC. Si el cable es largo, los pulsos tienden
a deformarse y atenuarse, sobre todo
cuando son de corta duracin (100nS
equivalen a una frecuencia de 10MHz).
Para evitar problemas, todos los programadores trabajan a velocidades inferiores
a la mxima, sobre todo considerando
que la capacidad de memoria no es muy
grande y para el uso no comercial no son
imprescindibles grandes velocidades de
grabacin.

PREDISPOSICION DE UN PIC
Un cargador de PIC debe permitir tambin una operacin de verificacin para
cuando el usuario tiene dudas respecto
de la condicin de un determinado PIC
(vaco o lleno). Solo que el programa almacenado debe ser inviolable en caso
de que la persona que lo carg as lo haya dispuesto. Esto se llama predisponer el
PIC y no slo se lo predispone para hacerlo inviolable, sino que adems se determinan otros importantes parmetros de
funcionamiento como por ejemplo que
est predispuesto para un clock a RC o
que contenga un temporizador de reset
interno.
Las predisposiciones no forman parte
del programa del PIC aunque pueden incluirse junto con ste. Algunos cargadores
de PICs preguntan sobre la predisposicin
antes de grabar el PIC. La pregunta sobre
la predisposicin deseada aparece en la
pantalla de la PC y uno elige de un men
de opciones. En otros casos, las predisposiciones se escriben antes del programa

DE

PROGRAMACIN

DE

PICS

en una secuencia perfectamente predeterminada que debe respetarse a ultranza. Las predisposiciones son tres y las vamos a analizar por orden:
a) La prohibicin de lectura. El PIC se
programa pero el programa no puede ser
ledo. Cada tanto aparece informacin
en Internet sobre alguna empresa dedicada a leer PICs protegidos. Lo cierto es
que todas las investigaciones del autor
terminaron en el pedido de dinero adelantado, sin ninguna garanta de entrega
de la informacin con posterioridad; por
lo que el autor considera que se trata de
un moderno cuento del to. En una de
esas supuestas empresas no me solicitaron ningn dinero por adelantado, as
que presuroso envi un PIC cargado con
un programa que yo mismo proteg. Un
mes despus y cansado de enviar e-mails
que solicitaban respuesta o la devolucin
del PIC, me d cuenta de que la ganancia de esa empresa estaba en los PICs
que reciban gratuitamente de tontos como yo. Aclaremos que el programa protegido no se puede leer, pero el PIC se
puede volver a grabar. El autor escuch
tambin una especie que dice que el PIC
16Fxx fue creado por una supuesta filtracin en el secreto del programa de los
PIC 16Cxx, pero el autor no tiene pruebas
de la certeza de esta noticia.
b) Habilitacin del timer de reset. En el
pinup del PIC se puede observar que la
pata llamada MCLR negado (4) tiene un
doble uso. En principio sirve para predisponer el PIC en grabacin o lectura, como ya fuera comentado; pero cuando su
tensin cae por debajo de 1V, el PIC se
resetea y comienza la lectura del programa por el principio. Este tipo de reset se
llama reset a pulsador y se utiliza para
provocar alguna accin como, por ejemplo, comenzar una secuencia de encendidos de LEDS o encender un LED por un

Todo sobre PICs

65

KIT

DE

PROGRAMACIN

DE

PICS

tiempo predeterminado. Este modo de


funcionamiento requiere una accin externa de reset (apretar un pulsador). La
misma accin de reset se puede conseguir en forma automtica cada vez que
se conecta la fuente de 5V. Este modo
de trabajar slo requiere que la pata
MCLR (pata 4) est permanentemente
conectada a 5V (con un puente o un resistor de 1k) y que el PIC est predispuesto con el Power-up Timer en ON
(temporizador de encendido conectado). Cuando el temporizador est habilitado, luego de conectar la fuente de 5V,
comienza un conteo interno (que dura
72ms) durante el cual el PIC pone todas
sus compuertas internas en cero (reset) y
recin despus comienza a efectuar los
pasos que le indica el programa. A propsito, el nombre MCLR proviene de MASTER CLEAR (literalmente, limpiador maestro).
c) Circuito de vigilancia (perro guardin). En realidad el PIC tiene un reset extra que opera luego de un cierto
tiempo si no se realiza la operacin final del programa. Es como
una especie de rutina automtica de descongelamiento que
opera en caso de falla del programa. Eventualmente puede ingresar algn pulso de energa al
sistema que enve al programa a
un loop (rizo) eterno (una derivacin o camino cerrado sobre s
mismo). Una vez que el programa
ingres en ese camino no puede
salir de l salvo que se produzca
un reset. Si pasa un tiempo considerable sin que se llegue a la ltima sentencia del programa, el
PIC analiza su predisposicin y si
el Watchdog timer (literalmente
perro guardin) est habilitado
provoca un reset programado. En

66

Todo sobre PICs

los programas ms simples y donde se


producen loops infinitos a propsito (de
los que slo se sale tocando un pulsador), se suele dejar el perro guardin desconectado para evitar un funcionamiento errtico.
Cada cargador de programas tiene un
software diferente y esto implica que las
predisposiciones anteriores, tambin llamadas fusibles de predisposicin se accionen con sentencias diferentes que sern explicadas ms adelante.

EL CARGADOR DE PICs
MAS SENCILLO EL NOPPP
El NOPPP es un software para un cargador muy simple y efectivo. Realmente
no tiene defectos importantes y nos permite cargar los PIC 16C83, 16C84 y 16F84
en forma muy econmica ya que el hardware correspondiente slo requiere dos
diodos rpidos de seal, un BC548 y 4 re-

Figura 5

KIT
sistores, adems de una fuente regulada
doble de 13 y 5V y un conector para el
puerto paralelo de la PC. Ms adelante
veremos el circuito completo pero para
entender el funcionamiento del cargador
de programas nada mejor que el circuito
simplificado de la figura 5. A propsito, el
nombre del software proviene de las iniciales de NO Piece Programer Pic, es decir: programador para PIC sin piezas en
alusin a los muy pocos componentes
que requiere.
Las patas de comunicacin con el
puerto paralelo de la PC estn indicadas
como 1J1, 2J1, etc., ya con J1 designamos al conector de entrada y el nmero
inicial indica a qu pata se dirige el cable
(tambin incluimos el color del mismo).
Los datos (oscilando de 0 o 5V) ingresan
en sucesin por el cable 14J1 y, atravesando el resistor R2, llegan a la pata 13
del PIC. La pata 13 perteneciente al puerto B se comporta como una pata de
entrada de datos en tanto el cable 2J1 se
encuentra en el estado bajo es decir que

DE

PROGRAMACIN

DE

PICS

la pata 4 Vpp est a un potencial de 13V


aproximadamente.
Al mismo tiempo, el cable 17J1 se manda a potencial de masa para que los datos entrantes no salgan a su vez por el cable 11J1; de este modo, el diodo D1 no
permite que el potencial del cable supere la tensin de barrera del diodo (es decir que el diodo D1 opera como una llave). Como ya sabemos los datos deben
ser validados por medio de un cambio de
estado de la seal de clock que ingresa
desde la PC por el cable 1J1.
Frmese una imagen mental del flujo
de datos. Piense en la PC como si bombeara datos al PIC por el cable 14J1; el
PIC, para no inflarse, los devuelve por el
cable 11J1. En realidad, los datos ingresan por la pata 13 del PIC y se instalan en
la memoria; pero a continuacin, el programa de carga verifica que el dato est
en la posicin de memoria correspondiente y si as ocurre, se habilita la carga
del siguiente dato. La secuencia es tal
que:

Figura 6

Todo sobre PICs

67

KIT

DE

PROGRAMACIN

DE

PICS

A) se direcciona una posicin de la


memoria,
B) se graba,
C) se verifica esta ltima grabacin y si
es correcta,
D) se habilita al programa para cargar
el siguiente dato.
De acuerdo al programa de carga, si
falla la carga de un dato se puede seguir
con los otros y al final se intenta la carga
del dato que no se carg. En otros, una
falla de verificacin significa que el programa debe volver a cargarse completo.
Ahora que conocemos el funcionamiento del cargador de programas
NOPPP vamos a completar el circuito con
una fuente de alimentacin y el conector
para PC. Ver figura 6.
Observe que las fuentes estn conformadas por dos reguladores de 5 y de 12V
pero, como necesitamos un regulador de
13V, realizamos una pequea modificacin en el regulador de 12V; agregando
los diodos D1 y D2 la tensin de salida se
incrementa a un valor de 13,2V. El otro
cambio importante es el agregado de
capacitores de filtro que, como Ud. observa, siempre se ubican de a dos: un
electroltico para filtrar las bajas frecuencias y un cermico disco para las altas
frecuencias.
Por ltimo se agrega un conector del
tipo DB21 macho para conectar el dispositivo directamente a la salida de la impresora de una PC. En el circuito dibujamos el conector visto por el lado de las
patas de conexiones y el cdigo de colores de cable adecuado para usar un cable plano de 5 hilos (negro, marrn, rojo,
naranja y amarillo) al cual se le retuerce
por encima otro de color blanco que
opera como masa y blindaje.
Todo este circuito es sumamente sencillo y si Ud. slo quiere conocer los PICs

68

Todo sobre PICs

mediante este manual tcnico, pero no


se va dedicar a trabajar permanentemente con ellos, puede armarlo en un
mdulo de armado sin soldaduras (protoboard) junto con el circuito de un destellador rtmico. La intencin es armar el
cargador de programas, cargarle el programa de un destellador rtmico, colocar
el PIC en el circuito de prueba y observar
el funcionamiento. Luego, modificar algo
del programa, recargar el PIC y observar
el resultado sobre el circuito de aplicacin.

NOS PREPARAMOS PARA


CARGAR UN PIC
Debemos trabajar con la PC para prepararla a cargar un PIC; el autor pas muchos aos de su vida observando cmo
otros colegas hacan un uso intensivo de
las computadoras PC y l no se animaba
ms que a utilizar su vieja computadora
TEXAS TI99 creando sus propios programas
en BASIC. Hasta que un da se sent frente
a la PC de su hijo en la soledad de su oficina y se anim a encenderla y teclear algunas ordenes (eran los tiempos del DOS y
el mouse era casi un adorno).
Como en una relacin amorosa, el autor fue animndose poco a poco hasta
que un tiempo despus se dio cuenta que
dominaba un dispositivo nuevo que pronto
copara el mundo de los ingenieros en
electrnica. As las cosas, diez aos despus sin ser un super experto en computacin puedo decir que domino suficientemente a mi PC para que sea una invalorable aliada en la ejecucin de mis trabajos.
Tan es as, que mi jornada de trabajo comienza siempre con una especie de ceremonia, el encendido de mis dos Pentium
conectadas en red. Yo me siento a escribir
en la computadora con el nombre de red

KIT
Alberto pero mantengo encendida la
computadora Andrs en donde guardo
mis archivos y realizo el back up de mi trabajo a la espera del dibujante que la utiliza un rato despus. En fin, que mi relacin
amorosa con las PC lleg a tal extremo
que ya no me basta una sola mquina y si
pudiera tendra un verdadero harn.
Desde hace unos aos mi PC me ayuda
an ms, porque forma parte de mi grupo
de produccin cargando los PICs de mis
proyectos. En un futuro mi PC va a sufrir un
cambio de personalidad porque se va a
transformar en un simulador de PICs que
me permitir desarrollar dispositivos con
mucha mayor velocidad para que todos
los lectores tengan proyectos frescos para
armar. El ingeniero Vallejo quiere que nuestra revista tenga muchos y nuevos proyectos para armar y muchos de ellos con PICs
para estar a tono con nuestra nueva poca y me siento honrado porque me eligi
a m para concretar esos proyectos.
El simulador de PICs, junto con un programa que transforma programas en VISUAL BASIC (una modernizacin del viejo
BASIC de la TI99) en programas con el set
de instrucciones del PIC; es el arma de diseo ms moderna que se pueda uno
imaginar. Prcticamente todo el trabajo lo
realiza la PC que interpreta los deseos del

Fig. 7

DE

PROGRAMACIN

DE

PICS

programador realizando el trabajo mas rutinario y dejndole solo el trabajo creativo. La mquina me ayudar a plasmar mis
ideas en programas para el PIC. El programa se probar en forma virtual en un PIC
simulado que permite optimizar el funcionamiento y cuando ya est depurado genera un circuito impreso que se disea solito, sin ayuda humana. Terminado el proyecto, el sistema entrega una transparencia con calidad fotogrfica que apoyada
sobre una placa de circuito impreso virgen
sensibilizada, genera una imagen virtual
que luego se transforma en una imagen
real con un proceso de revelado. Posteriormente el ataque con cido (el conocido percloruro) permite generar un circuito
impreso listo para perforar, armar y probar.
De la idea al dispositivo real solo media un
pequeo intervalo de tiempo gracias a mi
computadora.
Si se anima a entrar en este mundo lo
invito a seguirme.

CARGANDO EL SOFTWARE NOPPP


Ud. debe tener el software NOPPP en su
poder. La forma de obtenerlo depende de
Ud.; si no tiene conexin a Internet puede
comprar el CDROM ESPECIAL 2000 en
nuestras oficinas, solicitarlo
por correo o dirigindose
al Centro Japons de Informacin Electrnica si
vive en Mxico o al Cistec, si reside en Colombia
o a Amexi, si reside en el
Uruguay. Nosotros vamos
a suponer que Ud. tiene
instalado un windows 95
( 98) en su PC y que utiliza habitualmente el explorador de windows para generar directorios y

Todo sobre PICs

69

KIT

DE

PROGRAMACIN

DE

PICS

archivo Noppp.exe. Este


procedimiento (directo
desde el DOS) puede ser
imprescindible en algunas
computadoras muy lentas
pero en la mayora de las
mquinas puede trabajar
en el DOS con una ventaFig. 8
na de windows para voltrasladar archivos. El proceso a seguir paso ver al mismo ms rpidamente. Simplea paso es el siguiente:
mente pique dos veces sobre el archivo
Noppp y el programa se ejecutar.
a) Pique sobre el icono del explorador
de windows. Se extender una pantalla
como la mostrada en la figura 7.
USO DE CARGADOR DE PICS
b) Pique sobre el icono del disco rgido
C (o algn otro disco rgido) para que se
Conecte el cargador de PICs al puerto
marque recuadrado en azul y luego piparalelo de la PC como le indicamos en el
que sobre archivo -> nuevo -> carpeta. El
artculo anterior. Con la fuente desconecrbol principal del directorio C: tendr
tada observe que el PIC no est en el zahora un nuevo subdirectorio o carpeta
calo, si lo est debe retirarlo con la fuente
llamada nueva carpeta. Pique en ella
apagada. Pique dos veces sobre el archidos veces y se habilitar un cursor para
vo Noppp del directorio PIC y aparecer
cambiarle el nombre. Escriba el nombre
una pantalla como la que mostramos en
que desee para el subdirectorio donde va la figura 9.
a guardar todos sus archivos de PICs. El
Esta pantalla inicial nos pregunta en
autor opt por el nombre PIC.
qu puerto est conectada la salida parac) Coloque el CDROM ESPECIAL 2000 lela, y nos d las opciones 1, 2 y 3. En la
en el reproductor de CD y pique sobre el
mayora de las mquinas (salvo que se haicono de disco para abrir la carpeta. Sella predispuesto lo contrario o que existan
leccione la carpeta PROPIC y brala pims de una salida paralelo) siempre se
cando sobre ella. En su interior encontrar usa el puerto 1. As que Ud. debe pulsar la
el archivo que necesita llamado
Noppp del tipo aplicacin. Debe
picar sobre este archivo, arrastrarlo hasta el subdirectorio PIC y soltarlo all. De este modo creamos
un duplicado del Noppp en el
subdirectorio PIC. Ver figura 8.
d) Para abrir el utilitario Noppp
podemos tomar diferentes caminos. Por ejemplo podemos cerrar
el windows, abrir el DOS, cambiar
de directorio hasta llegar al direcFig 9
torio PIC y desde all ejecutar el

70

Todo sobre PICs

KIT

Fig 10

Fig 11

Fig 12

DE

PROGRAMACIN

DE

PICS

tecla numrica 1 para pasar a la siguiente pantalla que podemos observar en la figura 10.
En esta pantalla se confirma que
se est utilizando el puerto 1 y que
este puerto tiene una posicin de
memoria 378H. Adems el programa nos invita a conectar la fuente
pero manteniendo el PIC sin ubicar
en el zcalo. Luego nos indica
apretar la barra espaciadora para
ir a la siguiente pantalla. Ver figura
11.
En esta pantalla el programa nos
indica que slo soporta tres tipos diferentes de PICs y nos invita a optar
por uno de los tres tipos pulsando
las teclas C, F o 3. Tambin se puede hacer una verificacin del funcionamiento del cargador pulsando la tecla T. En este artculo vamos
a suponer que el cargador de PICs
funciona correctamente pero ms
adelante pulsaremos la tecla T para
ver cmo se repara el cargador. En
nuestro caso luego de pulsar la tecla correcta (por ejemplo la C)
aparece una nueva pantalla como
la indicada en la figura 12.
Esta pantalla slo nos indica que
es el momento de insertar el PIC en
el zcalo. Observe que la fuente
est conectada. El autor considera
que es mucho ms seguro desconectar la fuente, colocar el PIC y
volver a conectar la fuente ya que
si se hace caso omiso a la indicacin de la pantalla de la figura 10
en el sentido de conectar la fuente
el software dar una indicacin del
tipo programmer no conected
(programador desconectado) y
abortar la carga. La siguiente
pantalla mostrada en la figura 12
es la ltima de la serie de predispo-

Todo sobre PICs

71

KIT

DE

PROGRAMACIN

DE

PICS

sicin. En esta pantalla podemos elegir la


operacin que deseamos realizar entre
tres seleccionables por las teclas L, S, y E
que significan lo siguiente:
L) Cargar el PIC con un archivo que debe ser del tipo hexadecimal. Este formato
no es el formato que maneja el programador por lo tanto antes de cargar el PIC debemos generar este archivo HEX partiendo
del archivo nemotcnico que gener el
programador.
S) Seleccionar el tipo de PIC. En nuestro
caso el PIC ya fue seleccionado pero podramos necesitar un cambio si debemos
programar ms de un tipo.
E) Borrar un PIC previamente grabado.
Este tipo de PIC no necesita un borrado
previo a la grabacin; pero puede ser necesario borrarlo por razones de seguridad.
V) Verificar el programa cargado en un
PIC. En esta funcin se carga un programa
hexadecimal y el cargador verifica que el
programa almacenado en el PIC sea igual
al hexadecimal.

LOS PROGRAMAS PARA CARGAR PICS


Un programa para PIC viene en diversos
formatos y el lector debe saber cmo pasar de un formato a otro hasta llegar al
definitivo que puede grabarse en el PIC. El
tipo de archivo que se posee es funcin
del punto en que se toma el trabajo. Si solo nos dedicamos a armar el dispositivo
debemos tener un archivo del tipo hexadecimal tal como si fuera un componente
ms del dispositivo. En la lista de materiales
debera decir programa MONGO.HEX para
armar al dispositivo MONGO.
Por lo general el archivo de programa
que tenemos disponible (el que viene con
los artculos de las revistas) tiene una extensin (.asm) que corresponde a la versin assembler (ensamblado), nemotc-

72

Todo sobre PICs

nica o nemnica. Si se volvi loco con


tantos nombres extraos no se preocupe;
estamos para aclararle las dudas: el formato assembler significa el idioma que
usan los programadores; como el cargador de PIC no entiende ese idioma el programa se pasa por una especie de programa traductor llamado llamado MPASM
que adems de la traduccin realiza un
control y permite depurar errores. No se
asuste que no necesita comprar el MPASM
el mismo puede bajarlo de Internet.
Ahora vamos a seguir con el paso a paso con intenciones de instruir a nuestro
rey. Suponemos que Ud. ya tiene armados
los circuitos del secuenciador y del cargador de PICs y que tiene el programa
NOPPP cargado en el subdirectorio PIC de
su computadora. Suponemos adems que
su protoboard o circuito impreso est conectado al puerto serie de la PC y tiene
una fuente de 15 V CC conectada al protoboard.
Por respeto a todos los lectores que saben leer en Ingls, vamos a dar primero
las explicaciones sin traduccin.
Si Ud. no sabe Ingls al final ponemos la
traduccin de las pantallas. Adems las
explicaciones dependen de la extensin
del archivo.

CARGA DEL PIC CON ARCHIVOS .HEX


No necesita tener cargado ningn utilitario ms que el NOPPP en su computadora y por supuesto el archivo del secuenciador llamado secua.hex.
Arranque el NOPPP y realice todas las
operaciones indicadas en el artculo anterior hasta llegar a la pantalla final en donde le piden que indique lo que desea hacer entre las opciones:

KIT

Fig 13

Fig 14

DE

PROGRAMACIN

DE

PICS

los nicos PICs que se pueden cargar en


nuestro cargador de PICs. Otros tipos (incluyendos los PIC de produccin con fusibles de programacin) no pueden ser programados en el NOPPP y requieren otro
software y otro hardware.
Al autor se le present un problema
inexplicable al seleccionar la F. El proceso de carga de memoria terminaba con
un aviso indicando que se presentaba una
falla en una posicin de memoria. La nica solucin posible fue tipear C en lugar
de F a a pesar de que el integrado tena
claramente marcado PIC16F84. Por lo dems todo funcion correctamente por lo
que autor considera que se trataba de un
error de rotulacin. Luego de elegir el PIC,
el programa vuelve a la pantalla inicial
para realizar una nueva operacin.
Nosotros queremos cargar un PIC pero
antes debemos cargar el programa .hex
en el NOPPP. Tipeamos L de load hexadecimal file cuya traduccin exacta es
cargar archivo hexadecimal. Aparecer
una pantalla como la mostrada en la figura 14.
Aqu se debe escribir el nombre del archivo a cargar es decir:
secua.hex.

L) Cargar el PIC con un archivo que debe ser del tipo hexadecimal
S) Seleccionar el tipo de PIC
E) Borrar un PIC previamente grabado
V) Verificar el programa cargado en un
PIC

Note que el programa no da la posibilidad de buscar el archivo en otro directorio que no sea aquel donde se carg el
NOPPP. Es decir que con el mismo procedimiento que empleamos en el segundo artculo y utilizando por ejemplo el buscaTipee S para seleccionar el tipo de PIC
dor de windows se debe trasladar el arque est usando y aparecer una panta- chivo secua.hex desde su lugar de orilla como la de la figura 13.
gen al subdirectorio PIC. A continuacin tiSi no eligi el tipo de PIC con anterioripeando secua.hex (no olvide de tipear la
dad hgalo ahora tipeando S. Cuando
extensin .hex, porque si no lo hace obaparece la pantalla de eleccin del PIC ti- tendr un mensaje de error indicando que
pee F, C o 3 segn use un PIC16F84, un
el archivo pedido no existe) se cargar el
16C84 o un 16C83. Recuerde que stos son programa en el NOPPP y el resultado de la

Todo sobre PICs

73

KIT

DE

PROGRAMACIN

DE

PICS
ponga la fuente y observe los leds. Si todo
sali bien observar que se encienden en
una rpida secuencia una y otra vez. Qudese mirando su obra de arte por un buen
rato. Cualquiera dira que es aburrida, pero estamos seguros que para Ud. que arm un dispositivo con un PIC por primera
vez en su vida, se ver como una obra
maravillosa. Esperamos que en este preciso momento est descorchando el champaa pero si no es as no se preocupe que
lo vamos a ayudar si todo fracas. Consulese recordando que los xitos inmediatos no proveen ninguna enseanza.

Fig 15
carga se observar en una pantalla como
la mostrada en la figura 15.
En esta pantalla se pueden observar algunos detalles del tamao del archivo
.hex desglosado en cantidad de palabras
de programa, de configuracin, de identificacin y de datos. Tambin aparece una
indicacin de que el programa fue cargado completo. Por ltimo se indica apretar
la barra espaciadora para continuar con
lo cual aparece nuevamente la pantalla
inicial.
Ahora s, es el momento de cargar el
PIC eligiendo P (PROGRAM PIC). Se observar un movimiento en la pantalla y
unos segundos despus aparecer un cartel indicando que la carga fue exitosa. Recuerde que el NOPPP ir colocando los
datos en la memoria y luego los ir leyendo; si el ltimo dato se carg correctamente pasar a cargar el siguiente y as
sucesivamente hasta llegar al ltimo.
Posteriormente el programa indicar
que se debe cortar la fuente y luego sacar
el PIC del zcalo. Cumpla con las indicaciones y coloque el PIC programado en el
zcalo del secuenciador. Y por ltimo re-

74

Todo sobre PICs

POSIBLES PROBLEMAS QUE


PUEDEN PRESENTARSE
Veremos en la prxima edicin, que los
problemas que se pueden presentar al
cargar el PIC pueden ser de software, por
ejemplo cuando el archivo que tenemos
disponible no es el que entiende el cargador de PICs, o de hardware, cuando nos
mandamos una macana y colocamos
un componente en forma indebida. En
efecto los nicos archivos que sirven directamente son los que tienen extensin .HEX.
si su archivo tiene otra extensin deber
convertirlo primero con el programa
MPAMS que ya le hicimos guardar.
En cuanto a los problemas de hardware
del cargador: quin nos asegura que no
hayamos cometido un error de armado y
pusimos 10k donde lo indicado es 1k.
Si se tratara de una radio o de un amplificador seguramente Ud. sabra como encontrar el componente equivocado o faltante; pero con estos bichos raros digitales
la cosa no siempre queda clara. No se
preocupe; si an no pudo brindar en este
artculo lo vamos a ayudar para que repare nuestro querido engendro cargador de
PIC.

KIT

DE

PROGRAMACIN

DE

PICS

ir a inicio (abajo a la izquierda de la pantalla principal de Windows) como si fuera a


apagar la mquina, pero en lugar de apagarla debe ir a la seleccin reiniciar en el
modo DOS.
Una vez que arranc el NOPPP. Va a tener la pantalla inicial en donde le indican
que seleccione un puerto para trabajar. Seleccione el puerto adecuado (por lo general el 1 si Ud. usa el mismo conector que su
impresora para conectar el cargador). La
siguiente pantalla le va indicar que conecte la fuente de potencia sin colocar el PIC
en el zcalo. Haga lo que le indica la panFigura 16
talla. La siguiente pantalla depende de
que el dispositivo cargador est o no coSeguramente existen cargadores munectado en el puerto paralelo. Si no est
cho ms modernos y verstiles que el
NOPPP, pero ste tiene una ventaja funda- conectado o con algunas PC en particular
va a aparecer una pantalla como la indimental: se autodiagnostica es decir que
cada en la figura 16.
nos va arrimando informacin para proEn esta pantalla le indican que el disposibarlo paso a paso y reparar lo que est
tivo
est desconectado (NOPP hardware
mal. El modo de entregar esta informacin
es a travs de la pantalla del monitor que not found). Conctelo. Si est conectado
le ir indicando qu mediciones hacer so- significa que su PC tiene un puerto paralelo
bre la plaqueta del cargador de PICs. Por de ida solamente (enva seales a la impresora pero no recibe todas las seales de resupuesto le vamos a pedir un sofisticado
torno desde la misma). En este caso ignore
instrumental de prueba consistente en un
la pantalla que le va a aparecer siempre.
simple tster digital de bajo precio.
Puede tambin aparecer esta pantalla si
est mal armado el cargador o el cable de
conexin. Ignore la indicacin ya que en el
AUTODIAGNOSTICO DEL NOPPP
proceso posterior aparecer el modo de
Relea el modo de entrar al programa
NOPPP e ingrese. Recuerde que lo debe
hacer desde el DOS. En principio tambin lo
puede hacer desde una ventana del Windows pero con mquinas lentas puede tener problemas debidos a que la mquina
regula el tiempo de carga. Pruebe trabajar
en una ventana y si tiene problemas salga
directamente de Windows e ingrese a DOS.
Para los que no entendieron la frase anterior va la siguiente explicacin:
Las PC modernas arrancan directamenFigura 17
te en Windows. Para trabajar en DOS debe

Todo sobre PICs

75

KIT

DE

PROGRAMACIN

DE

PICS

reparar la falla. Si desea salir del programa


debe pulsar las teclas Ctrl y C al mismo
tiempo. Para continuar, ignorando el mensaje, pulse la barra espaciadora.
La siguiente pantalla lo invita a elegir un
determinado tipo de PIC o (en la parte inferior de la pantalla) lo invitan a realizar el
TEST de prueba del PIC. Acepte la propuesta de realizar el auto diagnstico pulsando
T. Si recibe una pantalla como la mostrada en la figura 17 significa que el cargador
no recibe tensin de fuente a pesar de que
de entrada le indicamos encender la fuente. Para evitar futuros problemas lo invitamos a agregarle al cargador un simple LED
rojo con un resistor de 2K2 en serie para
usarlo como indicador piloto de fuente encendida. Conctelo sobre la tensin de entrada de 14V. Tambin sera conveniente
agregar un LED verde con un resistor de
1k en serie para medir la tensin de 5V.
De este modo de un rpido vistazo Ud. sabe que su dispositivo est alimentado correctamente y se ahorra problemas porque
un corte en la tensin de fuente ms adelante, puede causar un mensaje de error al
cargar la primer posicin de memoria del
dispositivo. En una palabra que el programa no puede determinar si la fuente se cort despus de realizar la prueba de la pan-

Figura 18

76

Todo sobre PICs

talla 16 e intenta cargar la memoria sin


fuente. Como no lo logra se equivoca,
diagnostica que no se puede cargar la primer posicin de memoria y detiene la carga. Con el agregado de los dos LEDs Ud.
verificar las fuentes mirando el LED rojo
para la fuente de programacin de 14V y
mirando el LED verde para la fuente del
PIC. Al mismo tiempo los LEDs lo ayudarn a
proteger sus PICs evitando que los conecte
o desconecte con la fuente activa.
Si su fuente est activa aparecer la primer pantalla de auto diagnstico que se
observa en la figura 18.
La pantalla lo invita a conectar el terminal negativo del tster a masa (pata 5 del
PIC) y a medir las patas 4, 12 y 13 que deben estar a un potencial bajo menor a .8V
y la pata 14 de fuente que debe estar a un
potencial comprendido entre 4,75V y 5,25
V. Al mismo tiempo la unin de los diodos
D1 y D2 con el resistor R1 debe estar a potencial bajo menor a 0,8 V. Tenga en cuenta que todas estas mediciones deben realizarse sin colocar el PIC en el zcalo. Es decir que el diagnstico se hace slo sobre los
componentes perifricos para evitar que un
PIC daado altere la rutina de reparacin.
En esta prueba el cable rojo de conmutacin de 13V est a potencial alto y
por lo tanto Q1 tendr su juntura de base
colector conduciendo a pleno. En estas
condiciones el colector slo puede tener
algunos cientos de mV con respecto a masa y el PIC estar en condicin de lectura
de memoria. El cable negro tambin estar
a potencial bajo con lo que asegura que el
cable naranja de salida de datos tenga un
potencial correspondiente a la barrera de
D1 (unos 600mV). En esta condicin y con
los cables marrn, naranja y amarillo a circuito abierto desde el puerto paralelo de la
PC, se miden las tensiones de las patas 12 y
13 para tratar de detectar algn cortocircuito a un potencial alto. Es evidente que

KIT

Figura 19

la tensin de dichas patas debe ser menor


a 800mV. Para realizar una medicin vlida
es conveniente medir la fuente del PIC para estar seguro que el mismo est alimentado con una tensin adecuada de 5V con
una tolerancia de 250mV hacia ambas lados.
A continuacin le damos algunas indicaciones de cmo resolver los diferentes problemas que se le pueden presentar. Si la
tensin de la pata 13 le da mayor a 800mV
es porque seguramente el cable negro no
est a potencial de masa y D1 no est conduciendo polarizado por R1. Probablemente est cortado el cable negro, o est mal
conectado a la pata 17 del conector J1.
Tambin puede ocurrir que el cable est a
potencial de masa pero el diodo D1 est
abierto o invertido. Para sacar conclusiones
ms adecuadas verifique la tensin de la
unin de los diodos D1 y D2.
Si Ud. tiene una tensin de la pata 4
(tensin de grabacin) alta (cercana a los
13V) probablemente tendr cortado el cable rojo o mal conectada la pata 2 del conector J1. Tambin puede ocurrir que el
transistor Q1 est abierto o desbeteado o

DE

PROGRAMACIN

DE

PICS

no sea de la polaridad adecuada (un 558


en lugar de un 548).
Luego si tiene tensiones altas en las patas 12 y 13 deber buscar cortocircuitos en
las patas del zcalo del PIC o en el circuito
impreso o en el conector J1. Si las tensiones
medidas son correctas, presione la barra
espaciadora para pasar al test 2. Aparecer una pantalla como la indicada en la figura 19.
Se medirn tensiones con respecto a
masa (pata 5) de las patas 4, 12 y 13 pero
esta vez con el transistor Q1 cortado y con
potenciales altos de 5V, desde la PC; en los
cables amarillo y marrn.
Las tensiones medidas en las patas 12 y
13 provienen de la PC y dependen de su
fuente regulada interna y del puerto de salida paralelo. Lo importante en esta prueba
es que la tensin supere los 4 V para que el
PIC interprete que hay un estado alto en su
entrada de DATOS y CLOCK. En el test 1 se
verific el estado bajo de estas patas y en
este se verifica el estado alto completando
la prueba de las patas 12 y 13. La tensin
medida en la pata 4 debe corresponder
con la tensin de fuente de la fuente de
grabacin es decir que debe tener un valor
comprendido entre 12 y 14 V aproximadamente, ya que el transistor Q1 no debe
conducir.
La unin de los diodos D1 y D2 (el cable
naranja de salida de datos que va a la pata 11 de J1) deber mantenerse a un potencial inferior a los 800 mV asegurndonos
que el diodo D2 no est en cortocircuito o
invertido. Observe que en este test el diodo
queda polarizado en inversa.
Si la tensin de la pata 4 est baja o no
existe, probablemente el resistor R5 de 2k2
est cortado, mal conectado o con un valor equivocado; tambin puede ocurrir que
el transistor tenga un cortocircuito entre el
emisor y el colector (puede desconectarlo
del circuito para verificar que suba la ten-

Todo sobre PICs

77

KIT

DE

PROGRAMACIN

DE

PICS

desde los 5V; esa corriente circula por D2 y


por el resitor agregado de 470 a masa. La
aplicacin de las leyes de Kirchoff y de
Ohms. Permiten determinar que la tensin
sobre la pata 13 es debida a dos contribuciones de corriente. Una de ellas es igual a
la tensin de fuente menos la barrera del
diodo D2 ( 5-0,6 = 4,4V) y que esa tensin
se aplica a la suma en serie de los resistores
(5,6k + 0,47k = 5,07k). La corriente se
establece entonces en un valor de
4,4/5,07k = 0,88mA es decir algo menos
Figura 20
de 1 mA que circulando por un resitor de
sin de fuente). Por supuesto que lo primero 470 producirn una cada de tensin de
que debe verificar es que la fuente de 13V unos 400mV si no consideramos la otra contenga la tensin correcta. Si la pata 12 no
tribucin. El resitor R2 slo generara una cotienen una tensin superior a 4V, probable- rriente que se establece por la siguiente frmente el cable marrn est cortado o el
mula: 2,8/(1500+470) = 1,42mA. Si no se geresistor R3 est equivocado de valor o mal
neran estas corrientes probablemente el
conectado. Si la tensin en la pata 13 es
valor del resistor agregado es incorrecto o
menor a 4V puede estar equivocado o
es incorrecto el resistor R1 de 5k6 o el R2 de
abierto el resistor R2 o el diodo D2 puede
1,5k. Debemos suponer que los diodos D1
estar invertido o en cortocircuito. Si las ten- y D2 que podran afectar esta medicin, ya
siones son correctas presione la barra espa- fueron verificados anteriormente y estn en
ciadora para pasar al test 3 en donde se si- buenas condiciones. En la mquina del aumular un estado bajo saliendo de la pata tor el nivel de 0,7V autorizado como mxide data del PIC. La pantalla que aparece
mo en la pata 13 al cargarla con 470 se
se puede observar en la figura 20.
ve superado en uno 100mV pero a pesar
La accin del PIC para sacar datos se si- de eso el cargador funciona correctamenmula conectado un resistor de 470 entre
te. Si el lector desea obtener el valor solicilas patas 13 (RB7/DATA) y la pata 5 (masa). tado de 0,7V se puede modificar R2 llevnSe medir con un tster observando que la
tensin de la pata 13 que estaba con una
tensin superior a 4 V pase a un estado bajo inferior a 0,7V al apoyar el resistor.
Si la tensin es superior a 0,7V debemos
analizar el circuito que se forma. El resistor
R2 aporta corriente porque el cable amarillo est a potencial alto desde la PC (aqu
todo depende del resitor en serie que tiene
la pata de salida de la PC, en la mquina
del autor la tensin crece hasta 2,8V cuando se carga la pata 13 con el resistor). El
circuito activo est entonces formado por
Figura 21
dos resistores R2 y R1 (que trae corriente

78

Todo sobre PICs

KIT
dola a un valor de 2k2 (volvemos a aclarar
que todo depende de su PC).
Si las mediciones son correctas pase al
test 4. Apretando la barra espaciadora.
aparece una pantalla como la indicada en
la figura 21.
Es este test se pretende establecer el estado bajo de la salida de datos cuando se
escribe un dato alto por el cable amarillo.
Esto significa que no debe haber retorno directo por el cable naranja cuando se escribe debido a que el diodo D1 est polarizado con su ctodo a masa (cable negro a
masa) para evitar que la tensin sobre l
supere los 600mV.
Nota: esta tensin puede ser algo elevada para algunos puertos de PC que podran llegar a interpretar este estado bajo
como si fuera alto. En este caso aconsejamos cambiar el diodo D2 y el D1 por diodos
de germanio 1N34 o similares.
Si la tensin es la correcta pulse la barra
espaciadora para pasar a la ltima pantalla de test (nmero 5).
Esta ltima pantalla prueba al dispositivo
como generador de un dato alto por el cable naranja. Como el dispositivo se probar
como lector de memoria,
el cable negro se deja a
circuito abierto por el lado de la PC, se ubicar
un dato alto sobre la pata 13 levantando el cable amarillo y se medir
la salida por el cable naranja esperando que sea
superior a 4V.
Si todas las dems
Figura 23
pruebas pasaron correctamente se puede asegurar que ya no hay errores de armado y que los
diodos y resistores no estn alterados. Esta prueba es solo una confirma-

DE

PROGRAMACIN

DE

PICS

cin de que no existan cortocircuitos entre


las patas del zcalo de PIC.
En las pruebas desde la 1 a la 5 se utilizaron estados altos o bajos de los cables que
se resumen en la tabla de la figura 22.
Como un dato extra que puede resultar
interesante cuando se tiene que reparar el
dispositivo agregamos una tabla con las
tensiones en las entradas cuando se conecta un PIC en buenas condiciones y se
pasa por los diferentes test. Ver figura 23.
Con todos los datos aportados suponemos que el lector ya debe haber reparado
su cargador de PICs en caso de falla y a
esta altura debe estar utilizando el champaa.
Si no es as no se preocupe porque lo vamos a seguir ayudando si se siguen presentando problemas con la carga.

COMPLETANDO EL
CIRCUITO DEL CARGADOR
Al circuito bsico del artculo 2 ya le
agregamos dos leds piloto (uno rojo y otro
verde) para que el operador pueda saber

Figura 22

Todo sobre PICs

79

KIT

DE

PROGRAMACIN

DE

PICS

Figura 24

si las fuentes estn activas. Ahora le vamos


a proponer que termine de completar el
circuito con el agregado de otros dos leds
que le permiten saber que los datos ingresan (escritura) o que salen del PIC (lectura).
Estos leds deberan conectarse sobre los
cables amarillo y naranja pero no se pueden conectar directamente. Se aconseja
utilizar transistores separadores para no cargar la pata de I/O (ENTRADA/SALIDA) del
PIC. Probablemente con todo esto el nombre de NOPPP que tiene nuestro cargador
de PICs ha quedado desvirtuado porque
ya tiene varios componentes ms. Pero
realmente cada agregado tiene una clara
razn de ser y por otro lado son sumamente
econmicos. Con todos los cambios armamos un nuevo circuito que le mostramos en
la figura 24.

era demasiado tarde. Los dispositivos digitales son terribles bocones que generan
mensajes de error y de precaucin al menor apartamiento de la perfeccin.
As las cosas el mundo digital parece
maravilloso para aquel que recin comienza a transitarlo. Uno piensa: si me
equivoco el sistema me avisa, as que no
vale la pena pensar; vale ms emplear el
mtodo de prueba y error. Esto no es as
de ningn modo; pensar as es un error
grosero, porque los mensajes de error rara
vez son totalmente claros. Al ser genricos,
suelen dejarnos totalmente en ayunas con
respecto a lo que estaba sucediendo en
la realidad.
Por otro lado los mensajes de error del
NOPPP estn en Ingls Americano y no podemos pretender que todos los lectores los
entiendan con claridad.
En una palabra que los mensajes subliERRORES AL CARGAR UN PIC
minales que nos suele enviar un dispositivo
para PC cualquiera, deben ser forzosaLos viejos dispositivos analgicos eran si- mente interpretados y no ser tomados al
gilosos. Cometan sus errores en absoluto
pie de la letra. Parirs con dolor dicen
silencio de modo que muchas veces no
las sagradas escrituras y si Ud. est leyennos dbamos cuenta del error hasta que
do este captulo con ansiedad, es porque

80

Todo sobre PICs

KIT

Figura 25

ya hace mucho tiempo que intenta hacer


encender las luces de nuestro secuenciador; solo que por una razn u otra no lo
pudo lograr aun. No desespere, con este
artculo seguro que brinda con champaa. Adems un buen estacionamiento es
esencial para todo buen vino espumante.
En lo que sigue le vamos a mostrar como seran las pantallas correctas cuando
un PIC se carg exitosamente y cmo son
cuando la carga se produjo con dificultades. Por supuesto que estas pantallas son
generadas por el programa de carga del
PIC (en nuestro caso el NOPPP) y variarn
si Ud. usa otro programa.

MENSAJE DE ERROR EN POSICION DE


MEMORIA 0000
Si al intentar la carga se produce un
mensaje de error como el que mostramos
en la figura 25, no se quede pensando en
que pequeo componente del sistema ha
fallado. En efecto, no fall un componente pequeo sino que se trata de una falla
mucho ms general.
A esto se refera el autor cuando hablaba de mensajes genricos y los tildaba de
subliminales. Literalmente el NOPPP nos informa que al intentar cargar la posicin de
memoria 0000 se produjo un error porque
la prueba de esa posicin despus de la

DE

PROGRAMACIN

DE

PICS

carga indic que la memoria tiene cargado el nmero hexadecimal 0000, cuando
en realidad debera tener cargado el nmero hexadecimal 0186.
Recuerde que el PIC es un bicho muy
ordenado. El programa de trabajo se carga en su memoria dato tras dato. Primero
se llena la posicin de memoria 0000 y a
continuacin se verifica la carga. Si el nmero cargado no corresponde con el del
programa, se detiene la carga y se presenta el mensaje de error nmero 1.
Aqu tenemos que realizar una interpretacin de los hechos. Si la posicin de memoria 0000 (la primera que se aborda)
quedara cargada con cualquier otro nmero, podramos suponer que existe alguna rara falla en el circuito del cargador.
Pero el cero hexadecimal nos est indicando ausencia absoluta de carga y eso
solo puede significar que se apag la
fuente de 13,5V o por lo menos la de 5V.
Por supuesto que el primer paso que dimos (antes aun de colocar el PIC) fue controlar la fuente.
Pero recuerde que algunas PC no podan efectuar esa prueba y adems la
fuente se puede haber desconectado
despus de haber colocado el PIC o es
posible que la fuente no admita ni la mnima carga que le impone el PIC. Esta condicin puede ser obviada si Ud. observa
los diodos piloto de 5V y de 13,5V durante
la carga.

MENSAJE DE ERROR POR MALA


SELECCIN DEL TIPO DE PIC
El NOPPP puede predisponerse para
grabar tres tipos de PIC que son el
PIC16C84, el PIC16F84 y el PIC16C83. Si Ud.
se equivoca al elegir el dispositivo se produce un mensaje de error como el mostrado en la figura 26.

Todo sobre PICs

81

KIT

DE

PROGRAMACIN

DE

PICS

Figura 26

Figura 27

La primer parte del mensaje de error


nos indica que se cometi un error en la
palabra de configuracin del programa y
que sta no corresponde con el PIC elegido. Debemos interpretar este mensaje del
siguiente modo: el programa para un
PIC16C84 o un PIC16F84 es el mismo, slo
cambian los tiempos que se mantiene presente cada bit del programa. Como el
cargador no posee inteligencia para determinar que tipo de PIC se va a utilizar,
antes del programa se carga una palabra
de configuracin diferente segn el PIC
utilizado. Esta palabra puede ser cambiada adecundola al PIC que Ud. va a cargar. La modificacin del programa la veremos en otra parte de este mismo artculo.
Ahora bien, el mensaje depende del tipo de error cometido. El de la figura 26
ocurre por ejemplo si la palabra de predisposicin indica un PIC16F84 y Ud. intent

82

Todo sobre PICs

programar un PIC16C84. Si Ud. predispuso


el cargador para un PIC16C83 y coloc un
PIC16C84 se produce otro mensaje de
error relacionado con el hecho de que
ambos PIC tienen el mismo tipo de memoria pero diferente capacidad. El 84 posee
una capacidad de 1Kb y el 83 de 0,5Kb.
ver figura 27.
El mensaje se divide en tres sectores. En
el primero se indica que la memoria de
programa fue grabada exitosamente. En
la segunda parte se observa que la identificacin de memoria se grab exitosamente. En la tercer parte se lee que al grabar
la posicin de memoria 2007 se produjo un
error ya que debera haberse grabado el
hexadecimal 0013 pero se grab el 3FF3.
Este ltimo mensaje de error fue presentado por el programa cuando el autor intent cargar varios PICs marcados como
PIC16F84 predisponiendo correctamente
al NOPPP. Suponemos que el problema se
debe a PIC defectuosos ingresados en
nuestro mercado o simplemente mal marcados. Tambin puede ocurrir que la carga ms rpida no sea admitida por nuestro cargador (por ejemplo por tener cables de conexin demasiado largos). En fin
que el autor seleccion la C en lugar de
la F y todo se arregl.

LA PANTALLA QUE INDICA


UNA CARGA EXITOSA
La pantalla que Ud. espera ansiosamente se puede observar en la figura 28 y nos
indica que el proceso de carga se produjo
exitosamente. Ver figura 28.
El mensaje se divide en tres partes. Las
dos primeras son idnticas a lo indicado
en el punto anterior. La ltima parte nos indica que la carga de la memoria de programa se complet exitosamente. Al final
se indica que para utilizar el PIC cargado

KIT

Figura 28

Figura 29

DE

PROGRAMACIN

DE

PICS

en un proceso de produccin se debe


comprobar su funcionamiento correcto
con la mnima y mxima tensin de fuente
VCC.
La comprobacin se realiza pulsando la
barra espaciadora y eligiendo luego la letra V de verificacin. Si Ud. tiene cargado el programa con el cual se grab el
PIC se producir una pantalla como la indicada en la figura 29 para indicar que la
verificacin fue exitosa.
Ahora si Ud. va a usar el PIC que acaba
de cargar en un equipo cuya confiabilidad debe ser muy grande debe volver a
realizar este proceso de verificacin llevando la tensin de VCC a un valor de
4,75V primero y de 5,25 V despus. Mas
aun, le aconsejamos que cargue el PIC y
lo deje inactivo por lo menos por una semana y luego lo verifique. Para nuestros fines exclusivamente didcticos esta verificacin no es necesaria.
La ltima posibilidad que le brinda el
NOPPP es borrar un PIC y se puede realizar
seleccionando la letra E (de erase que
significa borrado). Los PIC del tipo 16C84 y
16F84 no necesitan ser borrados antes de
programarlos. Ellos se borran a medida
que se programan pero sin embargo en
algn momento Ud. puede necesitar borrar un PIC para conservar un programa en
secreto. En este caso puede borrar el PIC
usando la letra S y se encontrar con
una pantalla como la indicada en la figura 30.

EL ENSAMBLADOR DE PIC

Figura 30

Ud. no necesita una gran cantidad de


programas para trabajar con el PIC. Para
empezar le basta con el NOPPP y con el
MPASM; dos programas sencillitos, tan baratos como que son gratuitos y tan livianos
que entran en cualquier rgido (en la jerga

Todo sobre PICs

83

KIT

DE

PROGRAMACIN

DE

PICS

informtica que utilizamos los gures eso


significan que son programas tan pequeos que no ocupan lugar en el disco rgido
de su PC).
Al NOPPP ya lo conocemos de cabo a
rabo y sabemos que es el software que
hace funcionar a nuestro cargador de
PICs. Al MPASM lo vamos a conocer ya
mismo.
Qu idioma entiende el PIC?. Entiende
un solo idioma, el idioma binario de unos y
ceros que le ensearon sus padres en Microchip. El PIC maneja un idioma con un
total de 36 palabras (o sentencias) de 14
bits. Los primeros 6 bits indican el tipo de
operacin a realizar y los ltimos 8 las variables (nmeros) involucradas en la operacin. Parece mentira que con tan pocas
palabras se pueda hacer tanto; el autor
considera que sera interesante regalarle
un PIC a cada poltico conocido para ver
si se le puede contagiar algo de efectividad (lo ms probable es que se arruinen
los PICs).
Por ejemplo una sentencia completa
utilizada para rotar los bits de una palabra
sera:
00110110001011

gramar recordando estas 36 sentencias en


cdigo PIC (es decir escribiendo los unos y
ceros). Pero tambin se imagina que en la
era de la informtica seguramente es muy
fcil hacer un programa para PC que genere esos unos y ceros invocndolos con
una palabra clave ms sencilla. En la jerga
esto se conoce como un lenguaje nemnico o nemotcnico. Cada una de esas 36
sentencias con forma de unos y ceros tiene un apodo ms casero en idioma nemnico; por ejemplo la rotacin se escribe
RLF que es mucho ms fcil de recordar.
Ahora tenemos una solucin: escribir el
programa del PIC en cdigo nemnico
pero vamos a necesitar un programa traductor que tome el nemnico y genere el
cdigo de unos y ceros que entiende el
PIC. Este programa se llama genricamente ensamblador (assembler en Ingls) y en
el caso que nos ocupa se llama especficamente MPASM. Se acuerda que yo le hice guardar ese archivo en el directorio PIC
de su mquina, ahora lleg el momento
de usarlo.
EL GENERADOR DE BARRAS DE GRISES

Esta captulo est basado en un relato


verdico de las vicisitudes sufridas por el
(los ltimos 8 dgitos dependen de la va- autor (un viejo ingeniero analgico) en su
riable considerada)
intento de aprender a utilizar y programar
los PICs. Los hechos ocurrieron as: en uno
Si bien el PIC solo conoce el cdigo bi- de mis viajes por Internet me top con una
nario, el programa del cargador (en nues- pgina en donde se ofrecan gratuitamentro caso el NOPPP) entiende tambin el
te la informacin para fabricar dispositivos
cdigo hexadecimal (el cdigo hexadeci- que utilizaban un PIC. Cumpliendo con el
mal se genera al utilizar la numeracin en viejo adagio si es gratis llevalo, que tirarlo
base 16 muy utilizada en electrnica por
a la basura tambin es gratis, baj un lisser el resultado de 2 al cubo) que es algo tado de dispositivos del cual me interes
ms simple de escribir. Ud. puede conside- un generador de barras de grises para TV
rar que el programa NOPPP traduce el c- de norma N.
digo hexadecimal en cdigo binario o cEl autor indicaba un diagrama de cirdigo fuente del PIC.
cuito tentativo y lo ms importante daba
Se imagina el esfuerzo que significa pro- el programa completo del dispositivo. Lo

84

Todo sobre PICs

KIT

DE

PROGRAMACIN

DE

PICS

casi en la categora de gures de los


PICs (la palabra gur significa viejo brujo
y se usa para esas personas que se las saben todas en una dada profesin). La primer frase indica: precaucin, el programa no contiene la palabra de configuracin; la segunda frase indica que en consecuencia el PIC se predispone en una
configuracin tpica predeterminada que
se enumera en las 4 frases siguientes:

Figura 31

* Oscilador a RC
* Temporizador tipo perro guardin desconectado
* Temporizador de reset de arranque
conectado
* Protegido contra la lectura

La ltima frase indica que si se desea


otra predisposicin se debe indicar en el
ensamblador.
Toda esta lata para iniciados puede ser
traducida as: el PIC puede funcionar con
varios componentes de clock; puede ser a
RC, a cristal de alta frecuencia o a cristal
de baja frecuencia. De todas esta posibilidades nuestro cargador de PIC predispone al mismo para que funcione como RC.
En el circuito del generador de barras se
Figura 32
puede observar que el clock es a cristal
de alta frecuencia (4MHz). Esto significa
primero que observ es que el programa
que debemos modificar la predisposicin
estaba en cdigo hexadecimal y en nemnico. As las cosas, tom el archivo he- por defecto del cargador y eso se hace
xadecimal del generador de barras llama- modificando el programa. En realidad se
do PICDREAM (traducido significa algo as debe agregar al programa una palabra
como el PIC de los sueos) y lo cargu en llamada de predisposicin.
Ya hablamos de las otras predisposicioel NOPPP para ver qu pasaba. El resultanes. El perro guardin es un sistema que
do se puede observar en la figura 31.
detecta las clsicas colgadas de los miMuy bien me dije, loading complete
es un mensaje muy prometedor. Pulsemos cros y lo resetea. El temporizador de arranla barra espaciadora para pasar a la pr- que es un reset automtico interno y la
xima pantalla. La siguiente pantalla no tan proteccin contra la lectura evita que un
extrao pueda acceder a nuestro prograprometedora se puede observar en la fima copindolo del PIC.
gura 32.
Nuestro problema es el oscilador de
Este es un mensaje para viejos iniciados

Todo sobre PICs

85

KIT

DE

PROGRAMACIN

DE

PICS

que si se usa un
editor de palabras para leerlo
debe ser predispuesto para texto puro. No se
asuste con tanto
palabrero; si no
entendi vamos
a decirle cmo
abrir un archivo
.asm con el
WORD para que
le sirva de ejemplo.
Abra el WORD,
luego pique en
archivo, pique en
abrir y seleccione
el directorio donde puso los archivo .asm. Si sigui
al pie de la letra
Figura 33
mis instrucciones
ser el subdirecclock, las otras predisposiciones son las co- torio PIC. Predisponga la ventana de obrrectas y no necesitan ser cambiadas. En
servacin de archivos para todos los arun caso como ste se dice que hay que
chivos. Seleccione el archivo del generaabrir el programa y cambiar o agregar
dor de barra de grises picdream.asm y piuna correccin.
que en abrir. Se abrir un archivo que en
la primer ventanita de arriba a la derecha
de la pantalla dice: texto sin forma. Es deCOMO SE MODIFICA UN ARCHIVO
cir que el archivo que abrimos ya predisPARA UN PIC
pone automticamente al WORD. Si no
ocurriera as, puede desplegar las opcioEl archivo a modificar debe tener una
nes de la ventanita y optar por texto sin
terminacin adecuada para que pueda
forma.
ser abierto por el MPAMS la nica extenLa bendita palabra de predisposicin
sin que sirve es la .asm. Por suerte el autor se ubica luego del encabezado debajo
del proyecto nos ofrece el archivo .asm
de TITLE PICDREAM y LIST PIC16C84. All
que debe ser abierto por ejemplo con un
donde en el programa original no existe
editor de texto del tipo del EDIT del DOS.
ninguna palabra de predisposicin nosoEn efecto el archivo nemnico del PIC es
tros debemos agregar lo indicado en la fitexto puro (sin salto de rengln ni de pgi- gura 33.
na ni ninguna otra orden oculta) es decir
Observe que se agrega la palabra

86

Todo sobre PICs

KIT

DE

PROGRAMACIN

DE

PICS

do all pulse reiteradamente ENTER y comenzarn a aparecer


todos los PIC existentes; detngase en el 16C84. Observe en la
parte inferior de la pantalla; all
estn indicadas las diferentes
opciones. Entre ellas nos interesa la opcin ASEMBLE que nos
permitir generar diferentes tipos de archivos y sobre todo el
buscado .HEX que servir para cargar el PIC.
Siempre se generan los arFigura 34
chivos de salida?. No, solo se
generan si no existe ningn error
CONFIG precedida por dos guiones largos en el archivo .asm. En efecto este archiy un 15H que indica la predisposicin para vo solo puede contener algunas de las 36
cristal de alta frecuencia. La predisposisentencias reconocidas por MICROCHIP sin
cin normal para oscilador RC es 17H.
ningn error de posicin de las variables.
Ahora estamos en condiciones de car- Es decir que el archivo debe ser perfecto
gar el PIC. Solo que tenemos un archivo
desde todo punto de vista. No vamos a
.asm y necesitamos un .hex. Los archivos
agregar nada mas con respecto a la de.hex salen del MPASM as que lo vamos a
puracin de errores porque eso corresponabrir desde el DOS o desde una ventana
de a un curso de programacin; solo que
del WINDOWS. Primero se debe ubicar so- el archivo con extensin .lst y .err son arbre el directorio donde est cargado el
chivos de texto puro que contienen menMPASM y sobre el PROMP del DOS (en len- sajes de error. Esos mensajes de error se
guaje vulgar esto quiere decir sobre el sim- aclaran en el archivo MPASM.TXT.
bolito de mayor que titilante) escribir
MPASM y pulsar ENTER. Aparecer una
pantalla como la indicada en la figura 34.
ARMADO DEL GENERADOR DE BARRAS
Esta pantalla nos est invitando a colocar el archivo que se debe abrir. SimpleCuando el autor vi el circuito del gemente pulse ENTER y se abrir una ventana nerador de barras con PIC en una pgina
con todos los archivos .asm existentes en de Internet pens en lo que haba avanzala ventana donde est ubicado el MPASM. do la electrnica, desde la poca en que
Recuerde que si el archivo que Ud. busca trabajaba en el laboratorio de Tonomac.
est en otro subdirectorio o no tiene termi- En esa empresa se diseaba el instrumennacin .asm no va a aparecer en la
tal de produccin y entre todo lo necesaventana. Use el buscador de WINDOWS
rio para probar los TVs se haba diseado
para trasladar el archivo o agregarle la
un generador de cuadros de prueba con
terminacin adecuada.
imagen de retcula para ajustar la linealiSeleccionado el archivo, debe usar las
dad de los televisores de B y N. Como el
teclas de flecha hacia abajo para ubicar- dispositivo lo haba diseado un ingeniero
se en el cuadradito de tipo de PIC. Situallamado Frimer, lo bautizamos como fri-

Todo sobre PICs

87

KIT

DE

PROGRAMACIN

DE

PICS

merscopio y era un monstruo que posea


como unas 20 plaquetas enchufables que
contenan flip flops realizados con transistores bipolares (si mal no recuerdo en total
tena unos 200 transistores). Esto no ocurri
hace medio siglo, recin pas hace un
cuarto.
Le vamos a presentar un circuito con un
PIC, cinco resistores, un cristal y dos capacitores. Simple, o mejor dicho muy simple
de construir. Pero como es que el PIC genera el video para realizar una imagen de
prueba mucho mas compleja que la del
frimerscopio (ya que posee escala de grises) un sector en donde se puede escribir
el nombre del armador del proyecto y que
inclusive tiene un reloj en pantalla. Todo
ello con estabilidad de cristal. Simplemente que todo esto se debe a que la complejidad se traslad al programa del PIC.
En efecto, el programa tiene unas treinta
pginas bastante elaboradas. Como siempre, un proyecto nunca empieza desde
cero; del mismo modo un programa de
computacin siempre es una modificacin
o una seleccin de rutinas empleadas en
otros programas.
Por ejemplo la generacin de las seales de sincronismo compuesto para la norma N de TV, con un cristal de 4MHz, fue
resuelta ya hace bastante tiempo y empleada por el autor para realizar un mejorador de video de inmejorables prestaciones aunque un tanto complejo. El programa del generador de barras de grises, es
una modificacin de esos algoritmos. El
sector reservado para agregar un texto sobre la pantalla por el mtodo del rolido
(despus le explicamos de que se trata) es
algo desarrollado para matrices de leds y
modificado para el sistema de barrido de
TV y el reloj en pantalla es algo similar. En
sntesis que el programa no tiene nada de
original, sin querer restarle mritos al autor,
que realiz una excelente tarea de recopi-

88

Todo sobre PICs

lacin y adaptacin. Muchos lectores me


preguntan como hacer para aprender a
programar; porque consideran que eso es
lo nico importarte para investigar con referencia a los PICs. El autor considera que
la investigacin del hardware de los PICs
es tambin sumamente importante y no
debe despreciarse de modo alguno. En
cuanto al diseo de los programas, ese es
otro cantar. No se pueden disear programas complejos sin la necesaria ayuda de
simuladores de PICs y de ensambladores
de VISUAL BASIC y de C++ (dos lenguajes
de computacin muy potentes) y esos dispositivos no son baratos. En esta obra lo introducimos en el mundo de los PICs y probablemente le indiquemos algunas tcnicas sencillas de programacin; pero el diseo de programas para dispositivos complejos requiere un equipamiento que lamentablemente no est al alcance de todos. Le prometemos investigar para que
por lo menos tenga una idea de los costos
y de donde ubicar las mejores ofertas. En
principio sigamos con nuestros programitas
gratuitos ya que todava tenemos mucho
para hacer y con respecto a la programacin aprendamos primero a modificar y
luego a disear.

CIRCUITO DEL GENERADOR


DE BARRAS DE GRIS
Cules son los circuitos integrados ms
baratos?. En general son aquellos que tienen pocas patas y tecnologa nica, digital o analgica. Cuando un integrado de
tecnologa digital tiene algn sector que
funciona con tcnicas analgicas el resultado es un notable incremento de precio.
Los PIC vienen en diferentes versiones que
se diferencian por el agregados de conversores digitales/analgicos y analgicos/digitales que tienen tecnologa mezcla-

KIT

DE

PROGRAMACIN

DE

PICS

vos de la hora en otra diferente (en una palabra


que cuando se genera la
escala de grises no se generan las letras y nmeros
y la llave de la pata 10 se
puede analizar separadamente del resto porque no
opera en el mismo intervalo de tiempo que las
otras). El negro normalizado es simplemente el potencial de masa; es decir
que con todas las salidas
a los resistores en estado
bajo, por la salida de video slo pueden salir 0V y
Figura 35
ese valor mnimo corresponder por lo tanto al inda. Estos dispositivos son caros y nosotros
franegro (ms negro que el negro) ya que
buscamos dispositivos baratos como para en la entrada de video se considera que a
latinoamrica del 2000. La propuesta es
ms tensin le corresponde ms brillo (una
realizar el conversor por afuera, generanescalera ascendente de tensin genera
do en las salidas del PIC tensiones digitales una escalera ascendente de brillo). El cade 0V o de 5V y sumando resistivamente
so contrario se da para generar el blanco
generar las tensiones intermedias. De aqu que corresponde a la mxima tensin de
sale el circuito de nuestro generador de
salida normalizada en 1V. En este caso tobarras. Ver figura 35.
das las salidas debe aportar 5V para geVeamos como se genera la escala de
nerar el voltio normalizado. Para no tener
grises. La escala se genera llevando a po- que realizar innumerables clculos se realitencial de 5V las patas 1, 2, 17 y 18 en el
z una simulacin en Work Bench, donde
momento oportuno; observe que en este
las llaves se pueden operar de a una, de a
caso no consideramos la pata 10 que slo dos, de a tres o todas al mismo tiempo. Esopera para generar el blanco corresponte criterio es el nico posible para consediente a las letras y los nmeros. Este anli- guir 8 niveles diferentes de tensin con slo
sis por separado es enteramente correcto cuatro llaves. Para entender cmo se geporque la escala de grises se genera a
nera la escalera adjuntamos un cuadro de
cierta altura vertical sobre la pantalla y la valores en donde se indica el nmero de
leyenda por rolido y los nmeros indicatiescaln generado y el potencial de las
patas correspondientes del PIC. El
primer nivel que
se forma es el correspondiente al
Figura 36
sincronismo hori-

Todo sobre PICs

89

KIT

DE

PROGRAMACIN

DE

PICS

Figura 37

zontal; luego se forma el pedestal. Observe que el pedestal de negro y el primer escaln tienen el mismo nivel de tensin correspondiente al negro y luego comienza a
crecer la escalera con el escaln dos, tres,
etc., hasta el ocho. Ver figura 36.
De este modo se puede generar una
seal en escalera con escalones de amplitud prcticamente constante como la
que se puede observar en la figura 37. Observe que cada escaln dura aproximadamente 6S y hay 11 perodos iguales que
sumaran 66S (en realidad los periodos
elementales son de un valor ligeramente
menor de modo que sumen exactamente
64S).
Para generar el resto de la pantalla se
utiliza la pata 10 del PIC con un resistor en
serie de 270 que genera un nivel cercano al mximo de 1.096 (es levemente mayor, del orden de 1.150mV). Esta salida se
utiliza en el primer tercio de la pantalla y
en el tercero dejando el segundo tercio
para la escala de grises.

EL PROGRAMA DEL PICDREAM


El programa del PICDREAM es libre para
su uso en INTERNET y puede bajarse del link
que tenemos en nuestra pgina, en forma
totalmente gratuita. Recuerde que puede
bajarlo, modificarlo, experimentar con l,
pero no se puede realizar ninguna activi-

90

Todo sobre PICs

dad comercial con el mismo sin autorizacin del autor.


La extensin del archivo es del tipo .zip.
Esto significa que es un archivo comprimido para facilitar su transmisin por Internet.
El trabajo de comprimir o descomprimir archivos lo realiza un programa llamado
WINZIP que tiene una versin SHAREWARE
que se puede bajar por Internet desde la
pagina de WINZIP.
El archivo una vez abierto contiene un
archivo llamado picdream.asm que es el
que nosotros necesitamos para cargarlo
en el MPASM y obtener el archivo picdream.hex. sin embargo antes de obtener
el archivo hexadecimal lo invitamos a modificar el archivo .asm con el fin de poner
un texto en pantalla diferente al original. El
programa completo tiene 20 pginas que
pueden imprimirse desde el EDIT de DOS o
desde WORD; pero la seccin que ahora
nos interesa se encuentra en la ultima pgina con un encabezado titulado TEXTE
que repetimos en la figura 38.
Observe que el programa se puede dividir en tres columnas que no tienen por
qu estar en cierta posicin exacta. El
MPASM acomoda su funcionamiento adecundose a los parmetros de las columnas que el programador utiliz.
La primer columna se utiliza para separar verticalmente los pasos de programa.
El programa completo se divide as en varios sectores que pueden ser utilizados recurrentemente. Es decir que el programa
puede ser ejecutado por el PIC desde el
primer rengln hasta el ltimo en forma ordenada pero lo mas probable es que tenga saltos a un determinado sector desde
un rengln que puede ser anterior o posterior. En nuestro caso uno de los sectores
del programa se llama TEXTE y tiene una
sola lnea. Luego se encuentra otro sector
llamado DTEXTE y por ltimo el sector final llamado FTEXTE. Es como si tuvira-

KIT

Figura 38

mos tres carpetas cerradas que tienen etiquetas con el nombre TEXTE, DTEXTE y
FTEXTE y el programa principal tiene llamadas para ir a buscar esas carpetas
abrirlas ejecutar su contenido y al terminar
la ejecucin volver al programa justo en el
lugar desde donde se sali.
Observe que el texto que aparece en
pantalla se encuentra encolumnado luego de las rdenes RETLW. Cuando aparecen las letras SP el programa coloca un espacio y con una letra o un nmero coloca
ese carcter en pantalla en una secuencia lenta para permitir su lectura con comodidad.
Las indicaciones de la derecha precedidas de un punto y coma no son rdenes o
sentencias de programa, slo son comentarios agregados por el autor para permitir
que el mismo u otro programador entienda la operacin que se est efectuando a

DE

PROGRAMACIN

DE

PICS

la izquierda del separador punto y coma. En la


pantalla de nuestro monitor podemos leer el texto que se encuentra verticalmente en este subprograma.
La columna central es
la orden para ejecutar
alguna accin u operacin; en ese lugar se debe colocar alguna de las
36 instrucciones del set
de instrucciones para
PIC. En la columna de la
izquierda se colocan uno
o dos parmetros para
que esas operaciones se
lleven a cabo segn el
deseo del programador
(es decir que por ejemplo se puede poner la
instruccin sumar y a la
derecha se indican qu
variables se deben sumar).
Slo pretendemos que Ud. aprenda a
variar algunas sentencias y observe el resultado. Las sentencias que vamos a variar
son las correspondientes al texto en pantalla. Originalmente el programa trae el texto BATC PICDREAM y en la sentencia inicial de la figura 38 aparece un comentario en Ingls que dice largo mximo de
95 caracteres sin contar los espacios. Ms
adelante se lee otro comentario indicando que los primeros 6 espacios no deben
eliminarse. Con estas instrucciones lo invitamos a variar y/o agregar lneas de texto
(sin falsa modestia corresponde que ponga su nombre y apellido como armador
del engendro, al lado del nombre del autor del programa y en lo posible del mo
que algn mrito tengo). Al programa modificado lo puede llamar por ejemplo picdrea2.asm para que siempre le quede el

Todo sobre PICs

91

KIT

DE

PROGRAMACIN

DE

PICS

original con el nombre picdream (si mete


la pata tiene como volver atrs).
Luego deber abrir el MPASM y llamar al
archivo picdrea2.asm y ensamblarlo para
obtener un nuevo archivo hexadecimal
llamado picdre2.hex con el cual deber
cargar el PIC.

SERVICE DEL GENERADOR


DE BARRAS DE GRIS
Y si no funciona, cmo lo reparamos?
Realmente el circuito propuesto es tan simple que no tiene muchas posibilidades de
fallar. Pero la posibilidad aunque mnima
siempre existe y hay que estar preparado
para todo. Primero hay que mirar atentamente la pantalla para tratar de entender
donde est la falla. Se ve algo o la pantalla est negra o gris?. Si la pantalla est
negra o gris uniforme probablemente el
generador no est generando ninguna seal y eso se puede deber a varias causas:
Verifique las conexiones del cristal y los
capacitores relacionados. Una verificacin
del cristal se puede realizar con un osciloscopio que nos dar una forma de onda sinusoidal de 4MHz y una amplitud de 2 V
pap en cualquiera de sus dos patas. La
punta del osciloscopio se debe predisponer en x10 para no cargar al circuito. La
tensin continua en la pata 16 debe ser
de 2,5V y en la pata 15 de 2,2 V aproximadamente.
Si no tiene osciloscopio puede recurrir a
alguna radio que tenga una banda de
OC de 4MHz. Simplemente acercando la
antena telescpica al cristal se observar
un silenciamiento en una frecuencia cercana a 4MHz que desaparece al desconectar la fuente de 5V del PIC. La tensin
continua se puede medir con un simple
tster digital.
Recuerde que una desprogramacin

92

Todo sobre PICs

puede afectar el oscilador ya que se puede perder la palabra de configuracin y el


PIC puede quedar predispuesto para oscilador RC. Frecuentemente el PIC pierde su
programacin completa o parte de la misma cuando queda sometido a campos
electrostticos intensos. Ver la seccin siguiente.
Si se ve algo sobre la pantalla ya se
pueden sacar algunas conclusiones. Si la
imagen est enganchada podemos suponer que el clock funciona correctamente y
que estn generndose los pulsos de sincronismo horizontal y vertical. Si le falta el
texto y el reloj en pantalla verifique el resistor de la pata 10. Si le faltan las barras de
gris deberan faltar los cuatro resistores de
las patas 1, 2, 17 y 18. Si las barras aparecen con un gris repetido puede faltar alguno de estos cuatro resistores.
Tambin puede ocurrir que los resistores
estn pero conectados a una pata equivocada o esa pata del puerto de salida
est mal declarada en el programa (desprogramacin parcial) o que est daada.
Por ltimo es conveniente desconectar
y volver a conectar la fuente varias veces
porque se pueden producir arranques con
resets inadecuados cuando la tensin de
fuente crece suavemente.

UNA EXPERIENCIA CON PICS


El autor de la nota, ilustra sus clases de
capacitacin referidas a PICs dictadas a
los socios del Club Saber Electrnica, con
tres circuitos armados sobre un mismo panel que contiene un secuenciador, un generador de barras de gris y un hardware
de NOPPP para demostrar cmo se carga
y se modifica un archivo.
El panel con los tres circuitos armados
fue construido con mis propias manos ya

KIT
que se trata de circuitos muy simples que
no requieren complejos circuitos impresos.
Desde luego que antes de la demostracin definitiva fueron probados una y mil
veces en todas las condiciones posibles;
golpeados mientras funcionaban para encontrar falsos contactos; con la tensin de
fuente variada entre el nivel mximo y el
mnimo; en fin se tomaron todas las precauciones para evitar que fallaran durante la clase demostrativa.
Existe una ley de Murphi que dice: toda
demostracin funcionar perfectamente
cuando se hagan experiencias de prueba,
pero fallar inexorablemente en el momento de la demostracin real delante de
los invitados.
El da de la clase prob el panel en mi
laboratorio. El secuenciador encenda los
leds en una rpida secuencia, el generador de barras generaba su imagen una y
otra vez con la leyenda Curso de codificacin y decodificacin de seales de TV
y el cargador de PICs ley y carg un PIC
de acuerdo a su pantalla de control. Lo
desconect lo apoy suavemente sobre el
asiento trasero de mi coche y me fui para
CAPITAL. El trayecto Burzaco-Barracas se
desarroll sin ningn inconveniente y tena
una media hora de tiempo para realizar la
ltima prueba en el aula antes de que llegaran mis 35 alumnos. Cuando llegu me
rapt un grupo de alumnos que me preguntaban sobre una ignota codificacin
que no podan entender, los atend y me
d cuenta que ya estaba sobre la hora de
comienzo de la clase. Conect el panel
con pasmosa seguridad de que todo funcionara bien y ............ los leds no titilaron y
la imagen del TV monitor era gris sin ningn
contenido. La ley de Murphi se cumpli
inexorablemente.
Con la experiencia que dan los aos dije: seores, el destino quiere que realicemos una clase prctica de reparaciones

DE

PROGRAMACIN

DE

PICS

en circuitos con PICs. As que empecemos


ya a reparar. Vamos a comenzar con el secuenciador. Qu le revisamos. El coro me
dijo lo primero es la tensin de fuente, luego la tensin de Reset y por ltimo la continua de las patas del oscilador (en este
caso un RC). Medimos todo muy prolijamente y estaba todo bien. Y ahora que?.
Ahora hay que revisar con el osciloscopio
a ver si funciona el clock. No hay oscilacin.
All los alumnos se dividieron en dos facciones. Estaban los que decan que una
falla del clock significaba que el PIC estaba mal y otros que decan que no siempre
era as. Le di la razn a estos ltimos porque el PIC es un tipo de CI que se da en
llamar mascable que no significa que se
puede mascar como un chicle aunque
vale el parecido ya que el PIC modifica su
circuito interno para que oscile con una
red RC, con un cristal de alta frecuencia,
con uno de baja frecuencia o con un filtro
cermico (es un verdadero chicle que modifica su forma al morderlo) y no tenamos
idea de como estaba predispuesto nuestro integrado.
De comn acuerdo con mis alumnos llegamos a la conclusin que debamos tomar el PIC del secuenciador y verificar su
programa con el NOPPP. Al hacerlo el
NOPPP me indic que la primer posicin de
memoria, la 0000 estaba vaca. La conclusin fue que el PIC se haba daado o que
se haba desprogramado. Para saber lo
que pasaba slo quedaba intentar cargarlo de nuevo. As que volv a arrancar el
NOPPP y esta vez le ped program. La indicacin fue que no se pudo cargar la primer posicin de memoria. El PIC est daado, fue la conclusin general que pareca
clara. Seguimos el mismo proceso pero est
vez con un PIC virgen y la respuesta de la
pantalla de la PC fue la misma no se puede cargar la primer posicin de memoria.

Todo sobre PICs

93

KIT

DE

PROGRAMACIN

DE

PICS

Pareca que haban fallado dos cosas.


Por un lado el PIC se haba desprogramado y por otro el cargador NOPPP estaba
daado. Las probabilidades de que se daen dos cosas al mismo tiempo (y posiblemente tres porque el generador de barras
de gris no funcionaba) es muy remota pero no acertaba a saber que haba ocurrido.
Comenc a aplicar la autorutina de reparacin del NOPPP pero el segundo paso
me daba una indicacin errnea que me
indicaba que el puerto paralelo de la PC
no enviaba datos al hardware del NOPPP.
La prueba del puerto de una PC es muy
simple, conectar la impresora y observar si
funciona. La impresora funcion pero primero se ley un mensaje de error en la
pantalla del monitor que se borr tan rpido que solo se pudo leer ....LPT2...............
Esto fue suficiente para que uno de los
alumnos se diera cuenta del error. Cuando
el software NOPPP pregunta con qu
puerto se va a trabajar yo declar LPT1 en
forma maquinal porque as lo hago en mi
computadora. Pero la PC que estaba
usando tena habilitado el puerto 2 y por
eso no se podan cargar los PICs.
Volv a colocar el PIC que haba sacado
del secuenciador, en el hardware del
NOPPP y ped program ahora s la pantalla del monitor me respondi cargando y
un poco despus programacin completa. Saqu el PIC del cargador, lo coloqu
en el secuenciador y comenzaron a encenderse los LEDs en secuencia ante la algaraba de mis alumnos un poco en serio y

94

Todo sobre PICs

otro poco en broma. Me aguant la gastada por el error con el LPT2 y la clase termin porque ya era la hora de salida. Dejamos para la siguiente clase el problema
del generador de barras de gris aunque
ya nos imaginamos que tambin tena
desprogramado el PIC.
Luego en mi casa comprob que el PIC
estaba desprogramado, lo program y sali andando como si nada. El mayor misterio es saber por qu se desprogramaron los
dos PICs en el viaje de Burzaco a Barracas.
As las cosas al da siguiente, volv a llevar
el panel reparado, lo conect al TV monitor y funcion durante las tres horas que
dura la clase de CD con 35 alumnos que
son mis testigos. Lo desconect, lo puse en
mi auto y me lo llev de vuelta para Burzaco. Al da siguiente lo quise bajar del auto
para hacer unas pruebas y haba desaparecido.
Mis conclusiones es que entre Burzaco y
Barracas existe el tringulo de Llavallol en
donde los equipos electrnicos se daan y
se pierden y adems existe un campo de
fuerzas propicio para que se cumplan las
leyes de Murphi. Y sobre todo que yo soy
un viejo desmemoriado (por no decir otra
cosa relacionada con esferas carnosas)
que no sabe dnde pone las cosas. Si alguien encuentra mi panel favor de devolverlo a ingeniera Picerno, se gratificar
con un autgrafo sobre uno de mis Best
sellers de electrnica.
Bromas aparte, espero haber contribuido a que Ud. aprenda a programar PICs.

KIT

DE

PROGRAMACIN

Todo sobre PICs

DE

PICS

95

KIT

DE

96

PROGRAMACIN

DE

PICS

Todo sobre PICs

Potrebbero piacerti anche