|
Electrónica Completa
Curso en línea gratis de Electrónica Completa por el Ing. Alberto Picerno
Programación de un PIC con NIPLE
En el momento actual, la electrónica
utiliza microcontroladores y microprocesadores de todo tipo en
profusión. Ud. en este momento está leyendo en una PC que tiene
seguramente uno de los microprocesadores masivos de mayor tamaño y con
una enorme cantidad de patas. Pero también existen microcontroladores de
pequeño tamaño y muy fáciles de programar, que han revolucionado la
electrónica por su bajo precio.
Entre estos últimos se destacan como los mas económicos, los
microcontroladores de la serie PIC de microchips. Y entre ellos se
encuentra aquel que es líder en el rubro economía el PIC12F629 de tan
solo 8 patas y cuyo costo es de aproximadamente 2 U$S. Si Ud. se
pregunta que puede hacer este micro de tan bajo precio yo le contesto
que puede cumplir múltiples funciones que aun no podemos evaluar en su
totalidad, pero que con el tiempo iremos conociendo poco a poco.
Como al autor le gusta enseñar construyendo dispositivos y
no solo con teoría escrita sobre papeles, vamos a construir el primer
dispositivo de nuestro curso que es un generador de RF modulado en AM,
para la banda de OL que cubre las frecuencias de radio de 530 KHz a 1610
KHz.
Pero lo vamos a hacer explicado, de modo que el lector pueda
utilizarlo para otras bandas de frecuencias y otras funciones similares.
Al terminar la lectura de esta lección Ud. sabrá qué es un
microprocesador y cómo se utiliza.
Pero hasta el menos versado sabe que un microprocesador requiere un
programa; si Ud. compra una PC y no le carga ni siquiera el sistema
operativo, no podrá hacer nada con ella. El PIC no es la excepción y
parecería que allí se acaban nuestras ilusiones de explicar que es un
microprocesador. Sin embargo no es así. Cuando les dije a mis alumnos
que nuestro curso básico de electrónica incluía laboratorios virtuales y
la programación de microcontroladores, no estaba mintiendo; ya hicimos
buen uso de los laboratorios virtuales y creo que los alumnos ya les
están perdiendo el miedo poco a poco y los están reconociendo como una
enorme y didáctica ayuda. Ahora le toca el turno a la otra promesa. En
esta lección vamos a aprender a programar.
Hasta hace algunos años los PICs se programaban en “asembler” que es
el idioma básico o nativo de esos microcontroladores. Programar de ese
modo requiere todo un largo aprendizaje y una ardua tarea a la antigua, o
casi a la antigua. Había que escribir sentencias muy complejas y una
simple coma mal puesta podía ser un dolor de cabeza para el programador.
Hasta que un grupo de profesionales de la Argentina creó un programa
llamado NIPLE que resuelve el problema en forma gráfica. Ud. sólo elige
diferentes iconos, que representan las diferentes operaciones que
realiza el PIC, el resto lo realiza el NIPLE como una tarea de fondo
entregando el programa en “Asembler” sin ningún esfuerzo para el
programador y sin errores de ningún tipo.
¿Qué debe generar el PIC?
Nuestro PIC tiene una tarea sencilla adecuada para aprender a usarlo.
Debe generar en una de sus patas de salida una señal rectangular con un
50% de tiempo de actividad (cuadrada) de una frecuencia de 2 KHz. La
amplitud de esta señal no puede ser elegida, ya que en un pata de salida
del micro solo pueden existir señales que tengan la misma amplitud que
su fuente de alimentación y el PIC que estamos usando se alimenta con
5V. Es decir que generaremos una señal de 5V durante 250 uS y de 0 V
durante otros 250 uS para completar un periodo de 500 uS. De este modo
generamos una señal de audio de 2 KHz ya que la inversa de 500 uS es
1/500.10-6 = 0,002.106 = 2.000 Hz o 2 KHz.
El PIC12F629 tiene solo 8 patas, pero es un microprocesador completo
con todas las de la ley y tiene una capacidad de memoria igual a la de
su hermano mayor de 18 patas el 16F84A o su versión mas moderna 16F621
que es el mas conocido de la línea de Microchip. Es evidente que con 8
patas en total y dada la necesidad de poseer una pata para fuente y otra
para masa solo le restarían 6 patas activas para realizar su trabajo.
Pero los microcontroladores comunes necesitan emplear tres patas mas
para dos funciones imprescindibles para ellos y que pasamos a explicar.
Función de RESET
Esta palabra (que podría traducirse literalmente como restauración)
se utiliza directamente en Español ya que la ciencia informática la ha
adoptado definitivamente. Un microprocesador sigue un programa de
trabajo. Y ese programa debe ser ejecutado desde el primer paso de
programa hasta el último, en un orden predeterminado comenzando siempre
por el paso 1. Si se comienza por el medio del programa el resultado
será catastrófico. Por eso los microcontroladores poseen una pata que se
mantiene a nivel cero por algunos instantes de tiempo luego de aplicada
la tensión de fuente. En esa condición el micro sabe que debe ir a leer
el primer paso de programa y ejecutarlo, pasando luego por lo general
al segundo y así sucesivamente. Pero esa función de reset puede
realizarse internamente si se lo requiere en un micro con pocas patas.
El 629 se puede programar para que realice esa función en forma
automática liberando la pata de reset para que se pueda usar como pata
de entrada.
Función de CLOCK
La mayoría de los microcontroladores requiere dos patas para
utilizarlas en una función llamada “clock”. La traducción literal de
esta palabra es “Reloj” pero los informáticos suelen usar directamente
el termino en Inglés. La necesidad del clock es evidente. Si un micro es
un dispositivo que sigue una serie de pasos de programa debemos decirle
a que ritmo debe leer esos pasos. Ese ritmo se le puede dar con un
circuito LC como el que vimos en la clase pasada y cuya frecuencia de
trabajo era de 1 MHz (ritmo de 4 uS por paso de programa) a condición de
que el circuito interno del micro se encargue de generar una señal
excitando al circuito LC externo. Pero existe un componente electrónico
llamado “cristal” que suplanta al circuito LC con una enorme precisión y
que se utiliza junto con dos capacitores de pequeño valor para generar
el clock de los micros.
El 629 posee un oscilador interno que no requiere la conexión de un
cristal externo. De ese modo esas patas quedan libres para ser usadas
como entradas o salidas pero hay que aclarar que ese clock interno no
tiene la precisión de un cristal. Como en nuestro caso no necesitamos
que el tono de audio generado sea preciso haremos uso de esa facilidad
de nuestro micro. También cabe mencionar que la base de tiempo interna
esta fija en 4 MHz y que tiene una precisión del 1% dentro de un margen
de temperatura de 0 a 70ºC; con esto el paso de programa dura 1 uS
(siempre es la frecuencia del clock dividido 4).
Puertos GP de I/O
Con todo esto, salvo las patas de masa y fuente, las otras 6 pueden
considerarse patas activas que la costumbre indica como patas del puerto
(que en este integrado se llama puerto GP); y que son 5 de I/O y una de
I solamente.
Suponemos que Ud. no entendió la frase anterior porque pertenece al
mundo informático, que estamos develando poco a poco. La palabra puerto
se utiliza para indicar el lugar a donde llegan o desde donde parten la
señales de un micro. Las patas son casi siempre de entrada o de salida
debiendo indicarse dicha condición al principio del programa como un
paso de programa mas. En Inglés se dice que son patas de I/O de Input
que significa entrada y de Output que significa salida. En nuestro caso
el puerto (el nombre de las patitas indicado por el fabricante) será GP0
(pata 7), GP1 (pata 6), GP2 (pata 5) etc hasta GP5 (pata 2) y todas son
de I/O salvo GP3 (pata 4) que es de I solamente.
En la figura 1 se puede observar la distribución de patas del 629 con todas sus variantes.

