SPI Slave Flash programado con dos preguntas maestras

0

Estoy buscando crear un sistema que pueda ser actualizado por un cliente en el campo y necesito saber algo conceptual antes de intentar implementar mi estrategia actual.

Digamos que tengo un puente USB a SPI, algo de chip FTDI, y quiero poder programar un flash SPI usando eso. No hay problema, PERO mi controlador tiene que arrancar desde el mismo flash SPI usando las líneas SPI. Entonces, ¿sería capaz de conectar todo juntos?

Aquí hay una foto ya que no soy bueno explicando estas cosas.

Hay un error tipográfico en la imagen. El controlador no está siendo programado, el flash SPI es. El controlador se iniciará desde el flash spi

    
pregunta Funkyguy

2 respuestas

3

Debería ser posible conectar dos maestros al mismo bus SPI siempre que

  • Ninguno de los dos dispositivos intenta conducir SCK, MOSI o SS cuando el otro dispositivo quiere usarlo (aunque SS debe levantarse débilmente cuando está inactivo, y otros pines están débilmente colocados en algún nivel definido).

  • Los dispositivos tienen algunos medios para mantenerse alejados de los demás.

No sé si el puente FTDI espera ser un maestro o esclavo; si espera ser un maestro pero hace flotar sus cables, excepto cuando la PC le dice que alimente datos, y si tiene algún medio para mantener el procesador principal en reinicio, una conexión directa debería funcionar muy bien. Si espera ser un esclavo SPI, entonces el firmware del microcontrolador tendrá que hablar con el puente, leer sus datos y enviar los datos al flash.

    
respondido por el supercat
1

Por lo general, esto funcionará si los controladores de salida de sus controladores están desactivados en el estado de restablecimiento.

Lo que hemos hecho en el pasado para garantizar el comportamiento deseado en ciertas circunstancias es utilizar un Mux por ejemplo un ADG794 para estar absolutamente seguro. También puede agregar resistencias 0R en las líneas una vez que haya verificado el comportamiento correcto y no requiera un interruptor.

Asegúrese de que también puede controlar los pines de configuración requeridos en el FPGA (por ejemplo, PROGRAM_B en dispositivos Zylinx) y en sus controladores (por ejemplo, un pin RESET en su puente USB).

    
respondido por el Tom L.

Lea otras preguntas en las etiquetas