UART、SPI、I2C — これらが依然として重要である理由
Bluetooth モジュールは空中では 2.4 GHz で通信しますが、PCB 上では、コンソールの告白には UART、高速レジスタには SPI、センサーのゴシップには I2C など、昔ながらの銅線を介してチャットします。これらのバスはモジュールの母国語です。間違ったものを選択すると、「ワイヤレス」プロジェクトは有線の頭痛の種になります。
UART: レイジー シリアル ライン
TX と RX、通常はデフォルトで 3.3 V、115200 ボーです。 1 つのスタート ビット、8 つのデータ ビット、パリティなし、1 つのストップ ビットが完了しました。 UART は AT コマンド ブリッジに最適です。「AT+ADVSTART」を送信すると、C を 1 行も記述することなくモジュールが「OK」を返します。両側が同じクリスタルを共有していない場合、チップセレクト、フロー制御、ボーレートドリフトはありません。速度が二の次で人間の読みやすさが重要な場合に使用してください。
SPI: スピードの悪魔
4 本のワイヤ (MOSI、MISO、SCLK、CS) は、最新のモジュールで最大 32 MHz のクロックを供給します。レジスタは 8 ビット フレームでバーストするため、センサー データのストリーミングや 320×240 TFT の駆動に最適です。問題点は、チップセレクトごとに 1 つのマスター、1 つのスレーブがあり、チェーンするデバイスが多すぎるとトレースがネズミの巣になってしまうことです。生のスループットが必要で、すべてのペリフェラルに GPIO を専用にしても構わない場合は、SPI を選択してください。
I2C: ソーシャルバス
2 本のワイヤ (SDA と SCL) は、最大 127 台のデバイスのアドレス指定、データ、およびハンドシェイクを伝送します。毎秒数キロビットしか必要としない温度センサー、EEPROM、または RTC に最適です。ペナルティ: 共有バスは共有衝突を意味します。行儀の悪い奴隷が 1 人いると、会話全体が中断されてしまう可能性があります。配線の単純さが速度に勝る低速のマルチドロップ ネットワークには I2C を維持してください。
現実世界のシナリオ 1: UART フィットネス バンド
nRF52832 モジュールは、40 ドルのフィットネス バンド内に組み込まれています。 921600 ボーの UART は、生の加速度計データを電話機にストリーミングします。電話機は AT コマンドを送信して心拍数の収集を開始/停止します。モジュールにはカスタム ファームウェアはなく、ブリッジのみです。合計 5 本のワイヤ: TX、RX、VCC、GND、およびリセット ライン。ラジオはバーストとバーストの間にスリープするため、220 mAh のセルでバンドは 5 年間持続します。
現実のシナリオ 2: SPI スマート ロック
nRF52840 モジュールは、120 ドルのスマート ロックに電力を供給します。 16 MHz の SPI は、OLED ディスプレイと指紋センサーと通信します。このモジュールはマスターとして機能し、320 kbit/秒の表示データをクロックしながら、同時に 128 kbit/秒の指紋フレームをサンプリングします。 AES-256 は 52840 でハードウェア アクセラレーションされるため、無線が 30 秒間「オープン」をアドバタイズしている間、ロックは 200 ミリ秒未満でロック解除されます。同じ SPI バスは、新しいファームウェアを無線でフラッシュし、速度とセキュリティが同じ銅線を共有できることを証明しています。
高速道路の選択
速度を気にせず、素早いブリッジが必要な場合は、UART を選択してください。 1 つの高速ペリフェラルと多数の GPIO がある場合は、SPI を選択してください。低速センサーが多数あり、配線を最小限に抑えたい場合は、I2C を選択してください。どちらを選択する場合でも、覚えておいてください。2.4 GHz エア インターフェイスが登場するずっと前から、バスがボトルネックでした。
