SPIバス終端およびプルアップ抵抗


12

マイクロコントローラー(ATMELシリーズ)は、SPIプロトコルを使用してスレーブデバイスと通信する必要があります。ハードウェアを設計しています。最大SPIバス速度は1 MHzです。マスターとスレーブ間の距離は50mm未満です。

Q1)このSPI速度(1MHz)での反射を回避するために、SPIバスに直列に終端を追加する必要がありますか?もしそうなら、その値をどのように計算し、どこに終端抵抗を配置すればよいですか?マスターの近くまたはスレーブの近くですか?

Q2)他のリファレンスデザインを見てきましたが、すべてのSPI信号にプルアップ抵抗を使用する場合もあれば、一部の信号(CSまたはMISO)のみに使用する場合と使用しない場合があります。SPI信号にはプルアップ抵抗が必要ですか(SPIポートはプッシュプル構成のため)?ピンがフローティングになる唯一の時間は、マイクロコントローラーが電源を取得してピンを出力として設定できるようになるまでです。それでは、プルアップ抵抗を使用する必要がありますか、またはデザインでプルアップ抵抗を使用しない場合はどうなりますか?

回答:


20
  1. 1 MHzおよび50 mm(2インチ)では、終端は必要ありません。通常のオンボードデジタル信号があり、非常に高速な信号すらありません。
  2. SPIラインにプルアップまたはプルダウンは必要ありません。使用すると、SPIラインは常に明示的に両方向に駆動されます。ただし、MISOラインにプルダウン(またはプルアップ)を配置することをお勧めします。これは、このラインがスレーブ選択ラインがアサートされている場合にのみスレーブによって駆動されるためです。バスが使用されていない場合、すべてのスレーブ選択ラインは通常アサートされないため、MISOはフロートします。スレーブが選択されていない限り、値を調べていないため、任意のデータ値は関係ありませんが、このラインの中間電圧により、マスターのレシーバーに過剰な電流が流れたり、発振する可能性があります。このため、通常はMISOに100kΩプルダウンを配置します。使用していないときは、ラインを無害に低く保ちます。使用していないときでもすべてのスレーブに電力が供給されている限り、プルアップを使用することもできます。

3
CS / SSピンをプルアップする重要な理由の1つは、マスターがリセットまたは起動しているときに、すべてのスレーブが選択解除されたままであることを保証することです。その場合、そのピンは通常hi-Zでフローティングであるため、複数のスレーブが選択されてMISOバスを駆動する可能性があります(結果として短絡)。多分これはこの答えに役立つ追加でしょうか?
Matthijs Kooijman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.