Estou programando um bare metal do Cortex M3 para conversar com o SPI Flash. Um dos bits de configuração de um registro de controle SPI é FRF
(formato de quadro). Pode ser definido no modo SPI Motorola (0) ou no modo SPI TI (1). (Consulte o manual de referência do ARM, página 695 aqui .)
A folha de dados do SPI Flash (disponível aqui ) não fornece indicação sobre qual modo devo usar.
Quais são os dois modos diferentes e quais devo usar para o chip Flash específico que estou usando?
{CPOL=0, CPHA=0}
Motorola ou TI?Uma breve olhada na folha de dados do ARM sugere que a principal diferença entre o modo TI e o modo Motorola está relacionada ao manuseio de um sinal de saída chamado SSPFSSOUT, do qual muitos dispositivos simplesmente não precisam. Esse sinal deve pulsar alto entre bytes, de modo a indicar qual bit de cada byte deve ser considerado o primeiro. No modo TI, aumenta durante a transmissão do último bit de byte, enquanto no modo Motorola aumenta e diminui entre bytes. O chip flash deseja um sinal de seleção de chip que seja mantido baixo durante toda a duração de uma transação, para que uma saída alta entre bytes não seja útil.
Eu esperava que, mesmo quando o SSPFSSOUT não fosse usado, o modo Motorola tornasse os dados mais fáceis de serem lidos em um escopo (já que haveria uma pausa após cada byte), mas o modo TI seria mais rápido (pois não perderia tempo fazendo uma pausa entre bytes). O importante, no entanto, é garantir que a sequência de sinais gerados pelo controlador atenda aos requisitos fornecidos na folha de dados dos periféricos.
fonte