martes, 1 de septiembre de 2015

Montando un osciloscopio de ~0.1MHz, Dso138

Saludos de nuevo, en la presente entrada voy a evaluar mi última e impulsiva adquisición electrónica. Se trata de un pequeño osciloscopio digital portátil de un solo canal, el modelo DSO130 de JYE Tech, presentado en forma de kit para ensamblar uno mismo.

image

De antemano hay que decir que no es para nada un osciloscopio profesional pero, dado su bajo coste (~25$), es una muy buena opción para estudiantes e iniciados entusiastas que desean conocer el funcionamiento y limitaciones de estos aparatos sin dejarse un riñón por el camino. Un decente DSO (Digital Storage Oscilloscope) económico no cuesta menos de 300€. De cualquier forma, si conseguimos montarlo con éxito, tendremos un osciloscopio funcional para medir señales mínimamente limpias con un ancho de banda de hasta unos 100KHz, llegando a ser una práctica herramienta para “diagnosticar” algunos equipos de audio analógico, fuentes de alimentación conmutadas de baja frecuencia, transceptores IR, etc.

Dada su popularidad, han salido muchos clones del original DSO138, precisamente yo adquirí uno de ellos sin saberlo, así que debéis fijaros bien donde lo compráis. En la web del fabricante explican como detectar los fakes. Desgraciadamente para los de JYETech, debo deciros que al menos mi copia china sí funcionó. Problemas: Tuve que cambiar un condensador variable muy desviado, por lo demás, todo medía dentro de rangos admisibles. Sinceramente, si podéis ir a por el original, eso que os ahorraréis, no vendrá de 5$.

No voy a contar nada del proceso de montaje porque no entraña mayor dificultad y está muy bien documentado en las instrucciones del fabricante. Además, los componentes SMD (sobre todo el pequeño microcontrolador STM32) ya vienen soldados. Así que, alguien con experiencia en soldadura electrónica, en una tarde podría tenerlo completamente montado. Si se está empezando, bastará con dedicarle un poco más de paciencia y cuidado. Nota aparte, sé que es apasionante esto de soldar pero… proteged los pulmones.

  • Descripción y características:

El cerebro del osciloscopio es un microcontrolador STM32 F103 con una CPU ARM Cortex-M3 trabajando a 8MHz. Este se encarga de manejar todas las funciones del osciloscopio, desde la conversión analógico a digital de la señal hasta el almacenamiento y ejecución del programa del osciloscopio y la salida por pantalla.

Kit-Review-JYE-Tech-DSO138-Digital-Storage-Oscilloscope-tronixstuff-8

El monitor es una pequeña pantalla TFT LCD retroiluminada (ILI9341) de 2.4 pulgadas y resolución 320x240px.

IMG_20150901_054024 (1)

En cuanto a los controles, tenemos 3 pequeños conmutadores deslizantes de tres posiciones o vías (throws) y dos polos (poles) cada uno (2P3T) y 5 pulsadores NO (normally open):

Switch 1: Acoplamiento - GND, AC, DC
Switch 2: Sensibilidad 1 - 1V, 0.1V, 10mV
Switch 3: Sensibilidad 2 - X5, X2, X1

Tales controles te permiten cubrir el rango de 10mV/div hasta 5V/div (50Vpeak máximo). Un conmutador giratorio hubiese sido más cómodo pero, claro, también más caro.
Como se ha dicho, cada conmutador tiene 2 polos, uno para tratar con la propia señal y otro para informar al microcontrolador en que posición se encuentra. De esta forma la pantalla siempre muestra la sensibilidad y el acoplamiento seleccionados.

En cuanto a los pulsadores, funcionan llevando a masa diferentes puertos del micro y su operación es intuitiva, no me extenderé. RESET: para reiniciar el microcontrolador y con ello al osciloscopio. SEL: Selección de las diferentes funciones en pantalla. + y –: Modificación de parámetros seleccionados. OK: Pausa imagen, tara offset, muestra mediciones, etc.

