注釈

こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 愛好者コミュニティ (Facebook) へようこそ! Raspberry Pi、Arduino、ESP32 を仲間と一緒にさらに深く学びましょう。

参加する理由

  • 専門的なサポート: 販売後の問題や技術的な課題をコミュニティとチームで解決。

  • 学びと共有: 技術やチュートリアルを交換し、スキルを向上。

  • 限定プレビュー: 新製品発表や先行情報に早期アクセス。

  • 特別割引: 新製品を特別価格で購入可能。

  • イベント・プレゼント企画: プレゼントや季節キャンペーンに参加。

👉 一緒に探求し、創造しましょう。今すぐ [ここ] をクリックして参加!

MCP3008

MCP3008 は 8 チャネル入力を備えた 10 ビット逐次比較型アナログ-デジタルコンバータ (ADC) で、SPI (Serial Peripheral Interface) 通信プロトコルを採用しています。 マイクロコントローラと接続してアナログ入力信号をデジタルデータに変換し、後段処理に利用できます。

../../_images/MCP3008.jpg

動作シーケンス

MCP3008 の変換は、CS (チップセレクト) ピンを Low にすることで開始され、デバイスとの通信が有効になります。 その後、マイクロコントローラは SPI インターフェースを介して 3 バイトの制御ストリームを送信し、設定と入力チャネルの選択を行います。

送信される最初のバイトにはスタートビットとシングルエンド/差動入力の選択ビットが含まれます。 次のビットで 8 チャネル (CH0〜CH7) のどのチャネルを読み取るか指定します。 データは SPI クロック (SCLK) の立ち上がりエッジでデバイスにシフトインされ、同時に変換結果が返されます。

選択された入力チャネルが安定するまで内部で短いディレイが設けられ、MCP3008 はサンプル・アンド・ホールド回路と逐次比較レジスタ (SAR) コンパレータを用いて 10 ビットの A/D 変換を実行します。

変換結果は MISO (Master In Slave Out) ラインを通じてマイクロコントローラに送信されます。 10 ビット結果の最上位ビット (MSB) から順に送信され、残りのビットが続きます。 マイクロコントローラはこの間に SPI バスを介して結果を読み出します。

10 ビットのデジタル値がすべてシフトアウトされた後、MCP3008 はサイクルを終了し、次のコマンドを待機します。

../../_images/MCP3008detail.png