Fig.1 Distribución de patas del 629
En nuestro caso solo requerimos una pata de salida, pero la
explicación vale para el futuro donde realizaremos otros diseños de
instrumental con este mismo micro.
En nuestro caso usaremos la pata 7 (GP0) como salida, indicando que en
esta pata se puede colocar una carga que tome hasta 25 mA o entregue
hasta 20 mA. Dentro de estos consumos el fabricante garantiza que la
pata de salida pasará al estado alto o bajo sin inconvenientes.
Programación del PIC con NIPLE
El programa de nuestro generador de señales rectangulares va a ser desarrollado con NIPLE
5.2 del cual se puede descargar un demo. Instale el demo y luego genere
un icono de arranque. Al arrancar aparecerá una pantalla con solapas
similar a cualquier programa de Windows. Haga archivo > nuevo
proyecto y aparecerá la pantalla inicial para elegir el micro.

Fig.2 Predisposición inicial
Elija su idioma preferido entre Español, Ingles y Portugués y el
micro 12F629 y pulse en crear. Aparecerá la pantalla para ponerle nombre
al archivo y escribir un comentario del programa que se puede observar
en la Fig. 3.

Fig.3 Pantalla para nombrar el proyecto y comentar su uso
Complete la pantalla, pulse crear y aparecerá la pantalla de trabajo donde va a crear el programa.

