En un Lattice MachXO2, ¿cómo puedo usar el esclavo EFB SPI y la configuración SSPI (multiplexación)?

1

Estoy usando una placa de evaluación Lattice MachXO2 FPGA y Lattice Diamond 3.4.0.80 en Linux.

Quiero usar la configuración SSPI para actualizar la configuración FPGA. Durante el modo de usuario, quiero usar los mismos pines SPI para el SPI EFB (excepto SN, que habilita la configuración SSPI).

Básicamente, estoy tratando de seguir TN1204 Fig. 12 (ver más abajo) & TN1205 Fig. 9-12 y amp; 9-14.

Generé un módulo SPI EFB, agregué los puertos SPI a mi nivel superior y asigné los pines SPI reforzados a estos puertos. Hasta ahora, Diamond está feliz.

Sin embargo, cuando configuro sysCONFIG SLAVE_SPI_PORT en ENABLE , el PAR de Diamond me dice

  

1103805 ADVERTENCIA: la configuración actual de SYS_CONFIG prohíbe el uso del pin "44" como IO de usuario. Esta preferencia ha sido desactivada.

y mueve mi puerto SPI a un pin diferente. Esto incluso sucede si solo configuro MASTER_SPI_PORT en EFB_USER (consulte SYSCONFIG help ).

¿Hay alguna manera de multiplexar el SPI de EFB con la configuración SSPI, incluso si solo es temporal (por ejemplo, durante la inicialización durante / después de PROGRAMN afirmado)? ¿Me faltan algunos ajustes en Diamond?

TN1204 Fig. 9:

    
pregunta corecode

1 respuesta

1

Supongo que el problema es que el pin SN está dedicado a la macro dura (EFB) para el modo de configuración. Para el modo Usuario, debe usar otro pin, consulte la definición de spi_scsn, que se puede colocar en cualquier usuario de E / S que desee. El pin en el bloque EFB generado es probablemente el chip seleccionado para el modo Usuario. Colocarlo en el pin SN hará que no se ajuste, ya que este pin está reservado para la función ufm_sn (o simplemente SN). El pin SN se utilizará automáticamente al habilitar SLAVE_SPI_PORT.

Espero que ayude, si encuentra otra solución, hágamelo saber ya que haremos más o menos lo mismo pronto.

Respuesta de Lattice en la fijación:
1. Spi_clk --> Assign to "MCLK/CCLK" pin on Bank-2. 2. Spi_miso --> Assign to "SO/SPISO" pin on Bank-2. 3. Spi_mosi --> Assign to "SI/SISPI" pin on Bank-2. 4. Spi_scsn --> Assign to any GPIO (No bank preference). 5. Ufm_sn --> Assign to "SN" pin on Bank-2.

Acerca de la configuración de EFB:
Si ha creado una instancia de "EFB" con SPI (Maestro o Esclavo) habilitado en su diseño, el atributo "SLAVE_SPI_PORT" en las "Preferencias globales" de Diamond se activará automáticamente después del proceso de síntesis. Por lo tanto, no necesita tener que configurarlo de forma exclusiva, la herramienta lo cuidará automáticamente.

Siguiente es la configuración de IPExpress. En IPExpress, junto con habilitar la opción "SPI", habilite también la opción "Memoria Flash del usuario". Luego, en la pestaña "SPI", selecciona la Modo SPI como "Esclavo", esta es la opción de selección SPI en modo usuario.

    
respondido por el Oddgeir

Lea otras preguntas en las etiquetas