Inicio Instrumentación Técnicas de depuración con osciloscopios

Técnicas de depuración con osciloscopios

Los clientes me dicen a menudo que no sabían que su osciloscopio incorporaba tal o cual capacidad. Incluso funciones tan sencillas como la compatibilidad con USB para las tarjetas de memoria puede resultar sorprendente. No obstante, algunas funciones de los osciloscopios pueden ayudar a los usuarios a resolver sus problemas de depuración y, si bien hay funciones que llevan varios años en el mercado, cabe la posibilidad de que usted las desconozca.

En este artículo abordaremos algunos problemas de diseño habituales y explicaremos cómo utilizar características específicas de los osciloscopios para depurar esos problemas. 

 

Glitches poco frecuentes

 

La velocidad de actualización es un aspecto fundamental de un osciloscopio que se utiliza principalmente para depurar diseños nuevos. De hecho, quizá sea la característica más importante, puesto que le permite capturar y ver eventos poco frecuentes. Básicamente, la velocidad de actualización es la rapidez con la que un osciloscopio puede disparar, capturar datos de formas de onda y, a continuación, procesar esos datos para mostrarlos en la pantalla del osciloscopio. Cuanto más rápida es la velocidad de actualización, menor es el “tiempo muerto” entre disparos. Esto incrementa en gran medida sus posibilidades de capturar eventos poco frecuentes y también mejora la capacidad de respuesta del osciloscopio. Los errores poco frecuentes son los problemas más complicados de depurar porque, por definición, aparecen en contadas ocasiones. En este ejemplo podemos observar un glitch muy poco habitual (Figura 1). Gracias a su velocidad de actualización de 1 millón de formas de onda por segundo, la arquitectura MegaZoom IV de los osciloscopios de la Serie 4000 X le permiten ver el glitch, de media, una vez cada segundo. Con las velocidades de actualización más lentas propias de esta clase de osciloscopios (de dos órdenes de magnitud a cuatro órdenes de magnitud más lentos), probablemente tendría que esperar entre 10 segundos y varios minutos o incluso horas para ver este glitch. 

Un glitch poco frecuente no resulta fácil de depurar si el osciloscopio oculta el problema real a causa de los tiempos muertos.  Ahora que nuestra rápida velocidad de actualización nos ha permitido capturar e identificar este glitch, podemos intentar aislarlo. Por la forma de la señal, convendría utilizar un disparo de anchura de pulso. No obstante, primero hemos de establecer cuál es la anchura de pulso aproximada. Si encendemos el modo de visualización de persistencia infinita del osciloscopio, podemos ver un registro de todas las formas de onda capturadas con anterioridad en la pantalla del osciloscopio La persistencia infinita y una alta velocidad de actualización son características perfectamente complementarias. La persistencia infinita únicamente resulta útil si la velocidad de actualización es lo suficientemente rápida para mostrar esos eventos poco frecuentes (a no ser que esté dispuesto a dejar su osciloscopio de baja velocidad de actualización funcionando durante varias horas en busca de un glitch). Utilizando los cursores, podemos medir la anchura del glitch (~30 ns) 

Puesto que ya conocemos la anchura del glitch, aislémoslo utilizando el modo de disparo de anchura de pulso del osciloscopio. Los disparos de anchura de pulso le permiten determinar si el osciloscopio debe buscar un pulso positivo o negativo y si los pulsos están por encima, por debajo o dentro de un rango temporal específico. A continuación podemos ver cómo aísla el osciloscopio los eventos de disparo sobre los pulsos positivos que tienen una anchura inferior a 30 ns 

Por último, podemos documentar nuestro glitch capturado y adjuntarle una anotación que describa qué hemos encontrado.

Muchas veces, la simple detección de un glitch poco frecuente es el problema más difícil. Sin embargo, cuando lo tenemos identificado, lo ideal es poder aislarlo. Esta tarea puede resultar más sencilla utilizando la función de persistencia infinita, los cursores y un disparo avanzado.

 

Ejemplo de depuración con interfaz serie

 

La interfaz serie de baja velocidad se utiliza muy a menudo en los diseños de hoy en día. Sin embargo, crea más problemas de los que mucha gente se imagina. En el ejemplo siguiente tenemos un error de paridad poco frecuente en el lado de transmisión de un enlace RS-232. 