Fig.4 Predisposición de puerto
El orlado con los 6 puntos significa que el próximo bloque se va a conectar automáticamente al que acabamos de crear.
Observe que la zona de trabajo ya posee un icono de inicio en donde
el programa genera todos las sentencias de predisposición
correspondientes al integrado en uso. Arriba a la derecha tenemos dos
ventanas. Una correspondiente a la frecuencia de clock. Que como sabemos
estará predeterminada porque el clock interno funciona solo a 4 MHz.
Elegimos INT 4 MHz.
La segunda ventana pregunta si vamos a usar una pata como reset, o si
el reset será automático y producido internamente. Elegimos “interno”.
Ahora comienza en realidad el programa que deseamos crear y comienza
con la definición del puerto. En nuestro caso solo debemos buscar en la
tabla de operaciones de la derecha abajo insertar> rutinas básicas
> puerto > configuración de puerto y aparecerá la pantalla de la
Fig. 5 con el layout completo del integrado en donde observamos que
todas las patas están indicadas como salidas incluyendo la que nosotros
necesitamos que es la GP0. Deje a las otras patas como salida aunque no
las utilice en este proyecto. Es decir que solo debe pulsar “enter” y
aparecerá el segundo icono del programa que se puede observar en la
figura 6.

Fig.5 Definición del puerto

Fig.6 Icono de definición del puerto
El icono verde con las dos flechas significa definición de puerto. Y
la leyenda interna XXSSESSS indica como quedo definido el puerto. El
ultimo carácter corresponde a GP0 y hacia la izquierda aparece GP1, GP2,
etc hasta GP5 porque este micro no posee un puerto completo de 8 bits.
La indicación XX significa que esos bits no están habilitados para ser
predispuestos como I o como S. GP3 no puede elegirse, siempre es de
entrada por definición, cuando esa pata se predispone para que no sea la
de reset.
Nuestro programa requiere que la pata GP0 esté 250 uS alta y 250 uS
baja continuando con la oscilación hasta el infinito. Vamos a pasar
primero la pata al estado alto ingresando a insertar > rutinas
básicas > puerto > escribir en puerto, con lo cual aparece un
cartel de aviso de que en esa parte del programa el puerto no esta
predispuesto como salida ya que GP3 es una entrada. Haga caso omiso del
aviso y siga adelante. Aparecerá una pantalla solicitando que aclare lo
que desea hacer.

