¿Cambiar un chip SPI entre dos dispositivos?

1

Estoy trabajando en un proyecto en el que sería muy útil poder cambiar automáticamente un chip flash SPI entre dos dispositivos diferentes (un programador y el sistema que realmente lo está usando).

Conceptualmente, esto me parece una tarea muy simple. Me gustaría una cantidad de interruptores DPDT conectados al chip flash y a ambos dispositivos. Me gustaría hacer esto de una manera un tanto automatizada (no quiero tener que apretar varios interruptores para hacer esto), así que empecé a buscar en los relés.

¿Qué tipo de relé estoy buscando aquí? Solo estoy viendo 3.3v aquí, así que el voltaje no debería ser un problema. ¿Estoy buscando un relé o hay algún otro tipo de dispositivo que sea más eficiente? En total, hay 7 pines que necesitaría cambiar.

Debido a las limitaciones del sistema que se está programando, no puedo programar la memoria en el circuito, por lo que no sería una opción tan simple como un SOIC-CLIP.

    
pregunta devicenull

2 respuestas

2

Recomendaría buscar búferes (o controladores de línea, transceptores) con funcionalidad de triple estado. Aquí es un ejemplo de NXP. Cuestan $ 0.57 USD cada uno en DigiKey.

Básicamente, actúan como simples búferes, pero puede hacer que las salidas se vuelvan de alta impedancia y desconecten efectivamente las señales de su circuito. Usarías dos de ellos; uno para conectar (o desconectar) cada uno de sus dispositivos. Se hace más fácil porque las líneas SPI, a diferencia de I2C (por ejemplo), son unidireccionales.

Hay cientos de IC diferentes para elegir. Por ejemplo, algunos tienen una sola línea de "Habilitación de salida" (OE) para todas las señales. Otros tienen múltiples OE, lo que le permite activar / desactivar solo señales específicas. Algunos invierten, otros no, etc. La arquitectura que necesita dependerá de su circuito específico.

Un pensamiento: ¿Quizás solo necesitas cambiar tus líneas CS y WP? Es posible que pueda dejar el resto del bus (incluida la alimentación) compartido entre ambos dispositivos ...

Buena suerte :)

    
respondido por el bitsmack
0

Suponiendo que su programador y su sistema de usuario tengan voltajes de operación idénticos, simplemente haga que su sistema de usuario haga que sus entradas de E / S tengan entradas de alta impedancia; entonces el programador puede conducir el bus SPI. Los sistemas necesitarán una GND común, por supuesto. Si por alguna razón no puede cambiar el comportamiento del sistema del usuario, debería poder obtener el mismo resultado manteniéndolo en reinicio.

Este enfoque aún funcionará si su programador requiere un voltaje de operación diferente al sistema del usuario; simplemente agregue un desplazador de nivel bidireccional como TXB0106 para convertir los voltajes del bus.

    
respondido por el markt

Lea otras preguntas en las etiquetas