DPO4000: la depuración inteligente de los buses can, I2C Y SPI en sistemas embebidos



Aunque la transición de buses paralelo a buses serie en el diseño de sistemas embebidos conlleva muchas ventajas también añade retos a los que el diseñador debe enfrentarse. Con las herramientas tradicionales disponibles es difícil conseguir un disparo sobre el evento que se está buscando y puede ser casi imposible decir qué información está presente en la captura sólo con que mirar la señal analógica. Además, el proceso es largo y propenso a errores al tener que descodificar manualmente un período largo de la actividad del bus para diagnosticar los problemas. La serie DPO4000 (fig.1) lo cambia todo con su potente disparo y las capacidades de descodificación, búsqueda y marcación automática de los eventos definidos por el usuario.

Ejemplo de un caso de eliminación de errores en un bus SPI
Vamos a considerar el sistema embebido de la figura 2. En él, un bus SPI está conectado a un sintetizador, a un convertidor D/A y a algún dispositivo de entrada salida (I/O). El sintetizador está conectado a un oscilador controlado por tensión (VCO) que proporciona un reloj de 2,5GHz al resto del sistema. Se supone que el sintetizador es programado por la CPU en el arranque. Sin embargo, algo no está funcionando correctamente porque el VCO se queda atascado generando 3GHz. El primer paso para depurar este problema consiste en examinar las señales entre la CPU y el sintetizador para estar seguros de que las señales están presentes y no hay problemas de conexión física, pero tras el proceso de búsqueda no se encuentra ningún error. A continuación se decide echar un vistazo a la información real que es transmitida a través del bus SPI para programar el sintetizador. Para capturar la información de interés se ajusta el osciloscopio para que dispare sobre la señal de selección del sintetizador (SS) en el momento en el que pase a su estado activo y arranque el DUT (Device Under Test) con el objetivo de capturar los comandos de programación que le envía la CPU en ese momento.
La adquisición final se muestra en la figura 3.
El canal 1 (amarillo) representa la línea SCLK, el canal 2 (cian) la línea MOSI y el canal 3 (magenta) la línea SS. Para ayudar a determinar si estamos programando el dispositivo correctamente echaremos un vistazo a la hoja de datos del sintetizador. Los primeros tres mensajes en el bus se supone que sirven para iniciar el sintetizador, cargar el factor de división de la frecuencia y almacenar los datos. De acuerdo a las especificaciones, el último byte (carácter hexadecimal único) de las primeras tres transferencias debería ser 3, 0 y 1 respectivamente, pero estamos viendo 0, 0 y 0.
Una vez que se ha visto que todos los mensajes acaban en “0” nos damos cuenta de que hemos cometido uno de los errores más comunes que ocurren en SPI, la programación de las palabras de 24 bits en orden opuesto al escribir el programa. Un cambio rápido en el programa da lugar a la adquisición que se muestra en la figura 4 donde el VCO ya está funcionando correctamente a 2,5GHz. En el ejemplo de arriba utilizamos un simple disparo sobre el SS activo. La completa capacidad de disparo sobre el bus SPI de la serie DPO4000 incluye los tipos siguientes:- SS Active: el disparo ocurre cuando la línea SS de un dispositivo “esclavo” pasa al estado lógico “verdadero”.- MOSI: el disparo ocurre sobre los hasta 16 bytes de datos especificados por el usuario y que son enviados desde el “maestro” al “esclavo”.
- MISO: el disparo ocurre sobre los hasta 16 bytes de datos especificados por el usuario y que son enviados desde el “esclavo” al “maestro”.
- MOSI/MISO: el disparo ocurre sobre los hasta 16 bytesde datos especificados por el usuario y que son enviados desde el “maestro” al “esclavo” o recíprocamente.
Estos disparos permiten el aislamiento de un tráfico particular en el bus sobre el que se está interesado, mientras que con la capacidad adicional de descodificación se puede observar el contenido de cada mensaje transmitido sobre el bus y capturado en el momento de la adquisición. La descodificación de los buses I2C, SPI o CAN puede mostrarse en modo bus o en tabla con estampado de tiempos.

En los DPO4000 los sistemas de disparo y búsqueda usan los mismos parámetros
Además de un sistema de disparo capaz de capturar un evento de interés dentro de un bus serie, sería muy útil disponer de un sistema de búsqueda para encontrar los mismos o distintos tipos de eventos ya capturados en los 10M de registro realizados con el osciloscopio.
El Wave InspectorTM de la serie DPO4000 proporciona esa capacidad gracias a sus potentes prestaciones para realizar búsquedas y sus controles dedicados en el panel frontal.
Todas las posibilidades de disparo descritas en este artículo están también disponibles como criterios de búsqueda sobre los datos ya adquiridos.
Por ejemplo, se puede observar en la figura 5 cómo el osciloscopio ha buscado dentro de una larga adquisición un mensaje CAN que tiene una dirección y un contenido de datos específicos y los ha marcado automáticamente con un triángulo blanco hueco en la parte superior de la pantalla. La navegación posterior entre las ocurrencias es tan simple como presionar los botones “<” y “>” del panel delantero de la serie DPO4000.
Por supuesto, las búsquedas están también disponibles para el resto de disparos incluidos de forma estándar en la serie DPO4000. Así pues, los tipos de búsqueda también disponibles son:
Flanco (edge), anchos de pulso (pulse widths), cualificación de amplitud de pulsos (runt), tiempos de establecimiento y retención (setup & hold), logico (logic) y tiempos de subida y bajada (rise/fall).