OSCILOSCOPIO DIGITAL CON PIC

(Por CARCASS -Año 2007-)

Introducción:

Este proyecto tiene como objetivo el diseño de un osciloscopio didáctico que cumpla con las siguientes características:

- Muy bajo costo.

- Fácil de armar.

- Fácil de usar.

- Impedancia de entrada estándar (1Mohm // 20pF)

- Ancho de banda desde continua hasta mas de 50KHz

- 2 canales.


Definiendo el proyecto:

Para poder cumplir con la premisa de bajo costo tengo que apuntar primero al componente mas caro de un osciloscopio de estas características, que es la pantalla.

Por este motivo se descarta cualquier tipo de osciloscopio analógico, ya que un cañón de osciloscopio excede en varios ordenes de magnitud al costo total que pretendo alcanzar.

Una forma de reemplazar al tubo es utilizar una pantalla de TV o monitor, compensando por medio de circuiteria la no linealidad en el comportamiento de las bobinas del yugo a las distintas frecuencias. Pero en este caso el circuito dependería de la pantalla que se utilice y tendríamos un osciloscopio difícil de armar, relativamente caro, voluminoso, de muy poco ancho de banda, etc.

Por estos motivos es que opté por un osciloscopio digital.

Como utilizar un display LCD grafico puede ser un poco costoso y encarece también la circuiteria, la opción definitiva consiste en aprovechar el hecho de que todo técnico o estudiante de electrónica tiene una PC. Entonces todo el problema de graficar la señal queda resuelto.

En la siguiente figura podemos ver un diagrama en bloques del osciloscopio propuesto.

La señal que queremos medir entra al SELECTOR / AMPLIFICADOR, el cual acondiciona la señal a los niveles necesarios para la medición que realiza el conversor A/D del microcontrolador PIC16F873A.

El circuito de TRIGGER se encarga de amplificar la señal hasta la saturación, obteniéndose una onda de salida casi cuadrada y en sincronismo con la señal del canal CH1, esta señal entra al micro por una entrada tipo schmit-trigger para lograr un mejor pulso de disparo.

El PIC recibe los datos de configuración y envía los valores medidos a la PC, por medio de una conexión RS232 (Puerto Serie).

La PC transforma los datos de las mediciones en formas de onda que aparecen en la pantalla del monitor.

CIRCUITO SELECTOR / AMPLIFICADOR

La idea original era utilizar llaves analógicas para seleccionar el canal CH1 o CH2 y para conmutar la resistencia de realimentación de un amplificador operacional, obteniendo las distintas ganancias necesarias. Pero al descubrir el MCP6S28 de MICROCHIP, reemplacé toda la etapa de entrada por este circuito amplificador de ganancia seteable y 8 entradas multiplexadas, que además trabaja con fuente simple de 5V y salida Rail-to-Rail.

Características del MCP6S28:

• Entradas multiplexadas: 8 canales
• 8 Ganancias Seleccionables: +1, +2, +4, +5, +8, +10, +16 o +32 V/V
• Comunicación Serie (SPI™)
• Rail-to-Rail Entradas y Salidas
• Offset: ±275 µV (max)
• Ancho de Banda: 2 to 12 MHz (typ)
• Bajo Consumo: 1.0 mA (typ)
• Fuente Simple: 2.5V to 5.5V

Como todo el circuito trabaja a 5V, creamos una masa ficticia a 2.5V por medio de R2, R3, C5 y C4. Esta masa es la que esta presente en las puntas del osciloscopio.
Para aprovechar las 8 entradas del selector, se les dan las siguientes aplicaciones:

Ent 1 = CH1 DC
Ent 2 = CH1 AC
Ent 3 = CH1 DC (atenuado)
Ent 4 = CH1 AC (atenuado)
Ent 5 = CH2 DC
Ent 6 = CH2 AC
Ent 7 = CH2 DC (atenuado)
Ent 8 = CH2 AC (atenuado)

De esta forma puedo tener control por soft de lo que seria la perilla (AC-GND-DC) y extender el rango de amplitud por medio de las entradas atenuadas.

Esta disposición se ve en la siguiente figura.


CIRCUITO DE DISPARO

En una breve búsqueda de amplificadores operacionales, no encontré ninguno que tenga la ganancia y el ancho de banda necesarios, y que trabaje a 5V. Por lo que el circuito de trigger lo hice con una etapa colector común seguida de dos etapas emisor común, como se ve en la siguiente figura.


La resistencia de emisor de cada etapa puede ser cortocircuitada (para alterna) por medio de los capacitores de emisor, estos capacitores están puestos a masa o a alta impedancia por el PIC.
De esta forma se logran 4 ganancias que nos dan 4 niveles de trigger, seteables por soft.


CIRCUITO COMPLETO


En la figura se pueden diferenciar las distintas etapas:

- Fuente de alimentación con 78L05.
- Entrada y atenuador del canal 1
- Entrada y atenuador del canal 2
- Selector y Amplificador con MCP6S28
- Circuito de disparo con BC337
- Interface RS232 con MAX232
- Microcontrolador PIC 16F873A

PRINCIPIO DE FUNCIONAMIENTO

Aprovechando la velocidad y capacidad de cálculo de la PC, esta se encarga de establecer todos los parámetros necesarios para realizar la medición, mientras que el circuito eléctrico se encarga solo de medir la señal con los parámetros fijados por la PC.

Para medir señales de muy baja frecuencia (hasta 50 Hz), utilizo un sistema de medición que podemos llamar CONTINUO el cual funciona de la siguiente forma:

- Al producirse el disparo, comienza la secuencia de medición.
- Se toma una muestra de la señal de entrada y se envía a la PC.
- Transcurrido un tiempo T (depende de la base de tiempo) se toma una nueva muestra y se envía a la PC.
- Este proceso se repite hasta terminar de tomar las 250 muestras que se visualizan en pantalla.

(No confundir T con el periodo de la señal 1/F)

La ventaja de este método es que en tiempo real va apareciendo en pantalla cada muestra en el momento en que se produce.
La desventaja es que solo sirve para señales de muy baja frecuencia, ya que entre muestra y muestra se pierde tiempo enviando el dato a la PC.

En la siguiente figura se puede ver como son tomadas las muestras de una señal.


En el grafico las muestras aparecen distanciadas entre si unas 10 veces mas de lo que realmente están, esto es para que el grafico sea legible.

Para medir frecuencias de hasta 500 Hz utilizamos un sistema de medición que podemos llamar POR RAFAGAS o BLOQUES. El cual funciona de la siguiente forma:

- Al producirse el disparo comienza la medición.
- Se toma una muestra de la señal y se la guarda en la RAM del PIC.
- Transcurrido un tiempo T se toma una nueva muestra y se la guarda en RAM.
- Este proceso se repite hasta terminar de tomar las 125 muestras que entran en RAM (el resto de la memoria esta ocupada por variables).
- Terminada la medición, este bloque de datos es enviado a la PC (en este modo la PC “estira” las 125 muestras para que parezcan 250).

La ventaja de este sistema es que el tiempo que tarda cada dato en enviarse a la PC (por puerto serie a 57600Bauds) no interfiere con el tiempo T de la base de tiempo.
La desventaja es que la señal aparece en pantalla recién cuando la medición se completa, por lo que seria muy incomodo este método para medir señales de muy baja frecuencia (menos de 5 Hz).

Por encima de los 500Hz comienzan las limitaciones del microcontrolador, el conversor A/D puede tomar solo 50.000 muestras por segundo aproximadamente (Se podría mejorar el proyecto utilizando un DSPIC de 1.000.000 m/seg, incrementando el costo).

Si la pantalla tiene 250 puntos horizontales de resolución (250 muestras completan el barrido), entonces un ciclo completo en la pantalla puede tener como máximo 50000/250 = 200Hz.
Aunque nos conformásemos con 50 muestras por ciclo, solo podríamos medir hasta frecuencias de 1 KHz.

Como un osciloscopio con ancho de banda de 1KHz no solo no cumple con los requisitos del proyecto, sino que prácticamente no sirve para nada, hay que utilizar algún método de medición un poco mas complejo que nos permita medir señales de mayor frecuencia.

Teniendo en cuenta que casi siempre medimos señales periódicas, podemos utilizar un sistema de medición llamado MUESTREO que nos permitirá trabajar con señales de mayor frecuencia, siempre que sean periódicas.

Este sistema funciona de la siguiente forma:

- Al producirse el disparo se inicia la medición.
- Transcurrido un tiempo T se toma la primera muestra y se envía a la PC.
- Una vez que el dato fue enviado, se espera un nuevo disparo.
- Al producirse el disparo, se espera un tiempo igual a 2T para tomar la segunda muestra.
- Una vez que el dato fue enviado, se espera un nuevo disparo.
- Al producirse el disparo, se espera un tiempo igual a 3T para tomar la tercera muestra.
- Este proceso se repite hasta que se tomaron las 250 muestras necesarias (250T)

Estas 250 muestras fueron tomadas de distintos ciclos, pero gracias a la sincronización de los disparos y a la periodicidad de la señal, se reconstruye la señal con la forma de onda correcta.

Dependiendo de la frecuencia que se este midiendo y del valor de T, las muestras pueden ser de ciclos consecutivos o de ciclos separados entre si.

En la figura se observa como funciona la medición por muestreo de una señal.


La ventaja de este sistema es que se pueden medir señales de mas de 20KHz.
La desventaja es que por encima de los 20KHz se empieza a notar mucho la imprecisión del trigger.


IMPRECISION DEL TRIGGER

El circuito de disparo tiene un excelente desempeño hasta frecuencias de mas de 1MHz, pero como para el sistema de muestreo se esta utilizando la llave del conversor A/D del PIC, la apertura o cierre de esta llave la realiza el PIC por soft produciéndose un defasaje entre el momento en que el PIC detecta el disparo y el momento en que realmente se produjo.

Si el micro trabaja con cristal de 20MHz tenemos un periodo de 0.05uSeg que nos da un tiempo de instrucción de 0.2uSeg (Utiliza 4 ciclos de clock por instrucción).

A su vez el soft usa 2 instrucciones para detectar el flanco, por lo que el defasaje puede ser de hasta 0.4uSeg.

Esto significa que una muestra puede adoptar el valor real o el valor que la señal tendrá 0.4useg después (en el peor de los casos).

Si en una señal de 1 KHz tomamos dos muestras separadas entre si 0.4uS no notaremos diferencia apreciable, ya que su periodo es de 1000uS. Por lo tanto la señal se ve nítida en la pantalla.

En cambio si a una señal de 50 KHz le tomamos las mismas dos muestras, se notara diferencia, ya que su periodo es de 20uS.

En las siguientes figuras se puede ver una señal (no senoidal) de 30KHz con y sin error de sincronización.

Esta limitación para sincronizar el disparo en altas frecuencias hace que en la pantalla la señal parezca tener algo de ruido, que se incrementa al aumentar la frecuencia. Para señales de alrededor de 200KHz la imprecisión es tan grande que no se puede medir, excepto con el uso de aproximación por estadística.

APROXIMACION POR ESTADISTICA

Una de las ventajas de utilizar una PC como pantalla de osciloscopio es que podemos acondicionar los datos antes de mostrarlos, esto sumado a la periodicidad de la señal nos permite utilizar este método.

Sabemos que en altas frecuencias cada muestra fluctúa entre un rango de valores cuyo valor promedio es el valor real, entonces si nuestra pantalla completa “ruidosa” la promediamos punto a punto con la pantalla que desapareció un instante antes, logramos una imagen bastante mejorada.

Si a una nueva pantalla ruidosa la promediamos con las anteriores 2 pantallas, se logra una imagen muy mejorada.
Por ultimo, si tenemos un buffer en memoria con la información de las ultimas 10 pantallas, la imagen que se logra es muy buena incluso para frecuencias de 200 KHz.

Una variante de este buffer es el buffer realimentado, en el cual cada nuevo valor es promediado con el buffer antes de ser guardado en el mismo. Lográndose ver señales de hasta 500KHz.

La ventaja de este método es que minimiza el error de imprecisión del trigger y logra una imagen limpia aumentando el ancho de banda del osciloscopio.
La desventaja es que la señal puede tardar hasta 3 segundos en verse bien en pantalla y hasta 15 segundos para el caso del buffer realimentado. (Por supuesto la señal a medir tiene que ser periódica durante ese tiempo).

En la siguiente figura podemos ver una señal rectangular asimétrica de 100KHz, sin buffer (a la izquierda) y con buffer (a la derecha).

Aunque esté muy lejos del rango de frecuencias medibles de este osciloscopio, también podemos “ver” una señal cuadrada de 1MHz, de la cual se pierden casi todos los armónicos y por eso se ve triangular. Igualmente es un buen ejemplo de como funciona el sistema de estadística en frecuencias muy altas e inmedibles de otra forma.

La señal que se ve a la izquierda en la siguiente figura, se encuentra en constante movimiento a causa del gran error de sincronismo que se produce a estas frecuencias, mientras que la de la derecha se mantiene estática en la pantalla y bien definida, gracias al buffer realimentado.

EL SOFT DE PC

Uno de los detalles mas llamativos del proyecto es la parte gráfica, ya que esta todo trabajado sobre la base de una foto de osciloscopio.

La señal medida aparece sobre la pantalla del osciloscopio de la foto y las perillas se pueden mover tocando directamente sobre ellas con el botón derecho o izquierdo del mouse.

Todos los movimientos de botones y perillas están hechos con superposición de fotos.


AJUSTE DE LA PANTALLA

Por medio de las perillas de INTEN y FOCUS se puede ajustar la forma en la que queremos que se vea el trazo, de forma similar a un osciloscopio analógico.

Con la perilla de SCALE se puede seleccionar el fondo donde se visualiza la imagen, desde la imagen de la foto real hasta un fondo completamente negro, pasando por distintos niveles de brillo de la cuadricula.


BOTON DE ENCENDIDO

Con este botón se enciende el osciloscopio y se lo apaga, al apagarlo se mantiene en pantalla la ultima medición (función HOLD).

Cuando se encuentra encendido, está constantemente enviando el comando de “Realizar medición” al circuito y graficando los datos recibidos.

PALANCA AC-GND-DC

Con esta se elige ver la señal tal cual es (DC), o solo su componente de alterna (AC).
También puede ponerse en la posición GND para ver el valor de masa y ajustar la altura.

Al mover esta palanca se configura el canal del selector del MCP6S28.
(Cada vez que alguna perilla es modificada se envía el dato al circuito para que se ajuste con los nuevos parámetros de medición).

VOLT / DIV

Con esta perilla se ajusta la ganancia del MCP6S28 y/o el tipo de entrada normal o atenuada.


POSITION

Manteniendo presionado el botón izquierdo del mouse sobre esta perilla y deslizando hacia arriba y hacia abajo se ajusta la posición vertical de la señal.

Esto se logra porque el conversor A/D del PIC es de 10 bit, de los cuales se utiliza solo una franja de valores de 8 bit que son enviados a la PC, con la perilla Position se indica la posición donde debe ubicarse esta franja.

De esta forma sin variar ningún valor analógico de tensión de referencia, se logra un efecto real de movimiento vertical. (no se mueve una imagen de 8 bit en la pantalla, sino que se recorre una imagen de 10bit, que es muy distinto)

TIME / DIV

Con esta perilla se seleccionan los distintos valores de la base de tiempo, según la posición se envía un juego de dos valores que configuran el “T” utilizado por el circuito, por limitaciones de hard la base de tiempo del circuito puede tener errores de hasta un 5% que son fácilmente compensados por soft, estirando levemente la grafica para que coincida exactamente con la cuadricula y desaparezca el error.

Entre el fino ajuste que se realiza por soft y la base de tiempo controlada por cristal, se logra una excelente precisión en la medición de periodos de las señales.


DISEÑO DEL IMPRESO

Siguiendo por el camino del bajo costo del equipo y fácil armado, se hizo con componentes de inserción (No SMD) y la placa en simple faz.
Primero se realizo el esquemático en EAGLE y después se acomodaron los componentes en una placa de 100mm por 50mm (tamaño estándar comercial de placa virgen) para evitar andar haciendo cortes en la placa, que pueden quedar desprolijos.
Por querer hacer el ruteo en simple faz, el AUTORUTER no llega al 100% y además las pistas quedan muy pegoteadas y poco estéticas, lo que dificulta la fabricación casera de la placa aumentando la posibilidad de fallas.
El autorouter deja una placa incompleta y de poca calidad, la cual llevaría mucho tiempo corregirse manualmente (como se ve en la próxima figura).


Para ganar tiempo y reducir la posibilidad de fallas, se hace un nuevo ruteo totalmente manual de la placa. Quedando mucho mas prolija y ruteada 100% como se ve en la siguiente figura.

Así queda la simulación 3D de la placa.

Descargar ASM .................Descargar SOFT DE PC

Descargar PCB (BRD) ...........Descargar esquematico