Los productos electrónicos reales han ido volviéndose más inteligentes poco a poco, tanto por la implementación de una aplicación embebida como por las conexiones de retorno a una plataforma o aplicación en la nube. Los equipos de desarrollo embebido tienen que trabajar juntos para crear estas nuevas generaciones de productos. Un área donde el ingeniero de diseño de PCB, el desarrollador embebido e incluso el ingeniero de MCAD pueden retrasarse en terminar un proyecto es en la selección de E/S. Esto sucede siempre que tienes conectores, periféricos y un procesador anfitrión.
Así que, para mantener las cosas simples para ambos lados, quiero compartir algunas de mis experiencias trabajando con desarrolladores embebidos para optimizar la selección de E/S y el proceso general para completar el diseño del PCB. Con un poco de colaboración desde el principio, puedes hacer que el enrutamiento del PCB y el desarrollo embebido sean más fáciles al final.
Considero que cada miembro del equipo de desarrollo debe entender lo que los otros miembros del equipo necesitan para tener éxito. Esto también se trata del uso eficiente de recursos, evitar atascos de ingeniería que tardan días en resolverse y llegar al mercado rápidamente.
|
|
|
|
|
|
|
|
|
|
|
|
Puse un asterisco (*) en las entradas de la lista de pines porque el proceso exacto para asignar los I/O depende del componente específico que se utilice para ejecutar la aplicación embebida. ¿Es un MCU simple, donde los I/O disponibles están fijos en ubicaciones específicas, o es un FPGA que puede tener un diseño de pines personalizado en ciertos bancos? El otro aspecto son los conectores: ¿está estandarizado el diseño de pines, está determinado por otra placa en el ensamblaje, o puede personalizarse?
Aquí es donde podemos empezar a ver el desafío involucrado en un diseñador de PCB y un desarrollador embebido trabajando juntos en la selección de I/O. ¿Cómo pueden las dos partes unirse y definir los diseños de pines, la selección de I/O y, en última instancia, el diseño del PCB?
En mi opinión, esto funciona mejor cuando el diseño de pines en el procesador principal es flexible, es decir, la aplicación se instanciará en un FPGA. En este caso, los I/O pueden ser establecidos por el desarrollador en la lógica del dispositivo, y el resultado es que el diseñador de PCB tendrá que trabajar con las asignaciones de pines que se le dan.
El problema es el siguiente: si las asignaciones de pines se dan de manera individual para cada pin, es posible que no se obtenga un enrutamiento óptimo, resultando en un enredo de conexiones que se cruzan entre sí para llegar a los componentes. En cambio, si el desarrollador embebido simplemente proporciona asignaciones de bancos al diseñador de PCB, entonces el diseñador de PCB puede elegir pines dentro de un banco para hacer conexiones óptimas.
Al asignar bancos en un FPGA en lugar de un pinout específico, el diseñador puede utilizar una herramienta como el intercambio de pines para mover asignaciones de E/S dentro de un banco de pines. Si el intercambio de pines es deseable, entonces podría ser necesario un símbolo esquemático personalizado para separar adecuadamente los pines en sus respectivos bancos. Usar un símbolo personalizado permite agrupar pines de manera mucho más rápida para operaciones de intercambio de pines mientras se realiza el enrutamiento del PCB.
En mi opinión, esto funciona mejor cuando el diseño de los pines en el procesador principal es fijo, es decir, un MCU y sus periféricos. En un MCU, las ubicaciones de E/S son básicamente fijas. Puedes tener cierta flexibilidad en términos de cómo se utiliza cada E/S, por ejemplo, cuando se usa un banco de GPIOs. Sin embargo, las asignaciones de pines o funciones para interfaces estándar pueden ser fijas (por ejemplo, pines SPI, pines ADC, pines PWM, I2C, etc.).
En este caso, creo que es mejor si el diseñador de PCB selecciona los pines que utilizará para coincidir con diferentes componentes. El diseñador de PCB tiene que elegir dentro de un diseño de pines fijo, por lo que tendrá que trabajar en cómo colocar los componentes de tal manera que el diseño del PCB sea solucionable. Una vez colocados y enrutados, es trabajo del diseñador de PCB informar al desarrollador embebido qué pines se están utilizando para ciertas funciones.
Cuando el diseño de pines de tu conector está estandarizado, entonces es un poco una incógnita. Digo esto porque "estandarizado" puede significar dos cosas diferentes:
Si ninguno de estos casos se aplica, entonces tu pinout es personalizable. En proyectos donde he trabajado con otras placas en un ensamblaje más grande, a menudo tenemos la libertad de establecer un pinout, usualmente porque estábamos construyendo ambas placas. En cualquier caso, ambos lados tienen que trabajar juntos para determinar un pinout "mejor" de manera objetiva para el conector y cómo esto se alinea con el procesador.
Los equipos que necesitan colaborar en productos complejos pueden acceder a un conjunto completo de características de diseño colaborativo al usar Altium Designer®. Todos los interesados involucrados en el diseño del producto pueden acceder a un conjunto completo de herramientas para el diseño de PCB que pueden apoyar tareas de desarrollo embebido, así como características de diseño de cables y arneses. Cuando hayas terminado tu diseño y quieras liberar los archivos a tu fabricante, la plataforma Altium 365™ facilita la colaboración y el compartir tus proyectos.
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.