|
DISEÑANDO CON PICS MICRO3 PROGRAMANDO CON NIPLE por RUIZ MARTIN Y PICERNO
MICRO3
3.1 PRESENTACIÓN
Construir un generador de onda rectangular es algo aparentemente muy simple, pero al llevar la idea a la práctica comienzan a aparecer los problemas.
Todos comenzarían por un multivibrador biestable. Dos transistores con una realimentación del colector de uno a la base del otro. Seguramente se puede llegar a una solución pero se requiere la fabricación de un prototipo y un ajuste manual de los componentes utilizando un osciloscopio.
La razón es que los componentes más precisos que maneja un técnico son a un 5% de precisión y no podremos mejorar esa precisión en el periodo de actividad y en la frecuencia.
Con el osciloscopio podremos mejorar la precisión pero a lo largo del tiempo no tenemos modo de evitar que los materiales cambien levemente de valor.
¿Podremos encontrar una solución que genere los pulsos con absoluta precisión sin necesidad de observarlos con un osciloscopio para estar seguros de nuestro circuito?
Si, se puede conseguir y seguramente con más precisión que la que nos puede dar un osciloscopio. Si el osciloscopio le da un error en los tiempos, mándelo a reparar porque está fallando. La solución es usar un micro pequeño y el PIC en este caso es el rey, el famoso "rey micro" de mi libro.
En mi libro hablábamos de micros que no podían reprogramarse (estábamos en la época de los TRC) hoy el mismo micro del ejemplo podemos reprogramarlo para que cumpla miles o millones de funciones diferentes.
3.2 SOLUCIÓN CON UN MICRO
Vamos a usar el micro que hizo famoso a "Microchip" aunque desde ya le digo que sus prestaciones son superiores a las necesarias. Lo usamos solo como ejemplo y porque es muy económico.
En la figura 3.2.1 mostramos el circuito correspondiente a nuestro diseño realizado en el simulador Proteus que es el más adecuado para simular circuitos con micros.
Fig.3.2.1 Circuito del generador de señal rectangular. Nota: es comun que Las conexiones de masa y fuente no se dibujen para simplificar el mismo pero son: masa 5 y 14 fuente (5V). El triangulo invertido sobre R1 significa una conexión a la pata de fuente.
El clok y el reset ya fueron tratados en el artículo 1 de la serie.
Queremos que nuestro circuito genere una señal como la que indicamos a continuación en la figura 3.2.2 pero en el desarrollo del programa vamos a indicar como se modifican los tiempos de los pulsos a discreción para lograr otros valores de tiempo de actividad y frecuencia.
Fig.3.2.2 Oscilograma de salida
Es decir que queremos un generador que entregue 5V durante 100 uS luego permanezca en cero durante 200 uS y vuelva a comenzar un ciclo idéntico hasta el infinito.
El oscilograma que mostramos surge en realidad de la simulación del circuito incluido el programa interno del PIC que vamos a desarrollar. Es decir que en el circuito no colocamos un 16F84C vacio sino uno cargado con el programa adecuado.
3.3 EL PROGRAMA EN NIPLE
Como ya sabemos el NIPLE es un programa gráfico en el que hay que elegir bloques que realizan la función deseada. Luego de colocar el bloque, este se une a los bloques anteriores, formando el programa completo como un diagrama en bloques.
En realidad cada vez que colocamos un bloque el programa genera de fondo y como algo invisible al operador, una sentencia del PIC que estamos usando. Observe el programa gráfico de la figura 3.3.1.
Fig.3.3.1 Programa gráfico NIPLE
Lo primero que hace el programa automáticamente es colocar el bloque "Iniciar" cuando abrimos un nuevo programa. Luego, si el lector recuerda, decíamos que los micros actuales eran enmascarables, es decir que las patas podían elegirse como de entradas o salidas. Eso lo realizan los bloques de doble flecha en donde se indica si una pata será de entrada o salida.
Hay un bloque para cada puerto. Al seleccionar "puertos" aparecen ambos con todas las patas como salidas. Esto se produce automáticamente porque por lo general las patas como salidas suelen captar menos interferencia. Si se necesita una o más entradas, solo hay que marcar el casillero correspondiente.
Hasta aquí son todas acciones comunes a todos los programas y no lleva más que segundos realizarlas para comenzar luego el programa específico que deseas.
En nuestro caso debemos:
1) Buscar un rectángulo violeta que sirve para poner valores en las patas de salida. Aparece un formulario preguntando en que pata hay que colocar un valor y si ese valor es un 0 o un 1 y luego pulsar un botón para que el bloque se una al bloque verde del puerto B.
2) Buscar el bloque temporizador que es una elipse verde con una salida rectangular. A ubicarlo aparece un formulario con opciones de diferentes tipos, elegir "tiempo fijo" y luego 100 y luego uS. Esto mantiene en 1 la salida por la pata RA0 durante 100 uS.
3) Ahora hay que buscar otro violeta como el anterior pero en el formulario hay que poner que queremos una salida por la misma pata anterior RA0 pero ahora elegimos con el valor 0.
4) Volvemos a buscar el bloque temporizador lo ubicamos y ahora lo predisponemos en 200 uS.
5) Como el ciclo de la señal rectangular esta completo debemos cerrar el loop (rulo o nudo en español) y debemos unir la salida del temporizador con el rectángulo violeta de RA0=1. Cada vez que se selecciona un bloque de la barra de bloques el NIPLE lo une con el bloque anterior pero además genera un orlado sobre cada bloque (orlado=rectángulo de guiones con un punto grande sobre cada vértice, otro en la mediana de cado lado y otro en el centro). Picando sobre el punto del orlado del temporizador de 200 y llevando el mouse al primer rectángulo y soltando el botón del mouse se genera una flecha sobre la línea que cierra el loop.
3.4 ¿ES IMPRESCINDIBLE EL NIPLE?
No, de ninguna manera. Un programador podría tipiar el código ASM y generar el mismo programa en forma de texto como se observa a continuación:
;------------------------------------------------------------
; Código assembler generado por Niple V6.4.1
; Proyecto: generador señal rectangular
; Autor:
; Fecha: 26/03/2020
; PIC: 16F84A
; Velocidad de reloj: 4 Mhz
; Descripcion: genera una señal rectangular de 100uS x 200 uS
;------------------------------------------------------------
LIST P=PIC16F84A
_HS_OSC equ 0x3FFE
_WDT_OFF equ 0x3FFB
_PWRTE_ON equ 0x3FF7
_CP_OFF equ 0x3FFF
__config _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
;------------------------------------------------------------
; Declaración de Registros
;------------------------------------------------------------
w equ 0x0000
status equ 0x0003
fsr equ 0x0004
porta equ 0x0005
portb equ 0x0006
pclath equ 0x000a
_np_tiempo equ 0x000d
_np_tiempo1 equ 0x000f
_np_tiempo2 equ 0x0010
_np_tiempo3 equ 0x0011
opcion equ 0x0081
trisa equ 0x0085
trisb equ 0x0086
;------------------------------------------------------------
; Declaración de Bits
;------------------------------------------------------------
c equ 0 ;-
psa equ 3 ;-
ra0 equ 0 ;-
rp0 equ 5 ;-
rp1 equ 6 ;-
to equ 4 ;-
z equ 2 ;-
;------------------------------------------------------------
; Declaración de Registros EEPROM
;------------------------------------------------------------
;------------------------------------------------------------
; Inicio
;------------------------------------------------------------
org 0x00
bsf status,rp0 ;cambiar a banco 1
clrf opcion
goto paso2
;------------------------------------------------------------
; programa principal
;------------------------------------------------------------
paso2
bsf status,rp0 ;cambiar a banco 1
bcf opcion,psa
bcf status,rp0 ;cambiar a banco 0
clrf _np_tiempo
clrf _np_tiempo1
clrf _np_tiempo2
clrf _np_tiempo3
clrf porta
movlw b`00000000` ;configurar el puerto a como xxxsssss
bsf status,rp0 ;cambiar a banco 1
movwf trisa
bcf status,rp0 ;cambiar a banco 0
clrf portb
movlw b`00000000` ;configurar el puerto b como ssssssss
bsf status,rp0 ;cambiar a banco 1
movwf trisb
paso4
bcf status,rp0 ;cambiar a banco 0
bsf porta,ra0
movlw .19
movwf _np_tiempo
tempo_002_a
nop
nop
decfsz _np_tiempo,1
goto tempo_002_a
bcf porta,ra0
movlw .39
movwf _np_tiempo
tempo_004_a
nop
nop
decfsz _np_tiempo,1
goto tempo_004_a
goto paso4 ;cierra el ciclo
;------------------------------------------------------------
; DATOS EN MEMORIA EEPROM
;------------------------------------------------------------
org 0x2100
data 0xff
data 0xff
-----------------iden
End
Yo diría: se puede pero es una locura meterse en semejante trabajo. Y que hacerlo, sin cometer errores es casi imposible. El NIPLE me permitió hacerlo en menos de 1 minuto y seguro que no tiene errores, salvo que la transcripción del código de un bloque tenga un error y puede estar seguro que no es así porque los programas beta (beta: programa en revisión) se someten a innumerables pruebas realizadas por diferentes personas.
¿El NIPLE es gratuito? La versión utilizada para generar nuestro programa es un demo gratuito por un tiempo considerable que seguramente será suficiente para que Ud. compruebe su utilidad.
3.5 CONCLUSIONES
¿Esta serie de artículos ya está terminada? No, hasta ahora tenemos un PIC16F84A virgen. Si lo ponemos en el circuito, el osciloscopio no tendrá salida alguna.
Las razones son dos: una es una imposibilidad física. Es que el programa que hicimos está dentro de la PC o en un pendriver pero la PC no tiene ningún conector para ningún tipo de micro. La segunda razón es una imposibilidad que podríamos llamar "de lenguaje" La PC habla un lenguaje de programación diferente al lenguaje que habla el PIC. Es decir que aunque se puedan interconectar no se entenderían.
Justamente en la próxima entrega vamos a explicar cómo zanjar estas diferencias físicas y de lenguaje. Ud. se preguntará, ¿pero de cualquier modo no voy a poder probar el proyecto porque no tengo osciloscopio?.
No se preocupe que vamos a modificar el proyecto por programación para que Ud. pueda oír lo que no puede ver e intentaremos que pueda ver la salida en un monitor.
PROPAGANDA
Ya está en venta el segundo tomo de "La Biblia del PIC con NIPLE" que es la herramienta más idónea para simplificar el tema de los desarrollos de proyectos con microprocesadores.
El segundo Tomo, de unas 130 páginas contiene 4 proyectos completos, que con simples modificaciones del programa se multiplican a muchas más. Cada proyecto contiene el circuito del mismo, dibujado en el programa simulador Proteus y/o Multisim con la explicación de para qué sirve cada componente y como se calcula. La simulación del mismo, con explicaciones sobre donde conectar el instrumental y como analizar los oscilogramas y las tensiones continuas. También le damos el dibujo de la plaqueta de circuito impreso y los planos e indicaciones de armado y de carga del programa. En cada proyecto de cualquier tomo, vamos a seguir el mismo criterio con respecto a las facilidades que le entregamos para armar los proyectos completos. El primer proyecto del tomo 2, es para controlar el encendido y apagado de un motor, utilizando una llave con retención. En realidad el proyecto es una excusa para practicar el ingreso de datos a un PIC.
El segundo cumple la misma función que el primero pero lo hace utilizando un solo pulsador y usando al programa para retener la condición del motor (funcionando o detenido). No hace falta indicar que ya es un proyecto utilizable en electrónica industrial, adaptándole un contactor.
El tercer proyecto, también sirve para controlar un motor pero con marcha hacia adelante, hacia atrás y con cambio de velocidad.
El cuarto proyecto tiene múltiples usos y ya es un viejo conocido de los reparadores del mundo de habla Hispana. Es el famoso EVARIAC, que reemplaza y con ventajas al clásico VARIAC electromecánico de los cuales la mayoría ya están rotos, por ser un instrumento de corta vida, que sufre el desgaste mecánico.
En todos los casos le entregamos los archivos completos para el armado y los diseños de las plaquetas inclusive el archivo del PIC del EVARIAC que todos me pedian y que nunca entregamos.
Si vive en la argentina solo ingrese en www.picerno.com.ar busque la caratula igual a la de la última página y pulse en comprar ahora. Podrá pagar por todas las opciones de Mercado Pago siguiendo las instrucciones de pantalla. Si vive en el exterior puede comprarlo por Paypal, pero enviando además un mensaje a www.picerno.com.ar en "contactenos" para indicarnos que desea comprar.
Ud. recibirá los eBook por correo electrónico dentro de las 24 horas. SALIR Más DISEÑANDO CON PICS
|
|
|
|
MAPA DE LINKS: INICIO - QUIENES SOMOS - ENTRETENIMIENTO - CONTACTENOS TV: TRC - LCD - Plasma - LED - Smart - OLED SOLDADURAS: SMD - BGA - Maquinas de Rebaling TALLER: Puntas de prueba Sonda de RF - Punta de prueba BEBE - Punta de prueba Filtro Pasabajo - Instrumentos Fuentes - Instrumentos Evariac - Instrumentos SuperEvariac - Instrumentos Varios AUDIO: Amplificadores Analogicos - Amplificadores Digitales - Bafles Caseros MANUALES: TV TRC - TV LCD - TV Plasma - TV LED - SmartTV - TV Oled - Fuentes de TV - T-COM - Driver de LED - Inverters PROGRAMAS: Simuladores de Circuitos Multisim - Simuladores de Circuitos Livewire - Simuladores de Circuitos Proteus - Programas para PICs y memorias Ram MICROS: Diseñando con PICS 1 - Diseñando con PICS 2
Ingeniero Alberto Picerno - Av. 2 de Abril 1140 - Burzaco - Buenos Aires - Argentina - Tel: (011)3974-4393 |
Diseño y Hosting RCH | ||
rch.com.ar - redcomser.com.ar |