En cuanto a la base de tiempos o división horizontal se pueden seleccionar desde 500s/div hasta 10us/div, cubriendo así todo su ancho de banda.

El fabricante anuncia un ancho de banda de hasta 200kHz, no obstante, tomando sólo 1Msps (muestras por segundo) y sin técnicas de muestreo más avanzadas, no alcanzaremos más de 100kHz de manera estable y sin aliasing o falsas frecuencias. Otra cosa sería tratar con señales senoidales puras/ideales que, según el popular teorema Nyquist-Shanon, nos daría para reproducir hasta 500kHz, algo imposible en la práctica debido al ruido e imperfecciones propias de toda señal que generarán infinitos armónicos. Así que, siguiendo una regla bastante usual en la industria, podremos trabajar con un mínimo de 10 muestras por ciclo o, en este caso, ≤100kHz.

Continuando con las prestaciones, este DSO tiene una memoria para 1024 muestras. Bastante limitada, aunque puede ser suficiente para registrar cortos eventos aislados o para desplazarse por un tramo de alguna caprichosa forma de señal.

Como todo osciloscopio que se precie, cuenta con una salida auxiliar de onda cuadrada a 1kHz como señal de prueba (generada por el propio microcontrolador), muy útil para calibrar y compensar la pequeña capacitancia de las sondas mediante los dos condensadores variables (C4 y C6 en la placa) y el propio que incluya la sonda.

La precisión vertical, según el fabricante, es de un 3% de la escala vertical seleccionada, bastante cierta según las pruebas que he podido realizar. Sobre todo, tras una modificación planteada por un usuario en un foro (MorganFlint AnalogGround MOD) que reduce a menos de la mitad el ruido en la señal generado por el propio microcontrolador.

 image
Analog Ground MOD, que además, también es una recomendación del datasheet del μC.

  • Cómo funciona? (ayuda seguir el circuito incluido en el manual)

La señal analógica de entrada es tratada mediante un circuito integrado TL084 el cual contiene 4 amplificadores operacionales. Su primera etapa actúa como seguidor, justo tras la selección del acoplamiento (GND, DC, AC) y el atenuador de la señal de entrada (1x, 0.1x, 0.01x). A continuación, le sigue otro atenuador pasivo (selección 1x, 2x, 5x) y una segunda etapa del TL084 que proporciona una ganancia de 1.7 hacia la entrada de un Conversor Analógico a Digital (ADC) del microcontrolador (la ganancia se ha aumentado de 1.7 a 7.7 en la última versión v060, R11 pasa de 1.5K a 150Ω). Tras todo este tratamiento, la señal analógica se ha introducido al ADC con un rango dinámico entre 1.75-1.59V (1.99-1.35v en la última versión) y un voltaje de referencia de 1.67V.

Por otro lado, la señal del disparador (trigger), que permite sincronizar cada trazado de la señal registrada superponiéndola de forma estacionaria en pantalla, se genera mediante una tercera sección del mismo TL084, usado como comparador, cuyo valor umbral de disparo viene generado por el propio microcontrolador. La cuarta sección del TL084 no se utiliza.

La fuente de alimentación consiste, por un lado, en un par de clásicos reguladores de tensión positiva dispuestos en cascada para obtener los voltajes positivos (+5v y +3.3v). Por el otro lado, y para generar la línea de tensión negativa requerida para la alimentación simétrica del TL084 (-5v), se dispone de un convertidor reductor (inverting buck-boost converter) de tensión negativa. Este se conforma mediante el conjunto de transistor, diodo, bobina y condensador (ver circuito del manual), y otra fuente de onda cuadrada generada por el propio microcontrolador que: conmuta dicho transistor a 18kHz, cargando y descargando la bobina e invirtiendo en cada descarga su polaridad hacia el condensador. Igualmente, esta línea de -5v se acaba con otro regulador/estabilizador, en este caso de tensión negativa, para obtener un voltaje continuo sin el rizado de la conmutación.

  • Experiencia:

