Raspberry Pi PicoとMOSFET ⑨ HブリッジをPicoからドライブ<その1>
前回まで、ハーフブリッジ回路のドライブを実験しました。同じPチャネルとNチャネルのペアの回路をもう1組用意します。Hブリッジ回路になります。追加した下のブロックを回路図の右側に配置すれば、一般的はHブリッジ回路になります。
●モータに電流を流す
上のブロックのPチャネルMOSFETをONに、下のブロックのNチャネルMOSFETをONにすると、モータに電流が流れます。
入力の状態と出力のドレイン端子は、次の関係になります。
信号 | 状態 | ドレイン |
---|---|---|
INa | 0 | PチャネルMOSFET ON |
INb | 0 | NチャネルMOSFET OFF |
INc | 1 | PチャネルMOSFET OFF |
INd | 1 | NチャネルMOSFET ON |
プログラムです。デューティ比
float duty_factor = 0.8;
によって回転数が変わります。
#include "pico/stdlib.h"
#include <stdio.h>
#include "hardware/pwm.h"
int main() {
stdio_init_all();
printf("\nHello, PWM GP2/3,GP4/5\n");
gpio_set_function(2, GPIO_FUNC_PWM);
gpio_set_function(3, GPIO_FUNC_PWM);
const uint GP4 = 4;
const uint GP5 = 5;
gpio_init(GP4);
gpio_init(GP5);
gpio_set_dir(GP4, GPIO_OUT);
gpio_set_dir(GP5, GPIO_OUT);
gpio_put(GP4, 0);
gpio_put(GP5, 1);
uint slice_num = pwm_gpio_to_slice_num(2);
uint16_t divCounter = 12500; // max 2^16 = 65536
pwm_set_wrap(slice_num, divCounter-1); // 10kHz
uint8_t div = 10;
uint8_t fract = 0;
pwm_set_clkdiv_int_frac(slice_num, div, fract); // 1kHz
// duty
float duty_factor = 0.8;
// GP2
pwm_set_chan_level(slice_num, PWM_CHAN_A, (int)divCounter * duty_factor);
// GP3
pwm_set_chan_level(slice_num, PWM_CHAN_B, (int)divCounter * duty_factor);
// phase
pwm_set_output_polarity(slice_num, true, false); // A B
// Set the PWM running
pwm_set_enabled(slice_num, true);
return 0;
}
上のブロックのPチャネルMOSFETのゲート(上)とドレイン(下)の波形を見ます。
Vsは9.25V、Vsは10.5Vです。きれいにOFFする電圧が見つかりません。ほとんどON状態です。
Vsは7.36V、Vsは10.5Vの波形です。ほとんどOFFにはなりません。
下のブロックのNチャネルMOSFETのゲート(上)とドレイン(下)の波形です。Vsは7.36V、Vsは10.5Vです。
●デューティ比20%
上のブロックのPチャネルMOSFETのゲート(上)とドレイン(下)の波形です。
Vsを下げていって、7.56Vになると回転し始めました。
下のブロックのNチャネルMOSFETのゲート(上)とドレイン(下)の波形です。Vsは7.76V、Vsは10.5Vです。
PチャネルMOSFETのゲート電圧がクリティカルな印象があります。
●4チャネルを同時に観測
ONする条件は上記の実験と同じです。デューティ比は80%です。オシロスコープはAnalog Discover PRO ADP3450 に変更しました。
Vdは10.4V、Vsは9.0Vです。
オレンジ色はONするPチャネルMOSFETのゲート、青色は、モータに電流を流れ出しているドレインの波形です。
茶色はOFFするNチャネルMOSFETのゲート、緑色は、モータに電流を吸い込んでいるドレインの波形です。
Vsは7.5Vです。モータの回転が遅くなりました。PチャネルMOSFETがONしたままです。
Vsは10.78Vです。NチャネルMOSFETがほぼOFFのままです。
一連の実験では、PチャネルMOSFETの扱いがクリティカルという印象がありました。NとPチャネルは特性はまったく異なるので、品種を変えると、また別の結果が得られるかもしれません。
Hブリッジ回路は、すべてNチャネルMOSFETで構成する方法があります。