Tal como hemos mencionado anteriormente, una de las ventajas de la arquitectura MegaZoom IV es su rápida velocidad de actualización. No obstante, no solo es rápida en el modo de ejecución normal, sino que mantiene su rapidez cuando se activan funciones como la decodificación serie o los canales digitales. Esto es lo que llamamos una velocidad de actualización “sin concesiones”. Esta velocidad de actualización tan rápida es lo que nos permite ver el error de paridad poco frecuente. 

Sin una velocidad de actualización rápida ni una decodificación serie basada en hardware, es probable que este error de paridad hubiera pasado totalmente desapercibido. Identificar el error es el primer paso, ahora tenemos que dispararle. 

Al utilizar las capacidades serie del osciloscopio de la Serie 4000 X, automáticamente el disparo del osciloscopio pasa a ser capaz de “discriminar protocolos”, por lo que le permite disparar sobre tramas o paquetes específicos que se envían al bus, y también sobre errores. En este caso, establecemos el disparo como “Error de paridad de Rx o Tx”. 

Para conseguir una visualización de mayor nivel de las tramas del bus, podemos activar la visualización en forma de lista.

La representación tabular de la lista ofrece una vista de más alto nivel de la totalidad de las tramas y los paquetes que se producen en el bus; se parece mucho a lo que vería con un analizador lógico o de protocolos. Asimismo, le permite ver los datos desde la capa física hasta la capa de protocolo.

El próximo paso que posiblemente aplique para depurar errores de paridad es ver la frecuencia con la que se producen. Por su naturaleza, los buses serie funcionan a “ráfagas”, es decir, se producen prolongados periodos de reposo entre paquetes/tramas. 

En consecuencia, la valiosa memoria de adquisición de los osciloscopios se malgasta en digitalizar periodos de reposo mientras se intenta capturar varios paquetes a lo largo de un prolongado intervalo temporal. Por suerte, el osciloscopio de la Serie 4000 X cuenta con un sistema de memoria inteligente que incorpora lo que se llama memoria segmentada, lo cual nos permite indicarle al osciloscopio qué es exactamente lo que queremos que capture. 

La memoria segmentada nos permite capturar un gran número de tramas con el error de paridad, de modo que podemos analizar la relación temporal de los errores para determinar su posible causa. Para ello, activaremos la memoria segmentada y capturaremos 25 de las tramas con error de paridad 

Esos 25 segmentos se producen en un periodo de 11 segundos. Con un osciloscopio con memoria tradicional, es decir, sin memoria segmentada, serían necesarias más de 50 M muestras de memoria. Puesto que cada segmento está registrado en función del tiempo, podemos recorrerlos para ver en qué momento se han producido en relación con el evento de disparo inicial. 

Otra característica potente es la decodificación de cada segmento para el usuario, por lo que se consigue una integración perfecta entre la memoria segmentada y la decodificación serie. Esta es otra muestra de cómo pueden combinarse las diferentes características del osciloscopio para aislar un problema en el enlace RS-232.

 

Problema de tiempo de subida lento

 

A veces puede producirse un tiempo de subida más lento de lo previsto. 

Para disparar de forma aislada solo en los flancos de subida más lentos, usaremos el disparo de tiempo de subida del osciloscopio de la Serie 4000 X. Para determinar dónde deberíamos establecer el disparo, tenemos varias opciones: podríamos ir ajustando lentamente la configuración del tiempo de subida de la especificación del disparo de tiempo de subida hasta obtener el evento de disparo deseado; podríamos colocar cursores sobre la forma de onda para medir el tiempo de subida manualmente (igual que en el primer ejemplo), o podríamos utilizar una medida automática y después observar las estadísticas de los peores casos (los valores mínimo y máximo) de esa medida en concreto. Para este ejemplo de medida, optaré por el método de la medida automática.

Las estadísticas aportan muchos detalles, entre otros, los tiempos de subida mínimo y máximo. Puesto que nuestro objetivo es disparar sobre el tiempo de subida más lento, deberemos prestar atención al tiempo de subida máximo que hemos capturado, que es de 126,4 ns

