サイトマップ

回路の素101 065 ロー・サイド MOSFET使用

回路の素101 065 ロー・サイド MOSFET使用

正電源に接続された負荷の駆動、デジタル信号の論理反転、レベル変換、などに使用される
トランジスタよりもスイッチング速い

回路図作成

  • 基本的な構成

FETの場合、ON時にドレイン-ソース間に抵抗値 R_{ON} が発生し、
これにより、出力の電圧が低下することを考慮する必要がある

応答性確認

シミュレーションを tranモード(デフォルト) で実行し、応答を見る

import matplotlib.pyplot as plt
import numpy as np

from PyLTSpice import RawRead

fig = plt.figure(figsize=(6, 4))
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2, sharex=ax1)

fname = 'PrimaryCircuit7-065.raw'
LTR = RawRead(fname)
x     = LTR.get_trace('time').get_time_axis(0)

tmp1  = LTR.get_trace('V(vin+)').get_wave(0)
ax1.plot(x * 1000, tmp1, label='Vin+')
tmp1  = LTR.get_trace('V(vout)').get_wave(0)
ax1.plot(x * 1000, tmp1, label='Vout')

tmp1  = LTR.get_trace('I(Rl)').get_wave(0)
ax2.plot(x * 1000, tmp1 * 1000, label='I$_{RL}$')

ax1.legend(); ax1.grid()
ax1.set_xlabel('[ms]'); ax1.set_ylabel('[V]')

ax2.legend(); ax2.grid()
ax2.set_xlabel('[ms]'); ax2.set_ylabel('[mA]')

fig.tight_layout()

fig.savefig('PrimaryCircuit7-065_Graph1.png')

入力のON/OFFに合わせて、スイッチが切り替わり、負荷側に電流を流すことができる
出力電圧は、オン抵抗が20mΩ程度で、約5mA流れるので、0.1mVほどGNDから浮くことになる

負荷電流を増やす

負荷の抵抗値を1kΩから小さくして電流値を大きくした場合の、オン抵抗の影響を確認する

from PyLTSpice import SimCommander

fname = 'PrimaryCircuit7-065'
fname_tmps = ['1k', '100', '10', '1']

for fname_tmp in fname_tmps:
    LTC = SimCommander(fname + '.asc')

    line_no = LTC._get_line_starting_with('RL')
    sim_cmd = LTC.netlist[line_no]
    LTC.netlist[line_no] = sim_cmd.replace('1k', fname_tmp)
    print(LTC.netlist[line_no], end='')  # 確認

    # 編集したnetlistの情報でバッチ処理を実行する
    run_net_file = fname + '_' + fname_tmp + '.net'
    LTC.run(run_filename=run_net_file)
    LTC.wait_completion()
RL Vcc Vout 1k
RL Vcc Vout 100
RL Vcc Vout 10
RL Vcc Vout 1
from PyLTSpice import RawRead

fig = plt.figure(figsize=(6, 4))
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2, sharex=ax1)

for fname_tmp in fname_tmps:
    LTR = RawRead(fname + '_' + fname_tmp + '.raw')
    x     = LTR.get_trace('time').get_time_axis(0)

    tmp1  = LTR.get_trace('V(vout)').get_wave(0)
    ax1.plot(x * 1000, tmp1, label=fname_tmp)

    tmp1  = LTR.get_trace('I(Rl)').get_wave(0)
    ax2.plot(x * 1000, tmp1 * 1000, label=fname_tmp)

ax1.legend(); ax1.grid()
ax1.set_xlabel('[ms]'); ax1.set_ylabel('Vout[V]')

ax2.legend(); ax2.grid()
ax2.set_xlabel('[ms]'); ax2.set_ylabel('I$_{RL}$[mA]')

fig.tight_layout()

fig.savefig('PrimaryCircuit7-065_Graph2.png')

抵抗が小さくなるにつれて、電流値が大きくなり、電圧がだんだん0Vから浮いてきている

拡大してみると

from PyLTSpice import RawRead

fig = plt.figure(figsize=(6, 4))
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2, sharex=ax1)

for fname_tmp in fname_tmps:
    LTR = RawRead(fname + '_' + fname_tmp + '.raw')
    x     = LTR.get_trace('time').get_time_axis(0)

    tmp1  = LTR.get_trace('V(vout)').get_wave(0)
    ax1.plot(x * 1000, tmp1, label=fname_tmp)

    tmp1  = LTR.get_trace('I(Rl)').get_wave(0)
    ax2.plot(x * 1000, tmp1 * 1000, label=fname_tmp)

ax1.legend(); ax1.grid()
ax1.set_xlabel('[ms]'); ax1.set_ylabel('Vout[V]')

ax2.legend(); ax2.grid()
ax2.set_xlabel('[ms]'); ax2.set_ylabel('I$_{RL}$[mA]')

ax1.set_xlim(0.4, 0.7)
ax1.set_ylim(0.00005, 0.5)
ax1.set_yscale('log')
ax2.set_ylim(1, 10000)
ax2.set_yscale('log')

fig.tight_layout()

fig.savefig('PrimaryCircuit7-065_Graph3.png')

抵抗値が10倍変わると、電流値も10倍、電圧も10倍ずつ変化していそう
5A電流を流しても、100mV浮いている程度

0.6-0.7msの区間の電圧値と電流値の平均値から、オン抵抗の値をそれぞれ求めると

from PyLTSpice import RawRead

for fname_tmp in fname_tmps:
    LTR = RawRead(fname + '_' + fname_tmp + '.raw')
    x     = LTR.get_trace('time').get_time_axis(0)

    tmp1  = LTR.get_trace('V(vout)').get_wave(0)
    volt = tmp1[(x * 1000 > 0.6)&(x * 1000 < 0.7)].mean() #[V]

    tmp1  = LTR.get_trace('I(Rl)').get_wave(0)
    curr = tmp1[(x * 1000 > 0.6)&(x * 1000 < 0.7)].mean() #[A]
    
    print('%-6s %7.2f[mV] % 7.0f[mA] %7.1f[mΩ]' % (fname_tmp, volt*1e3, curr*1e3, volt/curr*1e3))
1k        0.12[mV]       5[mA]    24.7[mΩ]
100       1.24[mV]      50[mA]    24.7[mΩ]
10       12.34[mV]     499[mA]    24.7[mΩ]
1       122.19[mV]    4878[mA]    25.1[mΩ]

ほぼほぼ25mΩであることが分かる

参考文献

この記事は以下の書籍を参考にしましたが、
私の拙い知識で書いておりますので、誤り等ありましたらご指摘ください