Qwiicの概要とFAQ


APDahlen Applications Engineer

Qwiicとは?

Qwiicはマイクロコントローラと関連ハードウェアのための便利な相互接続エコシステムです。典型的なアプリケーションは、Qwiicを搭載したマイクロコントローラと、デイジーチェーン接続された1つ以上のブレークアウトボードで構成されています。Qwiicの目的は、「Qwick 」とInter-Integrated Circuit(I2C)をもじった名前に反映されています。Qwiicのブレークアウトエコシステムは、シンプルな押ボタンインターフェースから環境センサ、GPSレシーバまで多岐にわたります。

図1に示すSparkfunのredboard DEV-15123は、Microchip (Atmel)のATMega328を搭載した代表的なQwiic搭載マイクロコントローラです。プリント基板(PCB)の右上に4ピンのJSTコネクタが見えます。

このFAQは、エンジニアが学生のために書いたものです。内容は経験レベル別に構成されており、DigiKeyの物流から始まり、データ破損などの高度なトピックへと進んでいきます。最後に、ブレッドボード不要という特長を有する、人気のあるQwiicの代替品を紹介しています。

図1: 代表的なQwiicマイクロコントローラの写真です。Qwiic JSTコネクタはプリント基板の右上にあります。

Qwiicケーブルはどこで入手できますか?

さまざまなケーブルをDigikeyでは提供しています。可能な限り短いケーブルをお勧めしますが、最大1.6フィート(500mm)まで入手可能です

図2に示すようなさまざまなケーブルが含まれているSparkFunのQwiicケーブルキットに興味がありますか。

図2: SparkFunのKIT-15081に付属するQwiicケーブルの写真

Qwiicマイクロコントローラとブレークアウトボードはどこで購入できますか?

DigiKeyでは、Qwiicエコシステムのデバイスを多数ご用意しています。まず、拡張ボード、ドーターカードのカテゴリにアクセスします。次に、図3に示すように、プラットフォームフィールドに「qwiic」と入力します。残りの製品をすべて選択し、「フィルタの適用」をクリックします。

同様の手順で、DigiKeyの組み込みMCU & DSP評価ボードのカテゴリから製品を検索できます。

図3: DigiKeyのパラメトリック検索エンジンを使用してQwiic部品を選択します。

Qwiicネットワークに接続できるデバイス(ノード)の数と、ケーブルの最大長は?

答えはいくつかの要因によります。

  • リアルタイム性能:各モジュールとの通信には時間がかかります。多くのモジュールがインストールされている場合、この遅延が大きくなる可能性があります。これはシステムのレスポンスの低下として現れます。マイクロコントローラやネットワークは、現実の制約に対応するための必要なリソースを持っていない可能性があります。

  • ネットワークの制約:本記事で後述するように、ネットワーク速度と干渉に対する脆弱性は、ノード数が増加するにつれて望ましくないほど増加します。

  • 電力の制約:マイクロコントローラボードはすべてのQwiicモジュールに電力を供給します。モジュールが多いと、マイクロコントローラボードのレギュレータに過負荷をかける可能性があり、予期せぬサーマルリセットや機器の破損につながることもあります。

技術的なヒント: Qwiicネットワークのワーストケースの電力消費量を計算するのは良い方法です。すべてのモジュール電流の合計を計算し、これがマイクロコントローラボードが供給できる電力よりも小さくなるようにします。優れた設計手法には、予期せぬ動作や高温を緩和するためのディレーティング係数も含まれます。合理的な基準としては、電流をマイクロコントローラのPCB定格電流の50%未満に抑えることです。

技術的なヒント: プログラマーの初心者は、コードに遅延を実装する際にしばしば問題に遭遇します。例えば、多くの人はArduinoのdelay( )関数や、プラットフォーム固有の同等の関数を使います。これはすべての動作を事実上停止させてしまい、マイクロコントローラを機能停止させてしまうため、望ましくありません。ノンブロッキング手法を実装すると、遅延が完了するのを待つ間、マイクロコントローラはネットワーク通信などのタスクを続けることができます。

マイクロコントローラボードが元々Qwiic対応していない場合、Qwiicを追加するにはどうすればよいですか?