He conseguido medir señales complejas de hasta 100kHz de alguna fuente conmutada, aunque con dificultades para estabilizar el trigger y con un significativo aliasing.

Asimismo, también se produce un esperable aliasing en las escalas de tiempo más grandes debido a la limitada memoria de muestras disponible y a que, por esa misma razón, el osciloscopio reduce mucho la tasa de muestreo para poder mostrar una traza de pantalla completa. No obstante, con un poco de experiencia esto es fácilmente detectable y basta con reducir la escala de tiempo para volver a reproducir la señal original.

A pesar de sus limitaciones, el aparatito me ha sorprendido bastante ya que lo compré planteando como un reto el mero hecho de hacerlo funcionar y finalmente puede haber resultado en una herramienta funcional, con sus limitaciones, pero muy didáctica.

IMG_20150901_052615

  • Complementos:

El osciloscopio se puede alimentar de 8 a 12vcc, con un consumo de 160-190mA (más de 12v nos quemarán el transistor Q1 del buck, comprobado en un descuido, xD). Para que sea lo más portátil posible, lo voy a alimentar con una batería recargable de Li-Po 3.7v y un circuito elevador de tensión, DC-DC Step-Up (ambas cosas por ~6€ en el mercado chino). Además, el hecho de alimentarlo desde una batería (o mediante aislamiento galvánico≡verdadero transformador), nos evitará los fatales cortocircuitos a través de masa.

Para medir señales débiles y sensibles al ruido es mejor utilizar alguna sonda específica para osciloscopio (las hay de muchos tipos/precios), ya que lo que viene en el kit son unas meras pinzas de cocodrilo. Aparte, tampoco estaría de más apantallar el circuito de la entrada analógica hasta el amplificador operacional.

Tenía previsto introducirlo en alguna elegante caja pero finalmente se me apoderó y me conformé con fijarlo a una placa cortada a medida para protegerlo y, sobre todo, evitar provocarle cortocircuitos con cualquier herramienta metálica suelta por la mesa de trabajo.

IMG_20150901_060346Osciloscopio terminado junto a su batería LiPo de 3.7v y módulo elevador de tensión conmutado para llegar a los 9v necesarios.

Acabando, ya en modo experto, la misma placa también podría aprovecharse como tarjeta de desarrollo y aprendizaje del microcontrolador STM32, ya que incorpora los puertos necesarios para su programación y depuración así como un puerto USB, no empleado en el osciloscopio.

Para aquellos que se animen, espero que disfrutéis con su ensamblaje, y si no os funciona a la primera, no desistáis, en el foro oficial ya se ha encontrado solución para los fallos de montaje más comunes. Ya contaréis la experiencia.

 

Nota (1/2016): El fabricante ha sacado una nueva versión del DSO138 (13803K/04K), cuya única diferencia con el anterior es el valor de una resistencia (R11: 1.5K –> 150Ohm) y nuevo firmware (v.050, v.060…). Recordad cambiar esa resistencia R11 para actualizar firmware. Parece que en esta versión han logrado reducir significatívamente el ruido, aprovechando más el margen dinámico del convertidor ADC del microcontrolador y mejorando así la SNR sustancialmente. Ver web del fabricante y manuales para actualizar firmware.


Enlaces de interés:

http://www.jyetech.com/Products/LcdScope/e138.phpWeb del fabricante. Manuales, firmwares, foros…
http://forum.banggood.com/forum-topic-61279.htmlModificación propuesta por un usuario para minimizar ruido (Analog Ground MOD).
http://skiras.blogspot.com.es/2014/05/entendiendo-los-osciloscopios-i.htmlAlgún concepto básico de osciloscopios.
https://www.youtube.com/watch?v=xaELqAo4kkQEEVblog. Cómo no “volar” (literalmente) tu osciloscopio.