<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MCP3911 on Deadline-Driven Developers</title><link>https://dddev.group/tags/mcp3911/</link><description>Recent content in MCP3911 on Deadline-Driven Developers</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sat, 01 Aug 2026 00:20:00 +0900</lastBuildDate><atom:link href="https://dddev.group/tags/mcp3911/index.xml" rel="self" type="application/rss+xml"/><item><title>消費電力測定と低周波回路の位相差観測に向けたMCP3911 2チャンネル測定器の設計</title><link>https://dddev.group/posts/mcp3911-voltage-monitor-development/</link><pubDate>Sat, 01 Aug 2026 00:20:00 +0900</pubDate><guid>https://dddev.group/posts/mcp3911-voltage-monitor-development/</guid><description>&lt;p>IoTデバイスの消費電流は、無線送信、センサー読み出し、スリープといった動作状態によって変化します。
どの状態が消費エネルギーを支配しているかを調べるには、平均電流だけでなく、時間に沿った電流の変化を記録する必要があります。&lt;/p>
&lt;p>瞬時電力を求める場合は、電流と同じ時刻の電圧も必要です。
オシロスコープなら二つの波形を同時に観測できますが、持ち出して現在値を確認する用途や、長時間記録する用途には大がかりです。
そこで、2チャンネルを同時に測定し、OLED表示とブラウザ記録を選べる50 mm角の測定器を作りました。&lt;/p>
&lt;div class="img-center-wrapper">&lt;a href="https://dddev.group/mcp3911/device.jpg">
 &lt;img src="https://dddev.group/mcp3911/device_hu_bab70ce3ed970a64.jpg"
 alt="完成したMCP3911 2チャンネル電圧／電流測定器"
 loading="lazy" decoding="async" class="img-center">
 &lt;/a>&lt;/div>
&lt;h2 id="oledによるハンディ計測とwebブラウザによる詳細解析の2モード">OLEDによるハンディ計測とWebブラウザによる詳細解析の2モード&lt;/h2>
&lt;p>測定器には、配線や現在値をその場で確認する機能と、時間変化を記録して解析する機能の両方が必要でした。
それぞれに別の測定器を用意すると、入力回路と測定条件も二重に管理することになります。&lt;/p>
&lt;p>この基板では、同じADC出力をOLED表示とブラウザ記録の両方に使用します。
USB未接続時は、STM32C011が取得した二つの現在値を128 × 64のOLEDへ表示します。
ブラウザ接続時は、測定値をFT234XD経由でPCへ送り、時間波形、FFT、統計値、演算結果として表示します。&lt;/p>
&lt;p>ハンディ計測中の波形は基板内に保存されません。
波形を後から確認する場合は、測定前にブラウザを接続して記録を開始します。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>ブロック&lt;/th>
 &lt;th>採用した部品、方式&lt;/th>
 &lt;th>役割&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>ADC&lt;/td>
 &lt;td>MCP3911&lt;/td>
 &lt;td>2チャンネルの差動電圧を同時変換&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>制御&lt;/td>
 &lt;td>STM32C011F6&lt;/td>
 &lt;td>ADC制御、表示、データ送信&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>デバイス表示&lt;/td>
 &lt;td>128 × 64 OLED&lt;/td>
 &lt;td>PCなしで現在値を確認&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>USBシリアル&lt;/td>
 &lt;td>FT234XD、USB Type-C&lt;/td>
 &lt;td>1.5 Mbaudのシリアル通信&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>バッテリー&lt;/td>
 &lt;td>保護回路付き1セルLiPo&lt;/td>
 &lt;td>USB未接続時の電源&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>充電&lt;/td>
 &lt;td>MCP73831&lt;/td>
 &lt;td>USB Type-CからLiPoを充電&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>解析ダッシュボード&lt;/td>
 &lt;td>React + Vite&lt;/td>
 &lt;td>ブラウザ上で記録、演算、FFT、CSV処理&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="2基の独立adcによる2チャンネル同時変換">2基の独立ADCによる2チャンネル同時変換&lt;/h2>
