Estoy programando un Cortex M3 bare-metal para hablar con SPI Flash. Uno de los bits de configuración de un registro de control SPI es FRF
(formato de trama). Se puede configurar en modo SPI Motorola (0) o en modo SPI TI (1). (Vea el manual de referencia ARM página 695 aquí .)
La hoja de datos del SPI Flash (disponible aquí ) no da indicaciones sobre qué modo debo usar.
¿Cuáles son los dos modos diferentes y cuál debo usar para el chip Flash específico que estoy usando?
{CPOL=0, CPHA=0}
Motorola o TI?Un breve vistazo a la hoja de datos ARM sugiere que la principal diferencia entre el modo TI y el modo Motorola tiene que ver con el manejo de una señal de salida llamada SSPFSSOUT que muchos dispositivos simplemente no necesitan. Se supone que esta señal tiene un pulso alto entre bytes para indicar qué bit de cada byte debe considerarse el primero. En el modo TI, sube durante la transmisión del último bit de un byte, mientras que en el modo Motorola sube y baja entre bytes. El chip flash desea una señal de selección de chip que se mantenga baja durante toda la duración de una transacción, por lo que una salida que sea alta entre bytes no será útil.
Esperaría que incluso cuando no se usa SSPFSSOUT, el modo Motorola haría que los datos fueran más fáciles de leer en un osciloscopio (ya que habría una pausa después de cada byte), pero el modo TI podría ser más rápido (ya que no perdería tiempo haciendo una pausa entre bytes). Sin embargo, lo importante es garantizar que la secuencia de señales que genera el controlador cumpla con los requisitos establecidos en la hoja de datos de los periféricos.
fuente