Nexys 4 DDR no carga el flujo de bits de la tarjeta microSD?

4

Siguiendo la mitad inferior de la página 6 de este PDF , formateé una tarjeta microSD de 2 GB al sistema de archivos FAT32 usando mkfs.fat en Ubuntu y copié main.bit de uno de mis proyectos. Luego inserté la tarjeta microSD en mi tarjeta Nexys 4 DDR, asegurándome de que los dos puentes estuvieran en el lugar correcto (JP2 conectado a SD y JP1 conectado a USB/SD ). Luego reinicio la placa y vi que el LED "OCUPADO" parpadeaba lentamente, lo que indica que la placa está esperando a que se inserte un medio válido, de acuerdo con el PDF.

Cosas que he probado:

  • Note primero : he probado 2 juegos de todo el hardware involucrado aquí, incluyendo la placa Nexys 4 DDR (y los puentes en ella), la tarjeta microSD, la unidad flash USB (mencionada a continuación) y el USB cable.
  • Formateó la tarjeta microSD en Windows 10 en lugar de Ubuntu
  • Verificó que el archivo de flujo de bits funciona correctamente al descargarlo en la placa a través del puerto micro USB PROG / UART usando el software Vivado 2018.2
  • Regeneró el flujo de bits usando Vivado
  • extrajo otro archivo de flujo de bits de otro proyecto
  • Cambió el nombre del archivo de flujo de bits (manteniendo la extensión .bit )
  • Se reemplazó la tarjeta microSD con una unidad USB de 4 GB insertada en el puerto USB Host de la placa (y se cambió JP2 a USB)
  • Alimentó la placa a través de un cargador de teléfono de 5V

Así es como se ve el tablero (haga clic para ampliar):

La tarjeta microSD se inserta en la ranura del otro lado, por lo que no se ve en la imagen, como lo indica la flecha de la izquierda. Los dos cuadrados son JP2 (izquierda) y JP1 (derecha), como he configurado correctamente (supongo).

¿Cuál podría ser una posible causa de esto? ¿Cómo puedo decirle a la placa que cargue el flujo de bits desde la tarjeta microSD?

    
pregunta iBug

1 respuesta

1

Hay una biblioteca FAT de código abierto llamada DOSFS que se usa en muchos sistemas integrados / tableros de desarrollo que parece tener problemas con algunos tamaños de asignación. Para Windows, usar el modificador de formato /A:32K (o según lo comentado en 16K) para forzar el tamaño de la unidad de asignación parece solucionarlo, parece que esta placa tiene el mismo problema y probablemente usa la misma biblioteca.

Hace tiempo que encontré un problema similar en un proyecto basado en STM32 que solía funcionar cuando las tarjetas se formateaban en Windows XP, pero dejó de funcionar cuando se formateaba en versiones posteriores de Windows, por lo que parece ser el tamaño predeterminado de las unidades de asignación utilizadas por las nuevas operaciones. Los sistemas han cambiado.

    
respondido por el PeterJ

Lea otras preguntas en las etiquetas