Quiicシステムは、ほとんどのマイクロコントローラでサポートされているI2Cをベースにしています。ハードウェアレベルでは、Spark Fun DEV-14495のようなアダプタボードが必要です。マイクロコントローラのI2Cハードウェアを設定し、インターフェースする必要があるため、ソフトウェアはより複雑になる可能性があります。状況によっては、Arduino Wireライブラリを使用するのと同じくらい簡単な場合もあります。また、ハードウェア記述言語(HAL)を使用したり、マイクロコントローラの特殊機能レジスタ(SFR)を直接制御できる場合もあります。

図4: SparkFunのDEV-14495 Qwiicアダプタボードの写真

技術的なヒント: 多くのマイクロコントローラは2つ以上のI2C機能を搭載しています。2つのQwiicネットワークを実装することで、追加のデバイスに対応し、全体のケーブル長を短くすることができます。SparkFunのDEV-14495アダプタを使えば、比較的簡単にできます。

Qwiicの利点は何でしょうか?

従来の方法と比較すると、Qwiicは電源と通信の両方を1つのコネクタで供給することで、配線の複雑さを最小限に抑えます。Qwiicシステムを使用するのにかかる時間は、従来のボードと比較してほんのわずかです。これは、以下の配線を含む4ピンのJSTコネクタによって容易になります。

  • 3.3 VDC
  • GND
  • SDA:シリアルデータ
  • SCL:シリアルクロック

Qwiicの利点はソフトウェアにも及びます。ほとんどのメーカーはQwiicボード用のライブラリを提供しています。その一例がArduino Plug and Make Kitで、図5に示すようにQwiicを搭載したModulinoボードが用意されています。これらのボード用のドライバはArduino IDEのライブラリマネージャを使ってロードします。

図5: Qwiic Modulinoを4枚搭載したArduino Plug and Make Kitの写真

Qwiicの限界は何でしょうか?

Qwiicの限界は、ベースとなるI2C通信プロトコルを反映しています。この基本的な依存関係によって、データ転送速度、ケーブルの長さ、ネットワーク上で許可されるデバイスの総数が決まります。

信号速度

I2Cはもともと、オンボードで情報をやり取りするための簡略化された方法として40年以上前に設計されていることを思い出してください。対応するプルアップ抵抗付きのオープンドレインおよびオープンコレクタ回路に依存しているため、信号の遷移がコンプリメンタリドライバに比べて遅くなります。

デバイスが増えると、状況は悪化します。各デバイスの静電容量とケーブルの静電容量が信号の遷移を遅らせます。これは既知の問題であり、そのためQwiicクロック信号はしばしば100kHzの周波数に絞られます。

信号の破損

I2C信号を使用するQwiicシステムは干渉の影響を受けやすいです。例えば、モータの電源ケーブルの隣にQwiicケーブルを通すと、モータのケーブルの磁気エネルギーが通信ケーブルに入り込み、データの破損を招きます。通信ケーブルと電源ケーブルは必ず遠ざけてください。また、ケーブルを直角に交差させることで、磁界の結合に伴う干渉を最小限に抑えます。

技術的なヒント: 信号の破損が予想される場合は、RS-422/485の使用をご検討ください。ツイストペアワイヤと平衡信号は、良好なノイズ除去により長距離で通信することができます。重要なアプリケーションには、光ファイバ接続をご検討ください。

帯域幅

ここでいう帯域幅とは、Qwiicネットワークで共有できるデータ量のことです。各ネットワークデバイスは一定の時間を費やします。たとえば図6では、Arduino Pixels Modulinoとの通信に使用されるフレームの最初の部分を確認できます。クロックが100kHzの場合、このフレームの転送には約3msかかります。これだけでは大したことではありません。しかし、このようなデバイスが多数あると、リアルタイムシステムの動作が遅くなります。

図6: show( )メソッドによって開始されたArduino Pixels Modulinoに向けてのI2Cフレームの一部。フレームはデフォルトのPixels 0x6Cアドレスから始まります。

Qwiicの代替品にはどのようなものがありますか?

先ほど、Qwiicを素早く簡単にできるプラットフォームと定義し、そこからマイクロコントローラ関連デバイス用のさまざまなブレークアウトボードを探索することができると述べました。また、基礎となるI2C技術に基づくQwiicシステムの限界もいくつか明らかにしました。

すべてを考慮すると、Qwiicシステムの限界はスピードです。したがって、Qwiicブレークアウトボードに搭載されるデバイスの種類や性能には限界があります。例えば、I2Cアナログデジタルコンバータ(ADC)を見つけることはできます。しかし、それは高速デバイスではありません。これに対しSPI(Serial Peripheral Device)ADCは、おそらく25~100倍高速に動作します。性能を改善するために、パラレル出力ADCを使用することができます。信号終端に適切な注意を払えば、さらに25倍から100倍の改善が得られます。

