SPIバス接続-ループするかしないか?


9

SPIバスの物理的な接続について質問があります。

SPIマスター(PIC32デバイス)といくつかのスレーブ(この場合はPIC16デバイス)があります。私はスレーブに書き込むだけで、プロトコルはどちらがいつ何をするかを処理するので、心配するMISOまたはSS信号はなく、データとクロックラインをすべてのスレーブに並列化しています。バスの全長は数フィート(たとえば60cm)以下で、SCKを8MHzで実行しています。

これで、スレーブデバイス(実際には他のボードのインターフェイスノード)の物理的な配置は、SPIバスがマスターにループバックして、各ループの両端をそれぞれMOSIとSCKに接続できるようになっています。

次の図は、私が意味することを示しています-私は赤い点線の接続について話している-そして問題は、これを行うのは良いことかそうでないかです。

SPIバス

私は同じような旅をしている電源とグラウンドを持っています、そしてこれはスレーブによって引き起こされる電圧降下を最小化するので明らかに-そして明らかに-有用です。しかし、これらの信号線で同じことをするのが良いことか悪いことかは分かりません。代わりに、ある種の終端-接地への抵抗(?)-または直列抵抗を使用して反射を抑制する必要がありますか?

いわばドットをつなげて、つなげずに両方試しましたが、機能的な違いはなく、スコープにも変化はありませんが、60cmより少し長かったり、8Mhzより少し速かったら、問題がありますか?何か変更があった場合にトラブルが起こらないようにするためのアドバイスを探しています。

この質問は、60MHz SPIバス@ 8Mhzで特に私を悩ませていますが、他の状況についての一般的な原則はありますか?I2cバスのプルアップは別の場所に配置する必要がありますか?

適切な読書資料へのリンクも歓迎します-この特定の質問をカバーするものは何も見つかりませんでした。


その接続で解決しようとしている問題がよくわかりません
PlasmaHH

@PlasmaHHまあ、それは本当に私の質問です-私には解決する問題はありませんが、私にはそのオプションがあります。電力線に役立つことは知っていますが、信号線に役立つかどうかはわかりません。ばかげた質問ですか?多分私は考えすぎです。
ロジャー・ローランド

理想的には、4層PCBと専用のVddプレーンとVssプレーンは、各デバイスに非常に近い専用のバイパスキャップと共に、いくつかの理由でここで良いアイデアになると付け加えます。
rdtsc

1
IMO私はあなたが赤で提案した接続を行い、スレーブ3からスレーブ4への接続を取り除きます
lucas92

回答:


9

ループバック?番号。回線が終了を必要とするのに十分長い(risetime * c / 10などより長い)場合は、回線を適切に終了するのに十分強く駆動し、回線と終端を適切に一致させます。回線が終端を必要としないほど短い場合、ループバック接続で探しているように見える「余分な」導電性は必要ありません。

直列抵抗?番号。このスタイルのソースエンド終端は、回線の終端にあるシングルポイントレシーバーでのみ機能します。ラインの前のポイントでは、レシーバーの最悪の可能性のある波形が得られます。これは、電圧が半分になるまでのステップであり、その後にドウェルが続き、さらに電圧が上がるまでのステップが続きます。


わかりました- 「十分に強く駆動するという意味を説明できますか?あなたはPICから直接ではなく、MOSFETまたは何かを経由して意味しますか?また、「適切に終端する」とは、グランドへの抵抗を意味しますか?終了の必要性を決定するクロック周波数ではなく、立ち上がり時間のポイントを理解しています。経験則の完全な計算を示すことができますか?立上り時間はどの単位ですか?なにc/10
ロジャー・ローランド

@RogerRowlandは「十分に強力」であるため、終端の負荷に適切なロジックレベルを開発します。uC出力は十分に強い場合もあれば、そうでない場合もありますが、終端とそのドライブ強度によって異なります。十分なドライブ電流が得られない場合は、バッファを使用するか、並列に2つ使用します。「適切に」とは、シャント抵抗インピーダンスを意味します。それがグラウンドにあるか、ミッドレールにあるか、またはAC結合されているかは、システムによって異なります。ドライバをトライステートにする場合は、有効なロジックレベルを維持するために、グランドに接続する必要があります。そうでない場合、中間レールへの終端はドライバーの負荷を減らします。
Neil_UK 2016

@RogerRowlandの立ち上がり時間(秒)、光速(m /秒)、mでの立ち上がり時間* c、/ 10は、「信号線上に同時に存在する立ち上がり時間のわずかな部分」
Neil_UK

ニールに感謝します、これは本当に便利です!私はあなたが言ったことをシンクすることを確かめるためにいくつかの実験を行うことによって利益を得ると思います-多分雨の週末がよく費やされるでしょう。
Roger Rowland

3

ループトポロジで発生する問題は、反射を抑制するためにターミネータを正しく配置するのが難しいことです。これは8MHzではそれほど重要ではありませんが、より高い周波数またはより長いラインでは問題になる可能性があります。

点線が役立つ唯一のケースは、マスターからへの伝播遅延SLAVE 6が許容できない場合です。その場合、あなたは、点線を接続したが、途中でループのどこか(例えば、間破るSLAVE 3SLAVE 4)を、独立した各ブランチを終了します。


2

高速信号または長い回線では、信号反射が問題になります。このような場合、ラインの端とグラウンド(ラインの最初ではない)を接続する抵抗を配置して、ラインを適切に終端する必要があります。終端により、ラインは「電気的に無限に見える」ので、信号は戻りません。終端には、反応インピーダンスに対抗するためのLC要素も必要になる場合があります。

ただし、お客様のケースでは、ターミネーションは必要ありません(電気的にノイズの多い環境で動作していないことを想定して、信号速度の短い線)。そのため、違いはありません。また、信号をループさせるのは悪い設計習慣です。これを行うと、信号ループが発生し、回路にノイズが発生します(双方向にループします)。また、ラインのRFノイズを簡単にキャプチャできます。

さらに、グラウンドと電源ラインをループさせることも通常は良くありません。デジタルスイッチングノイズとグラウンドループもあり、それらはアナログ回路に劇的な影響を与える可能性があります。必要に応じて、Yフォーク(遠端では接続なし)を使用して、電圧降下を減らすことができます。それでも不十分な場合は、幅の広いトレースを使用してください(幅の広いトレース->抵抗が少ない->電圧降下が少ない)。

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