Raspberry Piは複数の拡張ボードをどのように区別しますか?


8

さまざまなプロジェクトでRaspberry PiのGPIOを使い始めたばかりです。RPiには多くのブレークアウトボードがあり、それらの多くはボードを互いに積み重ねるためのピンを備えています。GPIOピンはそのまままっすぐ進み、すべてのボードに共通の同じピンがあるようです。これは、スタック内のすべてのボードがRPiからまったく同じ信号を受信し、それに応じて動作することを意味します。これは、あるボード用のコマンドが別のボードの動作方法に影響を与えることで、多くのエラーを生成する可能性があるようですが、明らかにこれは起こりません。

では、Raspberry Piはどのボードがどの特定のコマンドを取得しているかをどのようにして知るのでしょうか。特定のボードのみが認識し、残りのコマンドの受け入れを開始する、ある種の初期化コマンドはありますか?


これは、積み重ね可能なarduinoシールドやその他のさまざまなコンピューティングプラットフォームでも見られるものです。
cspirou 2015年

私が恐れている答えは、あるボードが別のボードを検出してそれ自体を再構成する標準的な方法はないということです。購入する前に各ボードの詳細を調べ、相互に連携できるかどうかを自分で判断する必要があります。
joan

回答:


5

コンピュータは、バスと呼ばれるシステムを使用して、同じワイヤセットを介して複数の周辺機器をCPUに接続します。 I2CSPIは、pi GPIOピンで使用されるバスシステムの例であり、(内部バスによって管理される)同じ物理ピン上の複数のデバイスを有効にしますが、異なるアドレスを使用します。アドレス指定は、バスシステムプロトコルによって作成された抽象化です。これは、インターネットへの同じ物理接続を使用して複数のネットワークアプリケーションをすべて同時に実行する方法に少し似ています。

たとえば、リンク例からのスタック可能なボードの1つであるRTC Pi Plusを見てみましょう。

ここに画像の説明を入力してください

ボックスの5つの接続の手前に注意してください。これらは、反対側のピンに対応しています。彼らはラベル付けされています:

  • 5V =他のデバイスと共有可能な電源。
  • GND =グランド、これも共通。
  • SDAおよびSCL = I2Cバスピン。3番ピンと5番ピンのpiにあります。I2Cバスには、通信にこれらの同じ2つのピンを使用して、かなりの数のデバイスを接続できます。
  • SQW =これは「方形波」を表すと思います。おそらく、電子的に知識のあるメンバーの1人がその目的を説明する素晴らしいコメントを残すでしょう。

つまり、ほとんどのピンはこのボードでまったく使用されていません。それらは、積み重ねを可能にするためだけにあります。それが使用するものは、他のデバイスと同時にすべて共有可能(またはほとんどの場合、まだSQWについて知らない)です。

このようにスタックすることの本当の制限は、関係するピンの数ではなく、供給できる電力量と消費される量の関係になります。電源を追加すると制限になるかもしれませんが、スタックを外側に移動し、はしごを使用して作業を開始する必要があると思います。;)


3

HATボードは1つしか持てないので、そのような問題はありません。複数接続できるボードもありますが、HATボードではありません。


1
HATは正しいとは言えないかもしれませんが、GPIOピンに接続するボードについて話しています。次のサイトは、そのようなボードの高いスタックを示しています。 abelectronics.co.uk 「HAT」を削除するように質問を変更できます
cspirou

1

では、Raspberry Piはどのボードがどの特定のコマンドを取得しているかをどのようにして知るのでしょうか。

Piは知りません。確認する必要があります。

問題は、複数の拡張ボードを接続する場合、信号線が2回以上使用されないようにするか、(@ goldilocksがすでに示唆しているように)いくつかの線を共有する複数のデバイスで動作できるバス方式を実装する必要があることです。これがどのように行われるかを理解するために、古い ISAバスで読むことをお勧めします。GPIOをデータおよびアドレスラインとして使用して実装できるもの(および、苦労している場合)。

特定のボードのみが認識し、残りのコマンドの受け入れを開始する、ある種の初期化コマンドはありますか?

HATは問題外ですが、HATが使用する識別スキームは一見の価値があります。無重ね帽子*があることに注意してください(パーラズベリーパイブログ。スタッカブルHATSは仕様の議論で紹介-結局、それが原因自動構成し、ユーザーエラーの可能性の複雑さの大幅な増加に投げました)。したがって、常に1つのHATのみが接続され、そのEEPROMが読み取られ、その情報がデバイスツリーで利用可能になります。


*帽子が同じタイプで、複数の異なる識別を必要としない場合は積み重ね可能な帽子を作成することが可能です。たとえば、Raspberry Pi用Adafruit 16チャネルPWM /サーボHATです

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