&lt;p>電圧と電流から瞬時電力を求めるには、二つの値を同じ時刻に測定する必要があります。
入力回路の位相差を観測する場合も、チャンネル切替による時間差は測定誤差になります。&lt;/p>
&lt;p>MCP3911は2基のADCを内蔵し、両チャンネルを同時に変換します。
今回は16 MHzのMCLK、PGA 1倍、OSR 4096とし、変換速度を976.5625 samples/sに設定しました。
標本間隔は約1.024 msで、ADCからは各チャンネルの24-bit符号付き整数を読み出します。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>AMCLK = 16 MHz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>DMCLK = AMCLK / 4 = 4 MHz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>DRCLK = DMCLK / 4096 = 976.5625 Hz
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>ADCコードからADC入力ピン間の差動電圧への換算には、次の式を使います。&lt;/p></description></item><item><title>MCP3911 2チャンネル電圧／電流測定器</title><link>https://dddev.group/works/mcp3911-voltage-monitor/</link><pubDate>Sat, 01 Aug 2026 00:10:00 +0900</pubDate><guid>https://dddev.group/works/mcp3911-voltage-monitor/</guid><description>&lt;h2 id="iotデバイスの消費電力を測る基板">IoTデバイスの消費電力を測る基板&lt;/h2>
&lt;p>無線送信、センサーの読み出し、スリープ。
IoTデバイスの消費電流は、動作状態によって大きく変化します。
平均電流だけでなく、その変化を時系列で記録すると、どの処理がエネルギーを使っているのかを調べられます。&lt;/p>
&lt;p>MCP3911 2チャンネル電圧／電流測定器は、二つの差動電圧を同時に測定する50 mm角の基板です。
電流は、外付けまたは基板上のシャント抵抗に生じる電圧から算出します。
基板上のOLEDで現在値を確認する方法と、USBでPCへ接続してWebブラウザに波形を記録する方法を選べます。&lt;/p>
&lt;div class="img-center-wrapper">&lt;a href="https://dddev.group/mcp3911/device.jpg">
 &lt;img src="https://dddev.group/mcp3911/device_hu_bab70ce3ed970a64.jpg"
 alt="OLEDに2チャンネルの測定値を表示するMCP3911測定基板"
 loading="lazy" decoding="async" class="img-center">
 &lt;/a>&lt;/div>
&lt;h2 id="oled表示とwebブラウザによる記録解析">OLED表示とWebブラウザによる記録・解析&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>使用方法&lt;/th>
 &lt;th>できること&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>OLED表示&lt;/td>
 &lt;td>2チャンネルの現在値を、PCなしでその場で確認する&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Webブラウザ&lt;/td>
 &lt;td>USBでPCへ接続し、波形の記録、統計、FFT、演算、CSV保存を行う&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>OLED表示だけで測定した波形は、基板内には保存されません。
時系列データが必要な場合は、測定前にWebブラウザを接続して記録を開始します。&lt;/p>
&lt;p>Webダッシュボードはインストール不要で、デスクトップ版のChromeまたはEdgeから接続できます。
Android版Chrome向けのWebUSB接続も実装していますが、現時点では実機での動作を検証できていません。
iPhoneとiPadには対応していません。&lt;/p>
&lt;h2 id="2基の独立adcによる2チャンネル同時変換">2基の独立ADCによる2チャンネル同時変換&lt;/h2>
&lt;p>MCP3911は2基のADCを内蔵し、Channel 0とChannel 1を同じタイミングで変換します。
マルチプレクサで一つのADCを交互に使う方式ではないため、二つの波形を共通の時間軸で比較できます。&lt;/p>
&lt;p>IoTデバイスの消費電力を測る場合は、一方で負荷電圧、もう一方でシャント抵抗の電圧降下を測定します。
ただし、一般的な3.3 Vまたは5 Vの電源電圧を本基板へ直接入力することはできません。
負荷電圧を既知の定数として扱うか、安全な入力範囲に収める外部分圧回路を使います。
測定できる電流範囲は、シャント抵抗の抵抗値、定格電力、許容損失によって決まります。&lt;/p>
&lt;p>低周波オーディオ回路では、アンプやフィルターの入力と出力を同時に測定し、二つの波形の時間差を観測できます。
ダッシュボードは位相差を自動計算しないため、画面上で時間差を読むか、CSVへ保存して別途計算します。
サンプリング周波数は976.5625 Hzであり、一般的なオーディオ帯域全体の位相解析ではなく、低い周波数での比較を想定しています。&lt;/p>
&lt;h2 id="インストール不要の解析用webダッシュボード">インストール不要の解析用Webダッシュボード&lt;/h2>
&lt;div class="img-center-wrapper">&lt;a href="https://dddev.group/mcp3911/dashboard.png">
 &lt;img src="https://dddev.group/mcp3911/dashboard_hu_51830dc0375f60e7.png"
 alt="2チャンネルの波形と演算結果を表示したWebダッシュボード"
 loading="lazy" decoding="async" class="img-center">
 &lt;/a>&lt;/div>
