SPI: TI- oder Motorola-Modus?

8

Ich programmiere einen Cortex M3 Bare-Metal, um mit SPI Flash zu sprechen. Eines der Konfigurationsbits eines SPI-Steuerregisters ist FRF(Rahmenformat). Es kann entweder auf den SPI Motorola-Modus (0) oder auf den SPI TI-Modus (1) eingestellt werden. (Siehe ARM-Referenzhandbuch Seite 695 hier .)

Das Datenblatt des SPI Flash ( hier verfügbar ) gibt keinen Hinweis darauf, welchen Modus ich verwenden soll.

Was sind die zwei verschiedenen Modi und welche sollte ich für den spezifischen Flash-Chip verwenden, den ich verwende?

Zufälliges Blau
quelle

Antworten:

1

Motorola- und TI-Modus beziehen sich auf unterschiedliche Konfigurationen der Taktpolarität (CPOL) und der Taktphase (CPHA). Die Taktpolarität bestimmt, ob ein hohes oder niedriges Signal einen Takt markiert. Die Phase teilt dem Gerät mit, wann die Datenleitung abgetastet werden soll.

Gemäß Ihrem ARM-Datenblatt können Sie CPOL und CPHA für Ihren SPI-Controller festlegen.

Ihr Flash-Chip (siehe Kapitel 3) unterstützt {CPOL = 0, CPHA = 0} oder {CPOL = 1, CPHA = 1}.

Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus#Clock_polarity_and_phase

Toby Jaffey
quelle
Aha, danke! Also was ist was? Ist {CPOL=0, CPHA=0}Motorola oder TI?
Randomblue
Ich kann mich nicht erinnern oder eine maßgebliche Quelle finden.
Toby Jaffey
1
Jedes Mal, wenn ich festgestellt habe, dass @Randomblue einen Gültigkeitsbereich hat, fällt es mir viel leichter, zu messen, als nachzuschlagen.
Kortuk
1
@Kortuk: Mit "Scope" meinst du "Oszilloskop", oder? Das klingt ziemlich aufregend, aber so etwas habe ich noch nie gemacht. Könnten Sie auf ein Tutorial verweisen, in dem erklärt wird, wie das geht?
Randomblue
7
Entschuldigung, aber diese Antwort ist falsch. Der TI-Modus hat nichts mit der Polarität zu tun. Für weitere detaillierte Informationen hier: infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0194g/...
4

Ein kurzer Blick auf das ARM-Datenblatt legt nahe, dass der Hauptunterschied zwischen dem TI-Modus und dem Motorola-Modus mit der Verarbeitung eines Ausgangssignals namens SSPFSSOUT zusammenhängt, das viele Geräte einfach nicht benötigen. Dieses Signal soll zwischen den Bytes hoch pulsieren, um anzuzeigen, welches Bit jedes Bytes als erstes betrachtet werden soll. Im TI-Modus geht es während der Übertragung des letzten Bits eines Bytes hoch, während es im Motorola-Modus zwischen den Bytes hoch und dann niedrig geht. Der Flash-Chip möchte ein Chip-Auswahlsignal, das für die gesamte Dauer einer Transaktion niedrig gehalten wird, sodass eine Ausgabe, die zwischen Bytes hoch geht, für ihn nicht nützlich ist.

Ich würde erwarten, dass der Motorola-Modus, selbst wenn SSPFSSOUT nicht verwendet wird, das Lesen von Daten in einem Bereich erleichtert (da nach jedem Byte eine Pause auftritt), der TI-Modus jedoch möglicherweise schneller ist (da keine Zeit zum Anhalten verschwendet wird) zwischen Bytes). Es ist jedoch wichtig sicherzustellen, dass die von der Steuerung erzeugte Signalfolge den Anforderungen im Datenblatt der Peripheriegeräte entspricht.

Superkatze
quelle