Me he encontrado con un problema inusual. Comenzaré describiendo mi objetivo: estoy diseñando un circuito que puede realizar pruebas de cortocircuitos y circuitos abiertos en un arnés de cableado. El arnés de cableado no tiene un bus CAN ni nada tan complicado como eso, solo cables simples.
Así es como funciona
Tengo dos CPLD, uno como un extremo conductor designado (todos los pines se envían) y el otro como un extremo receptor (todos los pines son de entrada). El CPLD del extremo conductor está programado para ser un registro de desplazamiento de salida en paralelo en serie y el extremo de recepción es un registro de desplazamiento de salida en paralelo en serie.
Supongamos que todos los cables en el arnés son uno a uno, es decir, que no hay uniones. Supongamos también que solo hay 8 cables. Por lo tanto, para probar el primer cable en el arnés, el registro del extremo conductor está cargado con 10000000. El extremo receptor también ve esto y todo termina bien. El final de conducción se sincroniza y se lee 01000000. Si el receptor también lee esto, entonces ese cable está bien.
Pero supongamos que hay un cortocircuito entre el cable 2 y 3. Si ese es el caso, entonces el extremo receptor leerá 01100000. Esto también está bien, ya que hemos detectado el cortocircuito y podemos actuar.
¿Pero qué pasa al final de la conducción? El pin 3 de CPLD forzará 0V y el pin 2 forzará 3.3V. El cortocircuito entre los pines 2 y 3 dará como resultado dos pines de salida conectados entre sí. Supongo que una corriente significativa fluirá desde el pin 2 al pin 3 y podría producirse un daño.
Tenga en cuenta que los registros de desplazamiento / CPLD están siendo controlados por un microcontrolador. También tenga en cuenta que el arnés suele ser bastante grande, alrededor de 200-300 cables. Algunos de los cuales son conexiones uno a muchos. Esta es la razón por la que un CPLD era una opción atractiva, ya que me permite programar un registro de desplazamiento grande y permite probar un arnés grande con un circuito relativamente pequeño.
¿Cómo puedo manejar este problema?