Estoy diseñando un comprobador de continuidad de arnés básico basado en los registros de turnos implementados en los CPLD Max V. Estoy apuntando a un diseño de PCB modular / extensible para el proyecto ya que tiene varios beneficios (costo, menos complejidad).
Un uC se comunica con mis CPLD mediante SPI. De lo que no estoy seguro es de cómo hacer una mejor cascada de estos CPLD para obtener un registro de desplazamiento más grande. En un TQFP de 144 pines, solo tengo 114 pines IO. Por lo tanto, solo puedo implementar un Serial In Parallel Out de 114 bits o un Parallel In shift register. Pero al conectar en cascada estos 114 dispositivos IO, puedo obtener registros de turnos mucho más grandes.
Sin embargo, me gustaría colocar estos CPLD adicionales en una PCB diferente. Esto tiene la ventaja de que simplemente puedo extender el dispositivo cuando lo necesite. En arneses más pequeños, un solo PCB de 114 puntos de prueba será suficiente. En los más grandes, puedo en cascada. En este momento, el CPLD es realmente solo un registro de desplazamiento. Pero en el futuro espero implementar una máquina de estado que posiblemente pueda implementar más funciones, como la suma de comprobación para verificar los contenidos enviados por la uC, etc. Pero eso es para más adelante y todo lo que sé es que solo usaría SPI para comunicación.
Como los CPLD necesitan SPI para la comunicación, supongo que debo pasarlos al registro de desplazamiento en cascada, es decir, cada dispositivo tendrá un pin de salida de serie (SO). Pero también tendrá que pasar CLK, Chip Select e incluso un pin SI / MISO en caso de que la unidad uC necesite leer el contenido del registro de desplazamiento. Cada CPLD impulsará el siguiente en la cadena al pasar CLK, SO, CS.
Creo que sería necesario amortiguar todas las señales que salen del PCB. Pero, ¿cuál sería la mejor manera de conectar realmente los PCB? Supongo que esto realmente depende de la velocidad de operación. Afortunadamente, la velocidad no es un problema y, por lo tanto, estoy operando a una frecuencia muy baja, solo 62.5kHz. Me gustaría poder aumentar esto, quizás a 500 kHz. No creo que necesite más allá de eso. En tales frecuencias, ¿cuál es la mejor manera de conectar PCB en cascada?
Tenga en cuenta que soy consciente de que puedo comprar un dispositivo grande de 324 pines. Me temo que no puedo usar eso ya que no hay manera de inspeccionar BGA aquí localmente. Así que me quedo con los paquetes TQFP.
También soy consciente de que el tema, quizás, se relaciona principalmente con el diseño de PCB, pero también espero poder obtener algunos consejos centrados en CPLD / FPGA sobre qué señales debo enviar, ya que no estoy tan seguro. sobre eso.
Agradecería cualquier respuesta.
Más información basada en la respuesta de Keven:
La razón por la que creemos que las tarjetas de la hija se beneficiarían es que la mayoría de los arneses que montamos tienen menos de 70 cables. Sólo hay 5 arneses que tienen más de 250 cables. Un solo circuito grande sería demasiado costoso. La razón por la que la PCB sería grande es porque los conectores de acoplamiento que utilizamos (62 pin D-Sub) son bastante grandes físicamente.
Así que pensamos en dividir la PCB al tener una placa base que alberga la interfaz de usuario, interfaz LCD, CPLD, tarjeta SD, controlador LED, etc. Esto tendría aproximadamente 62 puntos de prueba.
La tarjeta secundaria también tendría 62 puntos de prueba y solo contendría CPLD adicionales y los conectores. Este PCB también sería mucho más pequeño que la placa base. La placa base podría probar el 70% de nuestros arneses, con unidades adicionales que nos permiten expandir los puntos de prueba cuando sea necesario. Esto no solo sería rentable, sino que también haría que el sistema general fuera mucho más sencillo. Los chips, por sí mismos, son realmente baratos. El Max V 240Z que estoy usando cuesta solo $ 5. Sin embargo, el costo para PCB de cuatro capas es el factor limitante para nosotros.
Cada tarjeta secundaria tendría conectores para programar los CPLD y para conectarse a otros PCB. No creo que programar cada CPLD sea un gran esfuerzo, especialmente porque realmente no necesitaré cambiar ninguno de los códigos. La unidad uC ni siquiera sabrá que los registros de desplazamiento están en cascada ... bueno, excepto por el hecho de que podría ser capaz de detectar la presencia de PCB adicionales para que conozca el ancho general. Creo que no debería ser demasiado difícil de hacer.