技術的なヒント: 経験則として、I2Cは多数のデバイス間の低速通信に使われます。SPIは、少数の(できれば1つの)デバイスのための高速通信に使用されます。一般的なI2Cのクロックは100kHzの範囲ですが、SPIは10MHzで動作します。SPIは、I2Cに必要なアドレスオーバーヘッドが不要なので、より高速です。

Qwiicに関連した代替品

Gravity(DFRobot)、Grove(Seeed Studio)、STEMMA(Adafruit)など、さまざまなQwiicの類似システムがあります。これらのシステムはすべてI2Cインターフェースを使用しているため、速度に大きな違いはありません。これらのシステムの説明は、この記事の範囲外です。

代替品MikroBUS

MikroElektronikaのMikroBUSは8ピンコネクタで、速度の優位性が際立っています。個々のブレークアウトボードが引き続きI2C を使用する場合もありますが、メーカーがより高速なSPIインターフェースを使用する場合もあります。その一例が、図7に示すTexas InstrumentsのADS127L11を搭載したMikroElektronikaのADC 23 CLICKです。

図7: MikroElektronikaのMikroBUS 8ピンバスを搭載したMikroElektronikaのADC 23 CLICKの写真

代替品Pmod

DigilentのPmodシステムは、ブレッドボード不要の使いやすいブレークアウトボードを提供します。また、デバイスによってはI2CとSPIのインターフェースが混在しています。図8に示すDigilentのPmodAD5はその代表的なデバイスです。これはAnalog DevicesのAD7193用のブレークアウトボードです。

図8: 6ピンPmod接続のDigilentのPmodAD5の写真

代替品FeatherとFeatherWing

AdafruitのFeather製品は、コンパクトな積み重ね可能なアセンブリを提供します。代表的なFeather製品を図9に示します。このAdafruit 3231は、RF SolutionsのRFM95W(LoRaモデム)用のSPIインターフェースを備えています。

図9: Adafruitの3231 FeatherWing LoRa modemの写真 このモジュールはSPI 接続を備えています。

その他

リストは確かにもっと広げることができます。しかし、「簡単」かつ「初心者」という条件を含めると、前述のデバイスが最もよく使われています。例えば、フィールドプログラマブルゲートアレイ(FPGA)や、それに関連するFPGAメザニンカード(FMC)高ピン数(HPC)について説明することもできますが、このようなデバイスは、複雑さとコストの観点から、もはや初心者のカテゴリではありません。

おわりに

Qwiicエコシステムは、ブレッドボードを使用せずにさまざまなマイクロコントローラやマイクロコントローラアクセサリをテストするための、使いやすい方法を提供します。また、多数のソフトウェアライブラリをサポートすることで、使いやすさがさらに向上しています。これらの特性により、初心者プログラマーでも新しいプロジェクトを迅速に立ち上げることができます。

この人気のシステムには、40年前に開発されたI2Cプロトコルに依存しているという限界があります。上級ユーザーは、MikroBUS、Pmod、Featherのような、より高速なSPIベースの技術に拡張したいと思うかもしれません。あるいは、ブレッドボードの構築や独自のPCBの設計から学ぶ(電気工学科の)学生もいるでしょう。
この情報が役に立ったら、いいねをクリックしてください。

また、以下のコメント欄にQwiicに関連する質問を追加して、このFAQを充実させてください。

ご健闘をお祈りします。

APDahlen

関連情報

以下のリンクから、関連する有益な情報をご覧ください。

この著者について

Aaron Dahlen氏、LCDR USCG(退役)は、DigiKeyでアプリケーションエンジニアを務めています。彼は、技術者およびエンジニアとしての27年間の軍役を通じて構築されたユニークなエレクトロニクスおよびオートメーションのベースを持っており、これは12年間教壇に立ったことによってさらに強化されました(経験と知識の融合)。ミネソタ州立大学Mankato校でMSEEの学位を取得したDahlen氏は、ABET認定EEプログラムで教鞭をとり、EETプログラムのプログラムコーディネーターを務め、軍の電子技術者にコンポーネントレベルの修理を教えてきました。彼はミネソタ州北部の自宅に戻り、このような記事のリサーチや執筆を楽しんでいます。




オリジナル・ソース(English)