Ya sea que estés diseñando un PCB de alta velocidad o un sistema embebido complejo, necesitará algún nivel de prueba. Para los sistemas avanzados de alta velocidad y RF, eso generalmente significa simulaciones comparadas con mediciones de VNA o de osciloscopio. Para el software y firmware embebido, los pasos de prueba pueden ser bastante diferentes. De hecho, hay algunas cosas que puedes hacer en tu diseño de prototipo para ayudarte a acelerar el proceso de prueba y eliminar la necesidad de sondear con un multímetro.
En este artículo, te mostraré algunos trucos simples que pueden hacer que probar y depurar un prototipo sea mucho más fácil. Esto significa adoptar un enfoque de diseño para prueba y aplicarlo tanto al software como al hardware. Aquí tienes una pista: el mejor camino para la prueba de sistemas embebidos involucra más que solo colocar almohadillas de prueba o puntos de prueba.
Tenemos muchos términos de moda en la industria de PCB, y “diseño para prueba” generalmente se agrupa con el paquete más amplio de DfX. Muchos diseñadores abordarán el diseño para pruebas para una placa que ejecuta código embebido de la misma manera que abordarían las pruebas para cualquier otra placa.
Esto generalmente significa que los diseñadores colocarán muchos puntos de prueba en señales importantes, pero quizás no mucho más. Muchos prototipos embebidos comenzarán a parecerse a un tablero de desarrollo Arduino, donde todo lo que puedas pensar en el procesador principal se enruta a encabezados de pines y puntos de prueba.
No tengo nada en contra de los encabezados de pines en una placa de sistemas embebidos, o en cualquier otra placa, de hecho. Pero, es difícil monitorear cada señal y pin mientras también intentas probar y depurar software o firmware ejecutándose en la placa. En algunos casos tienes que escribir una aplicación solo para probar tu aplicación. A veces, si ves un error en las funciones de tu diseño, no siempre será obvio si la causa raíz está en tu código o en tu PCBA.
En el lado del hardware, concéntrate en tomar este enfoque simplificado para el diseño para prueba:
Algunos de estos conceptos han sido ampliamente discutidos por Ari Mahpour en sus conversaciones sobre pruebas e integración continua. Echa un vistazo a este artículo para aprender más sobre este enfoque. Si quieres enviar datos de vuelta a tu computadora, el método más simple es añadir una interfaz USB-a-serial a tu prototipo. Echa un vistazo a este proyecto de Zach Peterson y obtén los archivos de diseño del enlace.
A continuación, si estás ejecutando una aplicación embebida en tu sistema, entonces puedes incluir manejo de errores o casos de prueba en el código para ayudar a acelerar las pruebas. Añadir las conexiones a interfaces con cabezales, almohadillas de prueba y una interfaz serial básica son todos pasos importantes que te ayudan a monitorear tu placa embebida en tiempo real. El objetivo es ver cómo se comporta la aplicación de software justo al lado del hardware.
Entonces, ¿cómo puedes monitorear el progreso de tu aplicación y hardware simultáneamente? Toma nota de los desarrolladores de software: añade manejo de errores y mensajes para mostrar el estado de cada función en tu aplicación. Esto puede ser tan simple como mostrar mensajes que indiquen si las funciones importantes pasaron o fallaron en la aplicación. Toma algo de tiempo extra escribir todas esas verificaciones de error, tener un mensaje en pantalla indicando lo que tu sistema está haciendo durante la ejecución de la aplicación puede eliminar una tonelada de depuración.
Aquí hay un ejemplo que muestra cómo se implementaría esto en C/C++ usando una función simple (llamada myFunction()) y una biblioteca GPIO hipotética. Supongamos que estás trabajando con una plataforma que proporciona una biblioteca GPIO simple con funciones como gpio_init(), gpio_read(), etc.:
#include |
Si tu aplicación está monitoreando señales directamente, puede imprimir esos resultados en cada paso de sus funciones principales. Imprimir estos en pantalla junto con tus señales indicadoras clave te dirá exactamente qué está sucediendo a medida que tu aplicación progresa, y no necesitarás medir manualmente cada señal a través de tu placa con una unidad externa. Claro, requiere trazar algunas pistas adicionales a los GPIOs al diseñar la placa, pero podrías descubrir que un aparente error lógico era realmente solo un simple error de conexión en tu PCB.
No olvides, aún puedes llevar cualquier otra señal que necesite ir a una sonda a un encabezado. De esta manera, esas señales aún pueden ser medidas con un osciloscopio, o una tarjeta de adquisición de datos. Mientras tanto, el puerto serie hará gran parte del trabajo de ayudarte a interactuar con la lógica de tu aplicación.
No importa lo que quieras diseñar, puedes implementar prácticas innovadoras de diseño para prueba usando el conjunto completo de características de diseño de PCB en Altium Designer®. Para implementar la colaboración en el entorno interdisciplinario de hoy, las empresas innovadoras están utilizando la plataforma Altium 365™ para compartir fácilmente datos de diseño y poner proyectos en fabricación.
Solo hemos arañado la superficie de lo que es posible con Altium Designer en Altium 365. Comienza tu prueba gratuita de Altium Designer + Altium 365 hoy.