I2CのIRQは何ですか?

このMPR121静電容量式キーパッド(リンク)で、IRQの目的は何ですか?

1
nl ru de
あなたはそのボードが周囲に構築されているICのデータシートを読むことによってそれを見つけます。
追加された 著者 Nick Alexeev,

4 答え

I2CのIRQとは何ですか?

他のいくつかの答えとは少し違う焦点を当てます。

I 2 Cスレーブは、I 2 Cバスト​​ランザクションを開始することはできないことを忘れないでください。したがって、I 2 Cキーパッドまたはタッチスクリーンコントローラ(または他のHMI)を有する場合、I 2 Cマスタは、いつI 2 Cからのデータを要求すべきかをどのように知っているだろうか。 2 Cキーパッドコントローラ、タッチまたはリリースがあったかどうかを尋ねる?

3つの可能性があります:

  • I2C Master sometimes polls the I2C keypad controller, but not as a high priまたはity.

    Problem - Potential delay between the touch/release and the I2C Master polling the I2C keypad controller, leads to poまたは user experience, due to perceived "lag" (delay) between a touch/release and the machine's response.

または

  • I2C Master spends lots of time polling the I2C keypad controller, to minimise any lag between a touch/release and the I2C Master actually detecting that this has occurred.

    Problem - I2C Master has fewer CPU cycles fまたは doing anything else, since it is spending so much of its time polling the I2C keypad controller. The I2C bus also has reduced bandwidth fまたは bus transactions to any other I2C devices, due to so many polls to the I2C keypad controller.

または

  • I2C Slave has an extra "interrupt" signal connected to the I2C Master (not part of the I2C specification, but this was introduced in SMBus). This allows the I2C Slave to alert the I2C Master and effectively say "poll me now!".

    Problem - Requires an extra signal line between the I2C Master and the I2C Slave.


As you see, your I2C keypad controller chose the last option (some I2C touch screen controllers do the same thing.) This is an example of the poll vs. interrupt choice, which occurs in computer science and elsewhere in life e.g. you could stay awake and continuously check the clock to see when to get up in the mまたはning (polling), または you could set an alarm and let that wake you (interrupt).

6
追加された
Sam - Zoebel/Zobelの論文に関してリンクを編集してくれてありがとう。あなたの意見の結果、私は原本をすべて見つけました。 私の最新の回答
追加された 著者 rthsyjh,

データシートから:

MPR121は、タッチがあるたびにトリガーされる追加の割り込みを備えたInter-Integrated Circuit(I 2 C)準拠デバイスです   ボタンが離されたことが検出されました。

したがって、nIRQ出力は、ボタンのタッチまたはリリースが検出されるたびに状態が変わります。

2
追加された

そのボードのデータシートで使われている部品ごとこちら、タッチするたびにトリガーされます またはリリースが検出されました。」

0
追加された

I2Cはマルチマスターバスですが、理論的にはキーが押されバスがアイドル状態になったときはいつでもキーパッドのようなデバイスがメインコントローラにデータを送信することができますが、I2Cマスターの寿命はかなり </それがバス上の only マスターであれば、より簡単です。 (すべての)バスマスタが任意の時間に他のデバイスが注意を要求する可能性に備えて準備されていない限り、キーボードのようなデバイスが何かが起こったときにだれにも知らせる方法はありません。消費電力が問題にならないのであれば、システムはそのようなデバイスに自分の状態を尋ねるだけでよいのです。しかしながら、そのようなアプローチは、興味のあることが何も起こらないときでさえも、継続的に電力を消費するでしょう。

多くの場合、これに対処するための最も簡単な方法は、そのようなデバイスに「割り込み要求」ピンを別に用意することです。複数のデバイスが同じ出力ピンを共有している場合、誰も何もおもしろいことを言っていないときにマスターはスリープ状態に入ることができます(そして、他には何もおもしろいことは何も起こりません)。何か面白いことが起きるとすぐに、誰かが/ IRQピンをアサートします。するとすぐにマスターはデバイスに何を言わなければならないかを尋ねることができます。

マスターが各デバイスに別々の/ IRQ入力を使用し、次にそれらを使用してどのデバイスと通信するべきかを決定することは可能ですが、多くの場合それは本当に必要ではありません。デバイスが何も言うことがないならば、それを尋ねることは一般的に非常に長い時間はかかりません。重要なのは、誰もが面白い話をしていない時代を認識し、その間の電力消費を最小限に抑えることです。

0
追加された