SPI: mode TI ou Motorola?

8

Je programme un bare-metal Cortex M3 pour parler avec SPI Flash. L'un des bits de configuration d'un registre de contrôle SPI est FRF(format de trame). Il peut être réglé en mode Motorola SPI (0) ou en mode SPI TI (1). (Voir le manuel de référence ARM page 695 ici .)

La fiche technique du SPI Flash (disponible ici ) ne donne aucune indication sur le mode à utiliser.

Quels sont les deux modes différents et lesquels dois-je utiliser pour la puce Flash spécifique que j'utilise?

Randomblue
la source

Réponses:

1

Les modes Motorola et TI font référence à différentes configurations de polarité d'horloge (CPOL) et de phase d'horloge (CPHA). La polarité de l'horloge dicte si un signal haut ou bas marque une horloge, la phase indique à l'appareil quand échantillonner la ligne de données.

Selon votre fiche technique ARM, vous pouvez définir CPOL et CPHA pour votre contrôleur SPI.

Votre puce flash (voir chapitre 3) prend en charge {CPOL = 0, CPHA = 0} ou {CPOL = 1, CPHA = 1}.

Pour plus d'informations, http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus#Clock_polarity_and_phase

Toby Jaffey
la source
Aha, merci! Alors qui est quoi? Est-ce que {CPOL=0, CPHA=0}Motorola ou TI?
Randomblue
Je ne me souviens pas ou je ne trouve pas de source faisant autorité.
Toby Jaffey
1
Chaque fois que j'ai déterminé que @Randomblue avait une portée, je trouve qu'il est beaucoup plus facile de mesurer que de rechercher.
Kortuk
1
@Kortuk: Par "portée", vous voulez dire "oscilloscope", non? Cela semble assez excitant, mais je n'ai jamais rien fait de tel auparavant. Pourriez-vous indiquer un didacticiel quelconque expliquant comment procéder?
Randomblue
7
Désolé, mais cette réponse est fausse. Le mode TI n'a rien à voir avec la polarité. Pour plus d'informations, rendez-vous ici: infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0194g/…
4

Un bref coup d'œil à la fiche technique ARM suggère que la principale différence entre le mode TI et le mode Motorola est liée à la gestion d'un signal de sortie appelé SSPFSSOUT dont de nombreux appareils n'ont tout simplement pas besoin. Ce signal est censé pulser haut entre les octets afin d'indiquer quel bit de chaque octet doit être considéré comme le premier. En mode TI, il passe à l'état haut lors de la transmission du dernier bit d'un octet, tandis qu'en mode Motorola, il passe à l'état haut puis bas entre les octets. La puce flash veut un signal de sélection de puce qui est maintenu bas pendant toute la durée d'une transaction, donc une sortie qui monte haut entre les octets ne lui sera pas utile.

Je m'attendrais à ce que même lorsque SSPFSSOUT n'est pas utilisé, le mode Motorola faciliterait la lecture des données sur une étendue (car il y aurait une pause après chaque octet) mais le mode TI pourrait être plus rapide (car il ne perdrait pas de temps à faire une pause entre octets). Ce qui est important, cependant, est de s'assurer que la séquence de signaux que le contrôleur génère répond aux exigences données dans la fiche technique des périphériques.

supercat
la source