Yufunagi's blog

Published

- 16 min read

MOSFETによるパルス駆動回路の設計

MOSFETによるパルス駆動回路の設計 のアイキャッチ画像

はじめに

本記事では、センサー基板向けに設計した LED パルス駆動回路についてまとめる。スイッチング素子として MOSFET を使い、ゲート抵抗 Rg とゲート-ソース間抵抗 Rgs をどう決めたかを中心に書く。

あわせて、パルス駆動でつまずきやすい「LED の順方向電流」の考え方も触れる。平均電流・ピーク電流・ジュール熱の三つをどう整理するか、データシートの読み方とあわせて書く。

基板は JLCPCB にスポンサー提供いただき発注した。設計の途中経過と、実装で踏んだ地雷も含めて記録しておく。

概要

  • スポンサー: JLCPCB
    基板の製造・発注に JLCPCB を利用した。ありがとうございます。

  • 背景:
    所属する団体の教育キットからの卒業の一歩として、壁センサー用の基板を作り直した。従来キットでは LED を常時点灯させていたが、今回はパルス駆動に切り替え、消費電力と外来光の影響を抑えたい。

  • 設計のポイント:

    • MOSFET による LED のオン/オフ制御
    • パルス幅・デューティ比を踏まえた LED 電流の決定(ジュール熱)
    • ゲート抵抗 Rg、ゲート-ソース間抵抗 Rgs の概算
    • データシート値を起点にし、最終的には実測で詰める方針

パルス駆動にした理由

壁センサーは赤外線 LED とフォトトランジスタの組み合わせが一般的だ。LED を常時点灯させると、電流が常に流れ続けるうえ、周囲の照明や反射の影響も受けやすい。

そこで MCU のタイマー出力で短いパルスを出し、LED を間欠点灯させる構成にした。受光側はサンプリングのタイミングを LED 点灯に合わせれば、パルス中だけ壁からの反射を見られる。

制御方式としては、MCU ピンをそのまま LED に直結するのではなく、MOSFET でスイッチングする。理由は次のとおり。

  • GPIO から流せる電流に余裕がない(特にピーク電流を確保しにくい)
  • 必要なら LED 電源とロジック電源を分離しやすい(今回はいずれも 系で共通)
  • ゲート抵抗を入れて波形を整えられる

回路構成

基本形は次のとおり。記号は回路図上の名前に合わせている。

Vcc (LED 電源)
  |
 [LED]
  |
 [Rled]  … 限流抵抗
  |
  +--- Drain
  |
 [Q1: Nch MOSFET]
  |
 Source --- GND

MCU GPIO --- [Rg] --- Gate
                |
               [Rgs]
                |
               Source (GND)
  • Q1: N チャンネル MOSFET。ソースを GND、ドレイン側に LED と限流抵抗を直列接続
  • Rg: ゲート直列抵抗。充放電電流のピーク抑制とリンギング低減
  • Rgs: ゲート-ソース間プルダウン。MCU が Low 出力またはハイインピーダンスのとき、確実にオフにする

MCU ピンは ロジック、LED 電源も同系統()を想定している。別電圧にする場合は、レベルシフトや MOSFET の 余裕を改めて確認する必要がある。

LED 電流の決め方(デューティ比とジュール熱)

パルス駆動の設計で最初に詰まったのが、LED の順方向電流 の決め方だった。

データシートに書いてあること

赤外 LED のデータシートには、だいたい次のような項目が並ぶ。

  • 連続(DC)時の
  • パルス駆動時の平均順方向電流 (デューティ・パルス幅の条件付き)
  • パルス駆動時のピーク などの条件付き。以下 と表記)

設計では、これらを同じ条件で次の三つに分けて確認するのが安全だ。

  1. 平均電流:
  2. ピーク電流: (データシートのピーク順方向電流。 条件があれば一致させる)
  3. 発熱の目安(DC 定格からの保守則):

(1) の は、平均制約としては正しい式だ。ただし (1) だけ満たしても、(2)(3) を外れることがある。逆に (3) だけ見て (1) の条件(, )を無視しても、データシートの前提から外れる。

よくある誤解

  • ピーク電流だと思い込む(実際は平均の上限)
  • DC 定格 を、そのままパルス中のピークに使う
  • 「平均を に合わせる」ために とする(後述のとおり発熱は増える)
  • の条件(, )と、自分の駆動条件が違うのに、そのまま を使う

なぜ は危ないか

LED の発熱(ジャンクション付近)は、ざっくり言うと電流の二乗に比例する。抵抗 を一定とみなすと、ジュール損失は だ。

  • DC 連続:
  • デューティ 、ピーク の矩形波:

「平均電流を に合わせる」ために とすると、 となり、 が小さいほど発熱は 増える。デューティを下げたのにピークを上げすぎる、という典型パターンだ。

DC 定格からの保守則

パルス条件付きの がデータシートに無い、または自分の と条件が一致しないときの目安として、、すなわち を使った。これは DC 連続時と同程度の 発熱に抑える近似であり、メーカーが を別条件で示している場合は、そちらを優先する。

今回の数値例

使用 LED(赤外)のデータシート抜粋:

  • DC 連続
  • の条件)
  • の条件)

今回の駆動条件は 、周期 で、 の記載条件()とはデューティが異なる。そのため はそのまま使わず、次のように整理した。

  • 発熱の保守目安:
  • ピーク絶対値: は一致)

