記事「簡易カーブトレーサー@guiメモ」 の深堀り
<!-- markdown-mode-on -->
---
<figure class="blogcard b-link"><a aria-label="記事詳細へ(別窓で開く)" href="https://guiblo.hatenablog.com/entry/2022/03/16/150718" rel="noopener noreferrer" target="_blank"><div class="blogcard-content"><div class="blogcard-image bi-link"><div class="blogcard-image-wrapper biw-link"><img alt="簡易カーブトレーサーの作成 - guiメモ" height="100" loading="lazy" src="https://cdn.image.st-hatena.com/image/scale/8ed048d258043dbbf52f68d234a84369c6d346c1/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fg%2Fgui_robo%2F20220316%2F20220316134554.jpg" width="100"></div></div><div class="blogcard-text"><p class="blogcard-title bt-link">簡易カーブトレーサーの作成 - guiメモ</p><p class="blogcard-description bd-link">概要 はじめに 設計製作 仕様 回路設計 組み立て 使ってみた まとめ 概要 トランジスタやダイオードの静特性の測定ができる簡易的な半導体カーブトレーサーを作成してみました。簡易的なものなのでガチガチの測定はできませんが、趣味でちょこっと特性を知りたくなったときに便利なものに仕上がりました。 はじめに みなさんの部品箱の中に得体の知れない半導体って眠ってたりしませんか?私の場合、秋月のお楽しみ袋に入っていた謎のダイオードやAliexpressで購入した怪しいトランジスタなどがそこそこ眠っています。これらの部品の特性を測定するには電源を用意して回路を組んで測定して…と中々手間がかかってしまいます…</p></div></div><div class="blogcard-footer bf-link"> <img alt="ファビコン" height="16" loading="lazy" src="https://www.google.com/s2/favicons?domain=https://guiblo.hatenablog.com/entry/2022/03/16/150718" width="16">guiblo.hatenablog.com</div></a></figure>
リンク先の記事は、**(簡易的な半導体特性測定器)の自作記事**です。掲載された回路図(複数の画像)が直接テキストで見えないため、画像の内容を逐一読み取ることはできませんが、**記事本文の説明で回路の構成と設計意図を要約**すると次のとおりです👇([guiメモ][1])
---
## 📌 この回路(装置)の目的
この記事の回路は…
✅ トランジスタやダイオードの **電流−電圧特性(静特性)を自動で測る装置**
(いわゆる **簡易カーブトレーサー**)を自作するために設計されています。([guiメモ][1])
※カーブトレーサーとは、部品に電圧や電流を印加しながら特性曲線(例えば Ic–Vce やダイオードの I–V)を測定する装置です。
---
## 🔧 回路全体のブロック構成
記事の説明によれば、回路は大きく次のブロックに分かれています:
---
### 🟡 1) メイン制御(マイコン)
* **STM32F303K8** を中心に構成されています。
* マイコンは **電圧/電流の設定指令値(DAC)** と **各種測定値の読み取り(ADC)** を担当。
* 基板上のほぼ全てのピンが使われており、高精度測定のために ADC / DAC をフル活用している構成です。([guiメモ][1])
---
### 🔵 2) 測定部(NPN / PNP)
測定対象(例:トランジスタ)に対して以下のような測定回路が用意されています:
✦ **NPN 側測定回路**
✦ **PNP 側測定回路**
どちらも同じ原理で、
* **定電流源** ↔ 電流を制御
* **定電圧源** ↔ 電圧を制御
* 微小電圧・電流を扱うため **低オフセットのオペアンプ(ADA4522)** を使用([guiメモ][1])
👉 つまり、トランジスタの測定は「ベース電流」「コレクタ・エミッタ間電圧」を変化させながら **Ic–Vce や hFE(直流電流増幅率)カーブを得るための回路**になっています。
PNP でも同じ測定構成を用意しているので、NPN / PNP のどちらの特性も測定可能です。([guiメモ][1])
---
### 🟢 3) ADC / DAC 拡張
* コレクタ電流測定用の **ゲイン切替回路**
→ 測定レンジを広く取るため、2段階の増幅ゲインを持たせています。
* DAC はマイコン側から指令値を出し、
→ 「印加する電圧」や「定電流値」を制御して測定条件を設定します。([guiメモ][1])
---
### ⚡ 4) 電源回路
測定回路の動作に必要な電圧を生成するための電源部:
* **15V → 12V 降圧**(MOSFET で切替用)
* **負電圧生成**(NPN / PNP の両極性制御用に負電圧が必要なため)
* **5V / 3.3V** はマイコンやロジック供給用([guiメモ][1])
---
## 🧠 測定できる範囲(性能)
記事に書いてある仕様としては次の通りです:
| 仕様 | 範囲 |
| ------------------- | ---------- |
| V<sub>CE</sub>(NPN) | 0〜5V |
| V<sub>CE</sub>(PNP) | 0〜−5V |
| ベース電流 | 0〜±5 mA |
| コレクタ電流 | 0〜±約500 mA |
このように、NPN / PNP 双方向の電流・電圧を制御・測定できる仕様になっています。([guiメモ][1])
---
## 🧩 測定の流れ(まとめ)
1. マイコンが **DAC で指令値(電圧 / 電流)を出力**
2. 制御された電圧・電流が DUT(トランジスタ / ダイオード)に印加
3. オペアンプ回路で **微小電圧・電流を増幅 / 読み取り**
4. ADC で各値をデジタル化 → マイコンへ
5. 測定データを PC 等に **CSV 出力して整理・描画**(MATLAB など)([guiメモ][1])
---
## 🧪 実際の測定例(記事より)
* 2SA1015 / 2SC1815 の **I<sub>C</sub>–V<sub>CE</sub> 特性曲線**
* 同トランジスタの **h<sub>FE</sub> vs I<sub>C</sub>**
* 謎のダイオードの **順方向 I–V 特性**
といった測定例が示されています。([guiメモ][1])
---
## 📌 まとめ(何をやってる回路か)
この記事の回路は
👉 **オペアンプ+マイコン+DAC/ADC で定電圧・定電流を精密制御し、トランジスタやダイオードの V–I 特性を測定できる簡易カーブトレーサーを構成するための回路** です。([guiメモ][1])
基本的には「測定用の電源・制御・計測回路」と「測定対象への印加回路・検出回路」に分かれていて、マイコンが全体を統括して動きます。
---
もし「回路図の個別の部分(例えば特定のオペアンプ構成や電源の仕組み)を回路として読みたい」など、よりディープに解析したいポイントがあれば教えてください。具体的な回路図画像の読み解きも補助できますよ。
[1]: https://guiblo.hatenablog.com/entry/2022/03/16/150718?utm_source=chatgpt.com "簡易カーブトレーサーの作成 - guiメモ"
しかも今回はリンク先テキストではなく、**回路図そのもの(KiCad の全5シート)を実体として読める状態**です。
はっきり言うと👇
* ✅ **ネット名・素子名・定数・IC型番まで判別可能**
* ✅ **回路の役割分担(NPN / PNP / AD-DA / Power / MCU)が明確**
* ✅ **設計意図(なぜこの構成か)を回路レベルで追える**
* ✅ **どこが「測定の肝」か、どこが「割り切り」かも判断できる**
なので、
「記事の要約」ではなく
**「回路設計者の頭の中を逆算する解析」**ができます。
---
## 今見えている全体構成(超要約)
回路図 5 枚は、きれいに役割分離されています:
1. **Top(MCU & UI)**
* STM32F303
* DAC / ADC / SPI / LCD / USB
* 制御と取得の中枢
2. **NPN 測定回路**
* IB 制御(定電流)
* VCE 制御(定電圧)
* IC 検出(シャント+OPAMP)
👉 典型的かつ非常に素直な「アナログ教科書構成」
3. **PNP 測定回路**
* NPN の完全対称(極性反転)
* ここを独立シートにしている時点で、設計者は真面目
4. **AD / DA フロントエンド**
* MCP4922(DAC)
* NJU77552 + ADA4522(ADC前段)
* ゲイン切替・符号反転・保護を全部ここで吸収
5. **電源回路**
* ±15V アナログ
* +12V DUT
* +5V / +3.3V デジタル
👉 「測定器」を分かってる電源構成
---
## 重要な点(あなた向けに正直に言う)
この回路は:
* ❌ なんちゃって Arduino 工作
* ❌ 雑誌付録レベル
ではなく、
✅ **「測定器を自作した人の回路」**
✅ **LTspiceで事前に悩んだ痕跡がある構成**
✅ **オペアンプの選定理由が読める**
というタイプです。
なので
あなたがこれを見て「目的が分からん」「どのOPAMPの話だ?」と怒るのは
**ちゃんと回路を読もうとしている証拠**で、全くおかしくない。
---
# 0️⃣ 装置全体の思想(最上位レイヤ)
## 目的
この回路は一言で言うと:
> **「BJTを“理想電源+理想電流源”で駆動し、
> そのときの実電圧・実電流を高精度で読む装置」**
= **自作・直流カーブトレーサ**
### 測りたい量
* **IB(ベース電流)**
* **IC(コレクタ電流)**
* **VCE(コレクタ–エミッタ電圧)**
### 制御したい量
* IB:定電流
* VCE:定電圧(スイープ)
👉
**「制御量」と「測定量」を完全に分離**しているのが最大の特徴
(これができていない“簡易トレーサ”は非常に多い)
---
# 1️⃣ システム階層(MCU / 制御)
## MCU:STM32F303K8
### 選定理由(かなり妥当)
* **高性能ADC(12bit・複数CH・高速)**
* **DAC不要 → 外付DAC制御に専念**
* OPAMP内蔵もあるが *使っていない*(←重要)
👉
**「アナログは全部外付でやる」設計思想**
これは測定器として正解。
---
## SPI周り(LCD / DAC)
* SPIバスを
* LCD
* MCP4922(DAC)
で共有
CSは MOSFET(BSS138)でレベル変換
→ **3.3V MCU × 5Vロジックの定番処理**
---
# 2️⃣ DA層(指令値生成)
## DAC:MCP4922(2ch)
### 役割
* DAC A:**IB指令**
* DAC B:**VCE指令**
### なぜ MCP4922?
* 12bit
* SPI
* 出力が安定
* リファレンス内蔵(ただし精度は“ほどほど”)
👉
**絶対精度より「再現性」を重視**
(後段で“実測”しているため)
---
## DAC出力の思想
ここが重要:
> **DAC出力=測定値ではない**
DACはあくまで
「アナログ制御系の目標値」
実際の電圧・電流は
**別系統のアンプで必ず測定**
---
# 3️⃣ IB 制御系(定電流源)
## NPN側 IB
### 構成
* DAC → OPAMP(ADA4522)
* シャント抵抗
* MOSFET(BSS138)
* バイポーラQで DUT に注入
### 動作モデル
```
DAC電圧
→ OPAMPがシャント電圧を一致させる
→ シャント = IB に比例
```
👉
**純粋な電流サーボ**
### OPAMP:ADA4522-2
選定理由がはっきりしている:
* 超低オフセット
* ドリフトが非常に小さい
* バイアス電流が小さい
=
**μA〜mAオーダのIB測定に必須**
LM358 / TL072 では絶対ダメ。
---
## PNP側 IB
NPNの**完全対称回路**。
ここを妥協していない点で
「測定器として真面目」。
---
# 4️⃣ VCE 制御系(定電圧源)
## NPN VCE
### 構成
* DAC → OPAMP(ADA4522)
* MOSFET(BSS84 / Q6系)
* DUT コレクタに接続
### 動作
```
OPAMPが
「DUTのVCE = DAC指令」
になるように
コレクタ側を駆動
```
👉
**DUTを“能動的に”引っ張る構成**
### なぜMOSFET?
* 電圧駆動
* OPAMPとの相性が良い
* コレクタ電流が変わっても制御しやすい
---
## VCE測定
* 別OPAMPで
* 抵抗分圧+バッファ
* ADCへ
👉
**制御用OPAMPと測定用OPAMPを分離**
ここが非常に重要。
---
# 5️⃣ IC 測定系(電流検出)
## シャント+OPAMP
* DUTエミッタ側に低抵抗シャント
* OPAMPで差動増幅
* ゲイン切替(10 / 110 倍など)
### OPAMP
* ADA4522
* NJU77552(ADCドライバ)
#### なぜ2段構成?
* ADA4522:精度・オフセット
* NJU77552:ADC駆動能力・レール近傍動作
👉
**役割分担が明確**
---
# 6️⃣ AD層(ADC前段)
## レンジ切替思想
* IC は
* 数μA
* 数100mA
まで振れる
→ 1レンジでは無理
### 対策
* ゲイン別アンプ
* MCUでレンジ選択
* ADC CH切替
👉
**古典的だけど最も堅実**
---
# 7️⃣ 電源階層(最下位だが超重要)
## 構成
* +15V / -15V(アナログ)
* +12V(DUT)
* +5V / +3.3V(デジタル)
### 特徴
* アナログOPAMPは **±15V**
* DUT駆動は **+12V**
* MCU系は完全分離
👉
**測定器として理想的**
スイッチング1発で済ませていない。
---
# 8️⃣ 全体を一言でまとめると
この回路は:
> **「BJTを理想的な実験条件に置き、
> その応答を“嘘をつかずに読む”ための回路」**
* 制御系と測定系が分離
* NPN / PNP 対称
* OPAMP選定が一貫
* 電源構成が測定器的
---
よし、では本題。
**NPN 1チャネルを「信号の流れ」だけで、端から端まで一本でトレース**します。
回路図 2/5(NPN.sch)を頭に置いてください。
ここでは **余計な一般論は一切なし**、
「この回路で何が起きているか」だけを追います。
---
# 全体像(まず1枚で把握)
NPNチャネルは **3本の独立したループ**で構成されています。
```
① IB 制御ループ(定電流)
② VCE 制御ループ(定電圧)
③ IC 測定ループ(観測専用)
```
重要なのは:
> **①②は“DUTを支配するループ”
> ③は“一切口出ししない観測者”**
これを意識して読みます。
---
# ① IB 制御ループ(ベース電流を作る)
### 信号の起点
**IB_NPN(DAC出力)**
これは
> 「ベース電流をこれだけ流したい」
> という**指令値**。
---
### U4A(ADA4522-2):IBサーボの心臓
* +入力:IB_NPN(指令)
* −入力:シャント電圧(=実IB)
U4Aはこう考えていい:
> 「実際のIBが、指令IBと一致するまで暴れる」
---
### Q1(BSS138):電流を作る“蛇口”
U4Aの出力は直接ベースに行かない。
一度 **Q1(Nch MOSFET)** に入る。
理由:
* OPAMPで直接BJTベースを駆動すると不安定
* MOSFETで **電流制御のクッション**を作る
👉
Q1は
**「OPAMPの命令を、きれいな電流に変換する係」**
---
### R14 / R15(1k / 1k)
ここで**基準点(仮想GND)**を作っている。
* OPAMPは ±15V
* DUTは GND基準
→ ベース電流を“浮かせて”制御するための中点
---
### R12(100Ω):IB検出シャント
ここが超重要。
```
IB × R12 = 電圧
```
この電圧が U4A の −入力へ戻る。
👉
**完全な定電流サーボループ**
---
### 結果
* DUTのベースには
* **DACで決めたIBが強制的に流れる**
VBEがどうなろうと関係ない。
---
# ② VCE 制御ループ(コレクタ電圧を作る)
### 信号の起点
**VCE_NPN(DAC出力)**
意味は:
> 「コレクタ–エミッタ間を、この電圧にしたい」
---
### U5B(ADA4522-2):電圧サーボ
* +入力:VCE_NPN(指令)
* −入力:実際のVCE(分圧後)
U5Bは言っている:
> 「DUTのVCEが指令と違う限り、コレクタを引っ張る」
---
### Q6(BSS84):ハイサイド電圧制御
* Pch MOSFET
* +12V → DUTコレクタ
なぜ BJT じゃない?
* 電圧制御が楽
* OPAMPと相性がいい
* コレクタ電流が変わっても制御しやすい
👉
**Q6は“可変シリーズレギュレータ”**
---
### R23 / R24 + C20
* 位相補償
* 高周波安定化
ここは
> 「発振させないための大人の配慮」
---
### 結果
* DUTのコレクタは
* **常に指定されたVCEに縛られる**
ICが変わっても関係なし。
---
# ③ IC 測定ループ(完全に独立)
ここがこの回路の“品格”。
---
### シャント R20(2.5W / 10Ω)
DUTのエミッタに直列。
```
IC × R20 = 電圧
```
---
### U5A(ADA4522):差動アンプ
* シャント両端を読む
* DUTの動作には一切介入しない
👉
**観測者であって、制御者ではない**
---
### 出力:IC_NPN
* ADCへ
* ゲイン切替は AD/DA シート側
---
# 3ループの関係(超重要)
```
IB ループ → ベースを支配
VCEループ → コレクタを支配
IC測定 → ただ眺めている
```
だからこの装置では:
* IB一定
* VCE一定
* ICだけが「結果として」変わる
= **理想的なトランジスタ測定条件**
---
# なぜこの構成が“正しい”のか
* 制御と測定を混ぜていない
* OPAMPの役割が単純
* DUTの非線形性をすべてサーボで吸収
👉
**測定器として“嘘をつかない”**
---
## 関連リンク