サイトマップ

回路の素101 068 ハイ・サイド MOSFET使用

回路の素101 068 ハイ・サイド MOSFET使用

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

回路図作成

  • 基本的な構成

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-068.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-068_Graph1.png')

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

負荷電流を増やす

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

from PyLTSpice import SimCommander

fname = 'PrimaryCircuit7-068'
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 Vout 0 1k
RL Vout 0 100
RL Vout 0 10
RL Vout 0 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-068_Graph2.png')

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

拡大してみると

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.3, 0.6)
ax1.set_ylim(4.8, 5.005)
ax1.set_yscale('log')
ax2.set_ylim(1, 10000)
ax2.set_yscale('log')

fig.tight_layout()

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

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

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

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.3)&(x * 1000 < 0.4)].mean() #[V]

    tmp1  = LTR.get_trace('I(Rl)').get_wave(0)
    curr = tmp1[(x * 1000 > 0.3)&(x * 1000 < 0.4)].mean() #[A]
    
    print('%-6s %7.2f[mV] % 7.0f[mA] %7.1f[mΩ]' % (fname_tmp, (5.0 - volt)*1e3, curr*1e3, (5.0 - volt)/curr*1e3))
1k        0.16[mV]       5[mA]    31.7[mΩ]
100       1.58[mV]      50[mA]    31.7[mΩ]
10       15.81[mV]     498[mA]    31.7[mΩ]
1       155.33[mV]    4845[mA]    32.1[mΩ]

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

参考文献

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