&lt;p>&lt;a href="https://liesegang.github.io/mcp3911-voltage-monitor/">Webダッシュボードを開く&lt;/a>&lt;/p>
&lt;p>Webダッシュボードには、次の機能があります。&lt;/p>
&lt;ul>
&lt;li>2チャンネルの時間波形表示&lt;/li>
&lt;li>最大値、最小値、平均値、Peak-to-peakの集計&lt;/li>
&lt;li>最大4096点のFFT&lt;/li>
&lt;li>任意の演算式と数値積分&lt;/li>
&lt;li>保持データ全体または選択範囲のCSV保存&lt;/li>
&lt;li>保存したCSVの再読み込みと再解析&lt;/li>
&lt;/ul>
&lt;p>ADCは常に976.5625 samples/sで動作し、表示用のSample rate設定に応じてUARTへ送るフレームを整数分周で間引きます。
受信処理とグラフ描画を分け、シリアルデータの受信を続けながら、画面更新を最大30 Hzに抑えています。&lt;/p>
&lt;h2 id="ddd基板規格に基づく50-mm角の基板">DDD基板規格に基づく50 mm角の基板&lt;/h2>
&lt;p>DDDでは、今後製作する基板の外形と取り付け位置を揃えるため、50 × 50 mm、角丸、直径3.2 mmの四隅の穴を基板規格としました。
穴の中心は、隣接する二辺からそれぞれ4 mmの位置です。
本基板は、この外形寸法と取付穴を採用する最初の公開作例です。
ただし、現在公開しているEAGLEデータでは角が直角のままであり、角丸外形は次回の基板改版で反映します。&lt;/p>
&lt;h2 id="主な仕様">主な仕様&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>項目&lt;/th>
 &lt;th>仕様&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>ADC&lt;/td>
 &lt;td>MCP3911、2基の独立ADCによる2チャンネル同時変換&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ADC出力&lt;/td>
 &lt;td>24-bit符号付き整数&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>差動入力範囲&lt;/td>
 &lt;td>約−0.6～0.6 V&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>各入力端子の対GND範囲&lt;/td>
 &lt;td>−1～1 V&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>MCLK / OSR&lt;/td>
 &lt;td>16 MHz / 4096&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>変換速度&lt;/td>
 &lt;td>976.5625 samples/s&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>電流測定&lt;/td>
 &lt;td>シャント抵抗の電圧降下から算出。測定範囲は抵抗値と定格による&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>MCU&lt;/td>
 &lt;td>STM32C011F6&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>USBシリアル&lt;/td>
 &lt;td>FT234XD、1,500,000 baud&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>デバイス表示&lt;/td>
 &lt;td>128 × 64 OLED、I2C&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>バッテリー&lt;/td>
 &lt;td>保護回路付き1セルLiPo&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>充電&lt;/td>
 &lt;td>MCP73831、設定電流は公称約500 mA&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>基板&lt;/td>
 &lt;td>50 × 50 mm、2層&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>入力は絶縁されていません。
差動入力範囲だけでなく、各入力端子の対GND範囲も守る必要があります。
商用電源や高電圧回路には接続できません。&lt;/p></description></item></channel></rss>