のように「DC 定格を平均に合わせてパルス化」すると、(3) の発熱目安(約 )を大きく超える。平均電流だけ見ると に収まるが、 相当の発熱は DC 連続の 10 倍になる。

最終的に を設計値とした。保守則と の両方に余裕を持たせた値だ。

MOSFET の選定

LED 側のスイッチに N チャンネル MOSFET を使った。

  • 型番: RU1L002SN(ROHM)
  • 特性: N チャンネル、 駆動タイプ
  • パッケージ: UMT3F / SC-85 / SOT-323FL
  • データシート: RU1L002SN データシート

選定理由は次のとおり。

  • として 程度で十分オンになり、 GPIO から直接駆動できる
  • ドレイン電流の余裕があり、今回の を問題なく流せる
  • 小型パッケージで、センサー基板の実装スペースに収まる

によるドロップは限流抵抗に比べれば小さいが、ゼロではない。データシートでは 駆動時の は数 程度なので、 なら として 前後を見込む。

限流抵抗 Rled の算出

LED 順方向電圧を 、MOSFET オン時の と見積もる)とする。電源 、目標ピーク電流 として、

E24 系列から を選んだ。 は実際の偏りがあるので、実装後はオシロスコープで LED 両端電圧を測り、ピーク電流が意図どおりか確認する前提だ。

ゲート抵抗とゲート-ソース間抵抗

RgRgs は、MOSFET のゲート波形を安定させるための部品だ。ここではデータシートの を使った概算で初期値を決め、実測で微調整する方針とした。

ゲート抵抗 Rg(Ciss による RC 近似)

Rg を入れる主な目的は次の二つ。

  • MCU 出力ピンからのゲート充放電ピーク電流を抑える(
  • 配線インダクタンス等との共振(リンギング)を抑え、ゲート波形をなめらかにする

データシートより、入力容量の目安として を使う。 や動作点で変わるため、あくまで初期値の計算に留める。

まず GPIO 保護の観点から、 で充電電流を抑える。MCU 出力の等価抵抗を 、GPIO の出力電流上限を 程度とすると、)が目安になる。リンギング抑制も考え、 を採用した( 程度)。

参考として、ゲートを容量 とみなした一次近似の立ち上がり時間は なら となり、MCU の出力立ち上がり(メインクロック → 約 )と同程度だった。GPIO 立ち上がりに合わせる必要があるわけではないが、極端に速いスイッチングを避けられるかどうかの参考にした。

ゲート-ソース間抵抗 Rgs(オフ時の放電)

Rgs は、MCU が Low 出力またはハイインピーダンスのときに を確実に 0 V 側へ戻すためのプルダウンだ。

MCU が Low を能動駆動している間は、放電経路は主に 側になり、オフは速い。問題になるのは High-Z 時で、そのときの時定数は概算で なら

High-Z 時の 減衰を と近似し、 から まで落とす時間は

LED パルス間隔(オフ時間)は 程度あるので、 で十分だった。パルス間隔が数 しかない場合は、Rgs を下げて放電を速める(例: なら )。

まとめ(抵抗値)

部品採用値役割
Rgゲート充放電の整形、ピーク電流抑制
Rgsオフ時の 放電
RledLED ピーク電流の制限

は電圧や条件で変わる。最終的には (必要なら も)をオシロで見て、狙いの波形になるよう抵抗値を調整する。

実装と検証

組み立て

JLCPCB から基板が届き、手実装で部品を載せた。LED・MOSFET・フォトトランジスタまわりは 0603 サイズ中心で、はんだ付け自体は大きな問題にはならなかった。

動かなかった

通電してパルスを出したが、LED が期待どおり光らない。GPIO の波形は出ているのに、ドレイン側の電圧がおかしい。

原因

調べたところ、MOSFET のフットプリントとシンボルのピン対応を取り違えていた。SOT-323 は端子が並んでいるだけで、データシートの pin 配置と KiCad(Fusion)のシンボル定義が一致しているかを、設計時に十分確認していなかった。

ゲートとドレインが入れ替わった状態で実装されていたため、MOSFET が意図どおりスイッチとして動かなかった。回路計算自体より、こういう「地味なミス」のほうが時間を食う。

対処と確認手順

  • データシートの pin 配置図と、CAD 上のシンボル・フットプリントを 1 ピンずつ 照合した
  • 3D ビューでトランジスタの向きを目視確認した
  • 修正版のネットリストを書き出し、再発注前に ERC/DRC を通した

抵抗値やパルス幅の話は設計段階でかなり調べたが、今回の失敗の直接原因は計算ではなく配線図の pin 番号だった。次からは、スイッチ素子(MOSFET、トランジスタ、レギュレータ)は発注前チェックリストに「pin 1 の向き」を必ず入れる。

まとめ

LED パルス駆動回路を MOSFET で組み、ゲート周りの抵抗値を から概算した。LED 電流は、平均・ピーク・ 発熱の三つをデータシートの条件と照らし合わせて決める必要があることも整理した。

実装では pin 対応ミスで一度つまずいたが、計算の筋道と実装の確認項目は別物だと改めて痛感した。回路を書くときは、数式を立てる時間と同じくらい、パッケージの pin 配置を疑う時間も取ったほうがよい。

基板の再発注後、pin 修正版で LED パルスが意図どおり出ることを確認できた。センサー側の感度調整は別途続いているが、スイッチング部分の設計メモとしては、以上が今回のまとめになる。