Ahora que sabemos a qué queremos disparar, podemos definir la especificación de disparo en el osciloscopio. Para ello, vamos al menú de disparo y seleccionamos el disparo de tiempo de subida/bajada. A continuación especificamos si estamos ante un flanco de subida o de bajada, y configuramos nuestros niveles para los cuales el osciloscopio determina el tiempo de subida/bajada. Después, buscaremos tiempos de subida superiores a 120 ns.

Ahora podemos ver cuántos de esos tiempos de subida más lentos figuran en el registro de la memoria profunda. Igual que antes, podríamos utilizar la memoria segmentada para capturar hasta 1.000 de esos tiempos de subida y recorrer uno a uno los eventos registrados en función del tiempo. Sin embargo, también podemos utilizar la capacidad de búsqueda acelerada por hardware del osciloscopio para encontrar e identificar con rapidez todos y cada uno de los flancos de tiempo de subida más lentos.

 El osciloscopio de la Serie 4000 X permite definir la condición de búsqueda de forma independiente o copiarla de la condición configurada para el disparo. Una vez definidos los criterios de búsqueda, el osciloscopio resalta cada condición “identificada” con un triángulo blanco, correlacionándola en el tiempo con la forma de onda capturada. 

A continuación podemos utilizar los mandos de navegación del panel frontal del osciloscopio o de la interfaz de usuario, para recorrer los 15 eventos que se han identificado.

 

Identificación de ruidos

 

A menudo puede encontrarse con una señal a la que se acopla una fuente de ruido desconocida. 

Un buen método para determinar la fuente de ruido es utilizar una transformada rápida de Fourier (FFT). Una FFT convierte la forma de onda de dominio de tiempo en un gráfico de dominio de frecuencia, lo que le permite ver los diversos componentes de la frecuencia con la señal capturada. 

En teoría, cabría la posibilidad de utilizar algo como una medida de frecuencia en ventanas a partir de la forma de onda de dominio de tiempo para intentar medir solo la frecuencia de la señal de ruido acoplada, pero quizá con esto no pueda ver todo el contenido de frecuencia de la señal.  Utilizando una FFT, podemos ver todo el contenido de frecuencia para identificar la fuente de ruido. 

 En la parte izquierda de la pantalla, puede ver los armónicos de la señal base. En la parte derecha de la pantalla, puede ver el contenido de frecuencia de la fuente de ruido. Si colocamos los cursores en la forma de onda de la FFT, podemos ver que el contenido de frecuencia va de 88 MHz a 106 MHz, justo dentro del rango de frecuencia de las ondas de radio FM. Es evidente que nuestro dispositivo sometido a prueba acopla contenido de frecuencias de radio FM. 

 

Nuevos métodos de depuración

 

Resulta interesante que para gran parte de lo que hemos analizado en este artículo utilizando uno de los modos de disparo avanzados del osciloscopio podríamos haber empleado una nueva tecnología llamada InfiniiScan Zone. InfiniiScan Zone, o simplemente “Zone”, le permite dibujar un cuadro en la pantalla para disparar sobre él con el osciloscopio. El osciloscopio de la Serie 4000 X incorpora esta capacidad como característica estándar. Básicamente, si puede ver algo, puede disparar sobre ello. La potencia de esta característica se ve todavía más acrecentada por la altísima velocidad de actualización del osciloscopio de la Serie 4000 X. Una velocidad de actualización rápida facilita la detección de anomalías que luego puede aislar utilizando el disparo de zona. En el caso de la señal con un tiempo de subida lento, podría haber dibujado un cuadro alrededor de la señal sobre la que deseaba disparar. 

Lo mismo podría haber hecho en el caso del error de paridad. Y también con el glitch poco frecuente del primer ejemplo de medida que hemos visto.  El disparo de zona es una característica magnífica cuando las condiciones de disparo son difíciles de configurar.  

Depurar diseños nuevos puede resultar difícil. Ver la causa de un problema suele ser complicado, pero todavía puede resultar más difícil aislar esos eventos. 

Como hemos visto, la combinación de una velocidad de actualización elevada con otras características excepcionales como el disparo de zona, la decodificación serie basada en hardware y el disparo avanzado de violaciones hace que el osciloscopio de la Serie 4000 X de Agilent sea único en el sector por lo que respecta a la depuración y la resolución de problemas de diseños, puesto que le permite identificar la causa raíz de los problemas de diseño de los circuitos correctamente y de forma más rápida.


Etiquetas
ociloscopio; oscilocopio