La memoria flash SPI no funciona sin grandes retrasos

3

Para mi trabajo de graduación estoy desarrollando un sistema de microcontrolador en el que la MCU ( MSP430FR5739 ) habla a un flash SPI ( SST25VF080B para ser particular). Logré esto sin usar el eUSCI SPI master (golpeando a la cosa) pero no importa qué, el flash siempre devuelve un byte de 0x00 si no dejo enormes retrasos de 2000 ciclos entre pulsos de reloj.

En la hoja de datos dice que el flash podría funcionar a hasta 80 MHz, y he cronometrado el MSP430 a 24 MHz, por lo que mi proceso de pensamiento aquí es que debería funcionar sin demoras en absoluto.

Mis preguntas serían:

  1. El flash IC está en una placa base y está conectado a la red principal Tablero con aproximadamente 2 pulgadas de cable de un solo núcleo de 22 AWG. Lo sé ese cable de núcleo sólido es terrible para alta frecuencia, pero lo haría ¿Reemplazando estos ayudan a acelerarlo?
  2. Si ciertamente tengo que tener retrasos, ¿qué más puedo hacer para acelerarlo?
pregunta özg

2 respuestas

1

Lo que me preocupa es su indiferencia por los problemas de EMC en su diseño cuando utiliza 2 "de cable de 24 AWG para el cableado de señal sin mencionar ningún plano de tierra.

Se debe considerar un enfoque sistemático en la comunicación de todas las señales para determinar, que necesitan blindaje, filtro de modo común, plano de tierra, tierra de estrella, tierra radial y control de impedancia en señales de alta velocidad.

¿Puede obtener algunas sondas FET de baja capacitancia o, mejor aún, las sondas FET diferenciales de Tektronix y ver el reloj & señales de datos en ambos extremos?

También recuerda las especificaciones, solo 80 MHz es MAX y NO HAY MÍN. También la frecuencia máxima de reloj para la instrucción de lectura, 03H, es 33 MHz en la impresión fina para esta parte de 80MHz. (Malditos sean esos tipos de marketing)

Cosas que hacer para mejorar el rendimiento;

  1. Use el par trenzado AWG30 12 giros / pie para cada señal a este chip en el que necesite un mejor blindaje y menos rizado de sobrepaso.
  2. Tenga un regulador dedicado @ Vdd @ 3.6V para ambos circuitos integrados. Tenga en cuenta que no hay especificaciones para la parte de 80 MHz, pero la parte de 66 MHz dice que VDD = 3.0 - 3.6 V, CL = 15 pF, así que usaría Vmax = 3.6 para obtener el mayor rendimiento posible. (Maldita sea esas especificaciones ambiguas)
  3. Verifique todos los niveles de voltaje, tiempos de subida y tiempos de configuración.
respondido por el Tony EE rocketscientist
0

La mayoría de estas partes tienen comandos separados para lecturas de baja velocidad (< 25Mhz) y alta velocidad. Cuando utiliza la lectura de alta velocidad, normalmente debe enviar uno o más caracteres ficticios antes de que la parte comience a registrar los datos. Una vez que se registran los datos, debe recibir un byte de datos por cada 8 pulsos de reloj.

    
respondido por el mjh2007

Lea otras preguntas en las etiquetas