<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MCP3911 Voltage Monitor on Deadline-Driven Developers</title><link>https://dddev.group/tags/mcp3911-voltage-monitor/</link><description>Recent content in MCP3911 Voltage Monitor 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-voltage-monitor/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></channel></rss>