AN-1248 アプリケーション・ノート

日本語参考資料
最新英語アプリケーション・ノートはこちら
AN-1248
アプリケーション・ノート
SPI インターフェース
著者: Miguel Usach
はじめに
マスター―スレーブ間の互換性
SPI バス・インターフェースは、多様な構成で比較的高い送信
レートが可能であるため、同期データ伝送に広く採用されてい
ます。
最初のステップは、マスター―スレーブ間接続の互換性を保証
することです。SPI インターフェースは公式な仕様でないため、
マスターからスレーブへのデータ、または逆向きのデータがそ
れぞれの仕様を満たすことが重要です。
SPI は事実上の業界標準になっていますが、公式に規定された
ものではありません。部品自身の能力を最大限活用することが
できるため、これを利点と見なすことがありますが、異なる部
品間の接続は複雑になってしまいます。
データはクロックに同期していますが、CS は同期または非同期
のことがあるため、SPI は完全な同期インターフェースではあ
りません。
完全な同期インターフェースでは、エッジはサンプリング・エ
ッジと駆動エッジに分けられます。駆動エッジでは、データを
バス上で更新(切り替える)します。サンプリング・エッジで
は、SDI/DATA IN ピンのデータが読みこまれます (サンプルさ
れます)。
SPI バスは単方向の 4 本の線から構成されています。これらの
線の名称は、部品間で、さらに同じ製品範囲内でさえ、異なる
ことがあります。
•
•
インターフェース・イネーブル: CS、SYNC、ENABLEなど
データ入力: SDI、MISO (マスター用)、MOSI (スレーブ用)
など
データ出力: SDO、MISO (スレーブ用)、MOSI (マスター用)
など
クロック: SCLK、CLK、SCK など
実用的な点から、バス上のデータはサンプリング・エッジ以外
の任意のタイミングで更新することができます。
SPI インターフェースでは、 4 つの送信モードを定義していま
す。マスター側は 4 つのすべてのモードをサポートできる必要
がありますが、マスターの素子よっては特定のモードと互換性
を持たないこともあるため、これを事前に確認しておく必要が
あります。SPI モード相互接続のセクションで説明するように、
これをインバータ・ロジックの使用により解決することができま
す。
図 1 に示すように、各ピンの信号方向について混乱のないよう
に名前を定義することから始めることが重要です。
3 本の線しか使用しないこともあります。例えば、DAC ではデ
ータのリードバックが不要な場合で、ADC ではマスターからの
データの送信が不要の場合です。これらの場合、接続は 3 線式
インターフェースとして定義することができます。
大部分の部品では、スレーブ動作でのモード設定はできないた
め、1 つの動作モードでのみで動作します。ただし、最大 2 つ
のモードで動作するものもあります。
MASTER
SLAVE
SCLK
DATA OUT
DATA IN
CS
SCLK
SDI
SDO
CS
11585-001
•
•
図 1.SPI の基本的な接続
t10
t1
t9
SCLK
t8
t4
t3
t2
t7
CS
SDI
t6
DB31
DB0
11585-002
t5
図 2.SPI タイミング図の例
アナログ・デバイセズ社は、提供する情報が正確で信頼できるものであることを期していますが、その情報の利用に関して、あるいは利用によって
生じる第三者の特許やその他の権利の侵害に関して一切の責任を負いません。また、アナログ・デバイセズ社の特許または特許の権利の使用を明示
的または暗示的に許諾するものでもありません。仕様は、予告なく変更される場合があります。本紙記載の商標および登録商標は、それぞれの所有
者の財産です。※日本語版資料は REVISION が古い場合があります。最新の内容については、英語版をご参照ください。
Rev. 0
©2015 Analog Devices, Inc. All rights reserved.
本
社/〒105-6891 東京都港区海岸 1-16-1 ニューピア竹芝サウスタワービル
電話 03(5402)8200
大阪営業所/〒532-0003 大阪府大阪市淀川区宮原 3-5-36 新大阪トラストタワー
電話 06(6350)6868
AN-1248
アプリケーション・ノート
目次
はじめに .............................................................................................. 1
バス・データが更新されるタイミングは?................................... 4
マスター―スレーブ間の互換性 ...................................................... 1
その他の考慮事項は? ...................................................................... 5
改訂履歴 .............................................................................................. 2
SPI モードの相互接続 ....................................................................... 6
スレーブで使用される送信モードは? ........................................... 3
接続...................................................................................................... 6
改訂履歴
7/13—Revision 0: Initial Version
Rev. 0
- 2/7 -
AN-1248
アプリケーション・ノート
スレーブ側で使用される伝送モードは?
図 2 に示すように、タイミング図では、複数のラインと名称を
使用しています。
これらのモードを定義することは比較的容易です。図の例で
は CS の立下がりエッジと SCLK を関連付けるタイミングが存
在します(図 4 参照)。
このモードは、データ伝送が開始される(CSをロー・レベルにす
る)ときの SCLK レベル(極性 (CPOL)と呼ばれる)と、サンプリン
グ・エッジ (位相 (CPHA)と呼ばれる) によって決定されます(図
3 参照)。位相は極性に対する相対的なもので絶対値でないこと
に注意してください。SPI モードを表 1 に示します。
t1
11585-005
t6
DB0
DB31
SDI
SCLK
図 4.極性モード
CS
この図のケースでは、SCLK は CS 立下り時にハイ・レベルまた
はロー・レベルであることができ、制約はありません。
11585-003
SCLK
CPHA = 1
図 3.SPI のタイミング
表 1.SPI のモード
Mode
t7
CS
t5
CPOL = 0
t2
t3
CPHA = 0
CPOL = 1
t9
SCLK
Polarity (CPOL)
次に SDI の図には、セットアップとホールドの 2 つのタイミン
グで囲まれる区間が重要です。2 つのタイミングは、バス上に
データが有効でなければならない、サンプル・エッジの前後の
時間を意味し、両タイミングはサンプリング・エッジを基準タ
イミングとして使用します(図 5 参照)。
t10
Phase (CPHA)
0
t1
t9
SCLK
t8
1
t4
t3
t2
t7
CS
11585-004
3
t5t5
SDI
tt66
DB31
DB0
11585-006
2
図 5.位相モード
この例では、サンプル・エッジは立下がりエッジです。
以上と表 1 から、スレーブ・デバイスはモード 1 およびモード
2 で互換性を持っています。
Rev. 0
- 3/7 -
AN-1248
アプリケーション・ノート
バス上のデータが更新されるタイミングは?
SDO を使って、データをスレーブからマスターへ転送、あるい
はマスターからスレーブへ転送します。データは何時でも更新
できますが、特に 2 つの方法が採用されています。
サンプリング・エッジの後ろ数ナノセカンドでピンを更新する
場合、SCLK 周波数を低下させずにリードバックを可能にする
ようにバス上で信号の安定な値を保証するために、スレーブは
SCLK のほぼ全周期を必要とします。
1 つ目の方法は、駆動エッジで SDO/DATA OUT ピンを更新する
方法です(図 7 参照)。
主なトレードオフは、マスター側が低速の場合にあります。こ
れは、サンプリング・エッジの後の数ナノセカンドしかピン上
にデータが安定していないため、マスターのホールド・タイム
の制限に反する危険性があるからです。この問題は、ホール
ド・タイムが 15 ns 以上と大きくなると発生します。この場合、
DATA IN ピンの新しいデータを必要なだけ遅延させるロジッ
ク・ゲートを使うことが推奨されます(図 6 参照)。
2 つの方法にはそれぞれに技術的な理由がありますが、トレー
ドオフを理解することが重要です。
マスターでは最初の方法が使われます。これは SDO ドライバが
高速な切り替えをサポートするようにデザインされているため
です。
SAMPLING EDGE
スレーブではマスターに比べて駆動能力の低い SDO ドライバを
内蔵しているため、使用する方法はデータ転送レートに依存し
ます。
DATA OUT
SCLK
SDO
SDI
U1
MICROCONTROLLER
DATA IN SCLK CS
CS
ORIGINAL
SCLK
DELAYED
SDO 信号を駆動エッジで更新する場合、信号はサンプリング・
エッジの数ナノセカンド前に安定している必要があるため、ピ
ンは信号の更新にクロック周期の 1/2 以下の時間しか使うこと
ができません。
図 6.イネーブル時間
幾つかのゲート技術と NOR ゲートの伝搬遅延 (typ)を表 2 に示
します。
正しいリードバックを保証するためには、サンプリング・エッ
ジの前に信号が安定することを保証するため SCLK を狭くする
必要があります。
表 2.ゲート技術と伝搬遅延
この例では、最大変化時間を 36 ns としています。
Technology
Propagation Delay
SCLK 立上がりエッジから SDO デ
ータ有効
AHC
4.4 ns
HC
9 ns
HCT
11 ns
t9
36 ns
これは、最大サイクル・タイムが 36 ns + マスター・セットア
ップ・タイム (10 ns と仮定) = 46 ns となるため、リードバック
の最大 SCLK 周波数は約 10 MHz となることを意味します。
t4
t1
t2
t7
SCLK
t3
t8
tt99
C2
C3
C1
C0
D6
D7
D5
t10
D2
D1
D2
D0
11585-007
SYNC
SDO
図 7.SDO 駆動エッジでの更新
CS
t8
1
2
3
4
5
18
19
t7
tt4
t3
DOUT A
THREE-STATE
20
20
t6
2121
DB13A
B13A
4
DB12A
DB12A
DB11A
DB11A
図 8.遅延 SDO 更新
Rev. 0
- 4/7 -
31
32
33
t9
t5 t5
DB1A
DB0A
tQUIET
THREESTATE
11585-008
t2
SCLK
UPDATE SDO
11585-009
もう 1 つの方法は、サンプリング・エッジの数ナノセカンド後
に SDO/DATA OUT ピンを更新する方法です(図 8 参照)。
AN-1248
アプリケーション・ノート
変換開始信号としてのCS
その他の考慮すべき事項は?
幾つかの ADC ではピン数を減らすためや、小型パッケージへの
組み込み、あるいは単に配線の複雑さを減らすために、1 本の
ピンを複数の機能で共用しています。
イネーブル時間
イネーブル時間は、SPI インターフェースをイネーブルしてデ
ータの受信または送信を可能にする速さを決定します。これは
一般に SCLK サンプリング・エッジと呼ばれます(図 9 参照)。
CSを使って内部で変換開始信号を発生させる場合、2 つの方法
があります。
ディスエーブル時間
1 つ目の方法
ディスエーブル時間は、SPI をディスエーブルして新しく発生
するサンプリング・エッジの変化を無視する速さを決定します
(図 9 参照)。
t10
SCLK 信 号 を 内 部 ク ロ ッ ク と し て 使 用 す る た め 、 連 続 的 な
SCLK が必要です。この場合、SCLK の速度は最大値と最小値の
間に制限されます(表 3 参照)。
tt 9
t1
表 3.SCLK 周波数制限の例
9
SCLK
t8
tt44
t2
t3
t7
Parameter
Min
Max
Unit
Description
fSCLK
0.01
20
MHz
SCLK frequency
CS
SDI
t6
DB31
下に説明するイネーブル・タイムに似たタイミングの制約が、
図 10 のようにあります。さもないと、マスターがサンプリン
グ・エッジを正しく発生できず、変換が失敗します。
11585-010
t5
DB0
図 9.イネーブル時間とディスエーブル時間
t1
CS
tCONVERT
11
SCLK
t6
2
3
4
SDATA
Z
ZERO
13
t4
t3
THREESTATE
B
5
ZERO
ZERO
DB11
14
t7
DB10
15
t8
tQUIET
DB2
DB1
4 LEADING ZEROS
図 10.変換時の連続 SCLK
Rev. 0
16
t5
- 5/7 -
DB0
THREE-STATE
11585-016
t2t2
AN-1248
アプリケーション・ノート
2 つ目の方法
接続
この例ではデバイスは変換クロックを内蔵しています。この場
合、一番微細な LSB ビット変換へのデジタル・フィードスルー
の影響を小さくするため、変換中は SCLK パルスを発生しない
ことが推奨されます (図 11 参照)。
SPI インターフェースでは、1 個または複数のスレーブをマスタ
ーから制御する様々な接続が可能です。
スタンドアロン接続
この構成では、1 個のスレーブと 1 個のマスターのみが存在し
ます (図 12 参照)。
tCNVH
CNV
tCONV
tCONV
tACQ
MASTER
(QUIET
TIME)
ACQUISITION
tSCKL
1
2
3
17
tHSDO
18
19
D1
D0
D17
D16
tDIS
CS
図 12.スタンドアロン構成
デイジーチェーン接続
この構成では、1 個のマスターと直列に接続された複数のスレ
ーブが存在します(図 13 参照)。
SPI インターフェースを FPGA ではなくハードウェアで構成す
る場合、SCLK ピンと CS ピンを正確に調整することは不可能で
す。この場合は、GPIO を CSとして使用して、CSと SCLK の関
係を正確に制御することが推奨されます。
MOSI
SDI
MISO SCLK CS
SDO
SDI
U1
MICROCONTROLLER
CS
SCLK
SDO
U2
CS
SCLK
11585-013
変換レディ・ピンとしての SDO
幾つかの ADC では、SDO が 2 つの機能を持っています。これ
は一般に SDO/RDYと表されています。SDO ピンが CSによりデ
ィスエーブルされ、変換が完了するまで高インピーダンスを維
持します。変換が完了したとき、このピンはロー・レベルにな
って、変換の終了を表示します。
図 13.デイジーチェーン構成
この構成の主な利点は、必要な接続ライン数が少なくなること
です。
このモードで動作させる場合、後続デバイス間のライン伝搬遅
延のため、クロック周期を大きくする必要があります。さらに、
所要クロックは U1 と U2 の和であるため、クロック数を増やす
必要があります。
SPI モードの相互接続
スレーブが使用する特定の SPI モードにコントローラを設定で
きないとき、または同じ SPI モードですべてのデバイスを動作
させる必要があるとき(すなわちデイジーチェーン・モード)、
モードを外部から変更する必要があります。
デイジーチェーン構成での代表的な送信を図 14 に示します。先
頭データ・ワードは接続されたマスターから最も遠いスレーブ
に、最終データ・ワードは最も間近のスレーブに、それぞれ割
り当てられます。
次の 2 つのケースを考えます。
•
SDO
CS
図 11.変換時に静かな SCLK
•
SDI
DATA IN
tSCKH
tCSDO
SDO
SCLK
DATA OUT
tQUIET
11585-017
SCK
SLAVE
SCLK
tSCK
11585-012
CONVERSION
ACQUISITION CONVERSION
モードが相補的(ロジックの論理が逆の場合)で、MODE
1 = MODE 2または MODE 0 = MODE 3になる場合
SCLK ラインにインバータ・ゲートを使用すると、問題は
解決されます。
モードが相補的でない場合
この場合の解決策は少し複雑になります。インバータとフ
リップフロップを使用するため、タイミング問題が生ずる
のでこれを回避することが推奨されます。
デイジーチェーン・モードに設定できるデバイスがありますが、
デフォルトでは、デバイスはスタンドアロン・モードでパワー
アップします。すなわち、そのままでは SDO ピンはデータを出
力しません。
この場合、このデバイスをチェーンの先頭に置いて、デバイス
に直接書込みを行ってデイジーチェーン・モードをイネーブル
することが推奨されます。モードをイネーブルする前に SDO は
高インピーダンスであるため、SDO ピンにプルアップ (または
プルダウン) 抵抗を接続して、チェーン内の 2 番目のデバイスへ
転送されるデータを制御することをおすすめします。
SDO ピンを複数の機能 SDO/RDYに使用する場合、同じ問題が
生 じま す。プル アッ プ抵抗を 接続 して、電 気的 問題を回 避
し、RDY 機能の使用を続けることが推奨されます。
Rev. 0
- 6/7 -
AN-1248
アプリケーション・ノート
SCLK
1
2
16
17
18
32
CS
DB15
DB0
DB15
DB0
MOSI
DB15
INPUT WORD FOR U1
DB0
DB15
DB0
SDO_U1
UNDEFINED
INPUT WORD FOR U2
11585-014
INPUT WORD FOR U2
図 14.デイジーチェーンのタイミング図
並列構成
この構成では、SCLK と SDI がすべてのデバイス内で共用され
ます。回路 (またはパターン) の寄生容量があるため、クロック
周期を単体の場合より少し大きくすることが推奨されます。
この構成では、1 個のマスターと並列に接続された複数のスレ
ーブが存在します (図 15 参照)。
SLAVE
MASTER
DATA OUT
SDI
この構成での注意として、例えばデバイスをデイジーチェー
ン ・モ ードに構 成し た場合の よう に、幾つ かの デバイス で
は SYNCと同期して SDO をディスエーブルすることはできませ
ん。
SDO
SCK
SCLK
CS1
CS
CS2
SLAVE
DATA IN CS3
この場合は、電気的問題を回避するため、SDO ピンをバス構成
にしないことが推奨されます。あるいは、SDO ピンをディスエ
ーブルできる場合、直列抵抗を SDO ピンに接続して、最初の送
信や開始時に SDO ピンをディスエーブルする際の電気的問題を
小さくします。
SDO
SDI
SCLK
CS
SLAVE
SDI
SDO
CS
11585-015
SCLK
図 15.並列構成
©2015 Analog Devices, Inc. All rights reserved.
Rev. 0
商標および登録商標は、それぞれの所有者の財産です。
- 7/7 -