SPI:TIまたはMotorolaモード?


8

Cortex M3ベアメタルをプログラミングしてSPIフラッシュと通信します。SPI制御レジスタの構成ビットの1つはFRF(フレーム形式)です。SPI Motorolaモード(0)またはSPI TIモード(1)に設定できます。(こちらのARMリファレンスマニュアルページ695をご覧ください。)

SPIフラッシュのデータシート(こちらから入手可能)には、どのモードを使用する必要があるかが示されていません。

2つの異なるモードとは何ですか?使用している特定のフラッシュチップにはどちらを使用する必要がありますか?

回答:


1

モトローラとTIモードは、クロック極性(CPOL)とクロック位相(CPHA)の異なる構成を指します。クロックの極性は、高信号または低信号がクロックをマークするかどうかを決定し、位相はデータラインをサンプリングするタイミングをデバイスに通知します。

ARMデータシートによると、SPIコントローラーにCPOLおよびCPHAを設定できます。

フラッシュチップ(第3章を参照)は、{CPOL = 0、CPHA = 0}または{CPOL = 1、CPHA = 1}をサポートしています。

詳細については、http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus#Clock_polarity_and_phase


あ、ありがとう!どっち?ある{CPOL=0, CPHA=0}モトローラまたはTI?
Randomblue

思い出せない、または信頼できる情報源を見つけることができません。
Toby Jaffey、2012年

1
@Randomblueにスコープが付いていると判断するたびに、調べるより測定する方がはるかに簡単です。
Kortuk 2012年

1
@Kortuk:「スコープ」とは、「オシロスコープ」を意味しますよね?とてもエキサイティングに聞こえるかもしれませんが、私はそのようなことをしたことがありません。これを行う方法を説明するある種のチュートリアルを指すことができますか?
Randomblue

7
申し訳ありませんが、その答えは間違っています。TIモードは極性とは関係ありません。詳細についてはこちらをご覧ください:infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0194g/...

4

ARMのデータシートをざっと見ると、TIモードとモトローラモードの主な違いは、多くのデバイスが必要としないSSPFSSOUTと呼ばれる出力信号の処理に関係していることを示唆しています。この信号は、各バイトのどのビットを最初と見なすべきかを示すために、バイト間でハイパルスになるはずです。TIモードでは、バイトの最後のビットの送信中にハイになり、モトローラモードでは、バイト間でハイになり、その後ローになります。フラッシュチップは、トランザクションの期間全体にわたってローに保持されるチップセレクト信号を必要とするため、バイト間でハイになる出力は役に立ちません。

SSPFSSOUTが使用されていない場合でも、Motorolaモードはスコープでデータを読みやすくします(すべてのバイトの後に一時停止があるため)が、TIモードは高速になる可能性があります(一時停止する時間を浪費しないため)バイト間)。ただし、重要なのは、コントローラーが生成する信号のシーケンスが、周辺機器のデータシートに記載されている要件を確実に満たすようにすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.