Fig.7 Pantalla para escribir datos
La opciones son escribir un valor literal o especifico en el puerto
de salida o escribir un valor guardado en un registro. Elegimos la
primer opción y se produce otra pantalla preguntándonos que “número
desea colocar en el puerto” y con que notación. Elegimos notación
binaria y colocamos el número 00000001 con lo cual la pata GP0 pasa al
estado alto y todas las demás quedan en el estado bajo (las patas
virtuales GP6 y GP7 se ponen en cero aunque sabemos que dichos bits no
tienen como ser sacados del PIC.

Fig.8 Escritura en un puerto
Al pulsar en ingresar aparece el icono que indica que se envió el
numero binario al puerto de salida y por lo tanto la pata GP0 pasó al
estado alto.

Fig. 9 Sacando un número binario por el puerto
En este punto del programa necesitamos que el micro se quede detenido
con GP0 en alto durante 250 uS. Y eso se logra con un temporizador por
loop obtenido de la tabla de herramientas de la derecha haciendo
insertar > rutinas básicas > temporizadores > tiempos por
ciclos, para que aparezca una pantalla como la indicada en la figura
siguiente.

Fig.10 Deteniendo el programa por 250 uS.
Al pulsar “Ingresar” aparece el icono del temporizador en el programa que estamos construyendo.

Fig.11 Demora de 250 uS
Al llegar a este punto vamos a acelerar las explicaciones porque el
programa se vuelve repetitivo. Todo lo que nos queda por hacer es
escribir 00000000 en el puerto de salida y realizar otra temporización
de 250 uS.
En la figura 12 se puede observar el programa terminado para realizar un solo ciclo de nuestra onda rectangular de salida.

Fig.12 Programa para generar un solo ciclo
Y en la figura 12 se puede observar el programa completo con
repetición permanente del ciclo. Todo lo que se agregó es un línea del
diagrama de flujo para que el control del programa de un salto hacia
atrás. Esa línea de regreso se realiza orlando el ultimo icono y luego
pulsando en su punto central y arrastrando hasta el icono de retorno.

Fig.13 Programa final
Como se puede observar la programación no puede ser mas sencilla ya
que construir todo este programa puede haber llevado un tiempo de un par
de minutos como mucho. Y además existe la posibilidad de modificarlo
muy fácilmente editando los iconos y cambiando su contenido. Por ejemplo
si Ud. quiere generar un tono de 1 KHz solo debe picar dos veces sobre
cada temporizador para editarlo. Cuando aparece la pantalla del
temporizador, ponga el nuevo tiempo y pulse en “ingresar”. Dejamos como
un tarea para el lector la generación de una señal rectangular de 2 KHz
con un 40% en alto y un 60% en bajo.
Carga del PIC
El Niple ya realizó nuestro programa, pero ¿Cómo se carga en el PIC?
Es evidente que el programa está en la PC pero la PC no tiene zócalo
para ubicar un PICs. Si queremos cargar un PIC debemos tener un
dispositivo adecuado que haga de interfaz entre la PC y el PIC; ese
dispositivo tiene tres nombres; de acuerdo al país de origen del alumno
se lo conoce como programador, cargador o quemador de Pics.
Un programador se conecta al puerto serie o paralelo de su PC
(también existen programadores para puerto USB) y posee un zócalo que
admite los diferentes PICs que existen en la actualidad, a saber de 8,
18 y 28 patas. El autor recomienda comprar un programador para puerto
paralelo, debido a que dicho puerto por lo general está libre debido a
que las impresoras ya no se conectan allí.
Si Ud. sabe algo de PCs sabe que un dispositivo para la misma no
sirve de nada sino posee el correspondiente programa para controlarlo.
Nuestro programador utiliza un programa llamado ICprog
que se consigue gratuito en la red. Cuando ingrese podrá comprobar que
dicho programa es utilizado por 4 millones de personas en el mundo y por
lo tanto podemos asegurar que es el elegido por los programadores de
PICs.
El instrumento completo
Como el lector ya sabe nuestro curso básico de electrónica lo
capacita para reparar radios de AM y FM. El instrumento que le estamos
proponiendo hoy es un generador de AM que le servirá para iniciarse en
la reparación de esas radios. En nuestro curso solo le pediremos que Ud
posea las herramientas clásicas, un tester digital, un tester analógico y
el generador de RF que le indicamos en la presente lección.
Un generador de RF para AM debe emitir en diferentes frecuencias de
radio. Mas adelante en este mismo curso vamos a indicarle que existe una
frecuencia llamada de FI que generalmente es de 455 KHz y es
imprescindible para ajustar una radio; luego existen otras dos
frecuencias importantes que son los extremos de la banda de AM que en
América son 530 y 1650 KHz. Por último se requieren tres frecuencias mas
que sirven par observar el funcionamiento dentro de la banda y ajustar
eventualmente el circuito de la radio en reparación y que son de 680,
950 y 1250 KHz.
Hasta ahora nuestro generador de RF solo permitía emitir una sola
frecuencia. Para realizar un instrumento versátil es necesario que tenga
la posibilidad de emitir en toda la banda de AM. Esto posee dos
alternativas; usar un inductor variable o un capacitor variable. Si bien
los inductores variables existen los mismos no son aptos para lograr el
cubrimiento completo de la banda de AM mas la de FI. En cambio los
capacitores variables son los mas indicados en este caso, porque están
fabricados para cubrir la banda de AM y un poco mas, permitiéndonos
construir un dispositivo muy sencillo.
En realidad el circuito completo que se puede observar en la figura14
no difiere mucho del propuesto en la lección anterior. Solo posee un
capacitor variable de plástico para radios de AM y un capacitor fijo
debajo de la bobina para adaptar la impedancia de salida, que es un
parámetro de los componentes reactivos tal como lo explicaremos en la
próxima entrega. Y por supuesto posee un PIC12F629 programado como
generador de funciones para generar la modulación. Luego le explicaremos
el uso de la SW2 y C4.

Fig.14 Circuito final del generador de RF
Nosotros conocemos hasta ahora todos los componentes de este
circuito, salvo el inductor y capacitor variables (tienen una flecha
cruzada). El inductor variable posee un conductor enrollado sobre un
carretel de ferrite y una tapa cazoleta que lo cubre y puede tapar al
carretel total o parcialmente ya que está montada sobre un dado de
plástico roscado tal como puede observarse en la figura 15.

Fig.15 Inductor variable con cazoleta roscada
Esta disposición logra que el campo magnético generado por la bobina
se cierre prácticamente por un camino de material concentrador del campo
magnético como es el ferrite (hierro pulverizado mezclado con resina
epoxi) pero dejando un espacio variable de aire para ajustar la
inductancia de la bobina a su valor exacto. Este ajuste de la bobina se
realiza cuando se prueba el circuito es decir que no es accesible al
reparador una ves que el instrumento está terminado. El cambio de
frecuencia se realiza con otro componente variable que es el capacitor
C1. Este capacitor se conoce con el nombre de capacitor en tándem de
plástico. Ese nombre tan extraño se debe a que esta dividido en dos
secciones que se mueven en forma sincrónica ya que están montadas en un
mismo eje. El eje tiene chapas semicirculares móviles que se pueden
enfrentar con chapas fijas también semicirculares de acuerdo a la
posición del eje. Cuando las chapas están totalmente enfrentadas, la
capacidad es máxima y cuando no lo están es mínima. Antiguamente los
tándens tenían dieléctrico de aire pero actualmente entre chapa y chapa
existe una capa de polietileno que aumenta la capacidad y mantiene la
aislación entre las chapas.

Fig.16 Capacitor variable en tandem
Observe que las dos secciones del capacitor tienen montados otros dos
capacitores construidos con chapas semicirculares mas pequeñas en
paralelo con las secciones mas grandes (no visibles en la foto). Esta
sección llamada de los “trimmers” ajusta la capacidad mínima del tánden
cuando está totalmente abierto ajustando los correspondientes tornillos.
Así las cosas con el tánden cerrado debemos llegar a una frecuencia
dada por la formula de Thomson de 400 KHz ajustable con la cazoleta de
la bobina y con el tánden abierto a una frecuencia de 1700 KHz ajustable
con los trimmers.
Conclusiones
En está lección entramos al mundo de los microprocesadores y de la
programación de los mismos. Sabemos que es atípico hablar de
microprocesadores cuando aun no explicamos el funcionamiento de los
dispositivos activos como el diodo y el transistor. Pero el autor
considera que se pueden diseñar dispositivos con microprocesadores sin
tener ni siquiera una idea de su funcionamiento interior. Solo
considerando al mismo como una caja negra con entradas y salidas y un
programa que le indica que debe hacer con esas entradas para obtener las
salidas.
La prueba de este criterio la tenemos a la vista y la vamos a
completar en las próximas entregas cuando encaremos prácticamente el
armado de nuestro generador de RF o nuestro transmisor de telegrafía sin
hilos que es lo mismo.
También marcamos en esta lección otro importante hito. Diseñamos un
programa para PIC en forma enteramente gráfica utilizando la herramienta
mas moderna que se tenga noticia: el NIPLE. Este programa debe hacer
sentir dichosos a todos nuestros compatriotas, porque casi sin medios se
ha logrado realizar un programa extraordinario que ya se esta
exportando a todo el mundo (prueba de ello es que se lo puede
predisponer en tres idiomas diferentes, Español, Portugués e Inglés).
Por supuesto que no todos están de acuerdo con un criterio tan
avanzado. Uno de ellos escribe en Internet ….. “¿Porque no estoy de
acuerdo con el uso del NIPLE?”…. Yo lo conozco y se la verdadera razón
de su desacuerdo: Tiene miedo, un miedo terrible a quedarse sin trabajo,
porque se gana la vida programando con los métodos antiguos. Yo
considero que los programas los debe hacer un ingeniero en electrónica o
un técnico con conocimientos de programación y nunca un programador con
conocimientos de electrónica. La programación de microcontroladores así
como el diseño electrónico de hoy están abiertos a todos. Si Ud. es un
químico que quiere realizar un dispositivo electrónico que lo ayude en
su profesión, puede estudiar electrónica con toda facilidad y realizar
su propio dispositivo.
Muy pronto vamos a comenzar a construir nuestra primer radio y va a ser algo muy parecido a una radio a galena.
Descargas
|