Protocolo serie y elección de conector para proyecto de distribución de firmware conectado

1

Estoy diseñando un sistema en el que se va a usar un controlador central de host que tiene una conexión de internet celular para consultar / controlar / flashear nodos conectados (cableados).

El controlador central de host es un electrón de partículas y está escrito en piedra (ya tienen docenas de unidades desplegadas y funcionan bien durante más de 1 año).

Los nodos conectados de manera intermitente son baterías inteligentes que se conectarán a la interfaz de carga / control del host.

Las baterías inteligentes tendrán una MCU ATtiny (flexible en la opción de una MCU específica) que registra los datos de carga, consulta un chip UUID y comunica los datos históricos guardados en EEPROM al controlador host.

Parte del objetivo de diseño es poder actualizar el firmware en el ATtiny sin problemas después de conectarlo al arnés de carga. Esto implica que el arnés de carga deberá poder llevar 4 cables adicionales sobre los 2 cables de carga para facilitar la programación de la MCU a través de su interfaz SPI: (SCK, MISO, MOSI) más un cable de reinicio.

Esto plantea un desafío porque si tengo 12 baterías inteligentes conectadas al mismo bus SPI, es probable que tenga un SPI de mierda que probablemente tenga muchos problemas de capacitancia / giro / ruido, especialmente teniendo en cuenta que el cable funciona Desde el controlador del host a cada batería inteligente será de hasta 2 m. Eso agrega rápidamente hasta 24 m de cobre en 12 canales.

Mi idea de contrarrestar esto ahora es multiplexar cada señal SPI a los 12 canales, de modo que la parte "activada" del bus SPI permanezca a 2 m. Esto también se ocuparía de "direccionar" canales específicos / baterías inteligentes, lo que me hace pensar que probablemente podría atar todos los pines seleccionados del esclavo ATtiny a tierra ... (aunque sé que una transición alta a baja en el pin SS ATTIN resulta en restablecer el periférico SPI ... lo que podría ser importante).

La otra parte del calzone es el mazo de cables / conector. Los cables de alimentación de carga serán de calibre 16. Habrá un mínimo de 4 cables de comunicaciones adicionales (suponiendo que esté casado con la idea de actualización del firmware), pero idealmente 5 (para proporcionar los pines de selección de esclavos).

Una búsqueda rápida de conectores de 6-8 pines revela que probablemente costarán casi tanto como un ATtiny, lo que me hace querer agregar un ATtiny secundario como programador externo y hacer que ambos funcionen con dos cables ( o 1-cable) protocolo de comunicación de búsqueda / direccionable. Este enfoque tiene el inconveniente de un mayor trabajo de desarrollo que probablemente se deba solicitar a un desarrollador independiente.

La producción de baterías inteligentes afectada por esta decisión a largo plazo podría ser de millones fácilmente.

Entonces, las preguntas son:

  • Lo que parece más sensato: 6-8 conectores pin / arnés de cableado (12 veces) ejecutándose en un periférico SPI multiplexado o un proyecto de programador ATtiny desarrollado en una interfaz de 1 o 2 cables?

  • ¿Se puede multiplexar un bus SPI de cobre de 24 pies de largo a ("manejable") buses de 2 pies factibles, aconsejable, apropiado?

pregunta macdonaldtomw

1 respuesta

0

La multiplexación del bus SPI se realiza fácilmente si selecciona los tipos correctos de piezas de interruptor para esto. No ate el pin de selección del dispositivo esclavo a GND en el esclavo. La transición inicial de la señal de selección de esclavo es lo que proporciona la sincronización para que el dispositivo esclavo sepa cuándo llegará el límite del primer byte de una transacción SPI. Si omite su uso, se arriesga a la alta posibilidad de que un esclavo no esté sincronizado con el controlador maestro.

Hay algunos conectores que son económicos, lo suficientemente robustos para esta aplicación y fabricados en grandes volúmenes. Un tipo que me viene a la mente para sugerirle es el ubicuo conector DSub-9. Parece que sería perfecto para esta aplicación. Use 2 pines para el cable de carga, 2 pines para el GND de carga, dejando 5 pines para su interfaz SPI. En lugar de usar un par de cables 16AWG para la carga y la GND, puede ir a un calibre más pequeño (18AWG?) Y doble a dos pares. Esto se asignaría mejor a la fijación del conector y conduciría a un cable más flexible.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas