Raspberry Pi PicoとMOSFET ⑤ NチャネルMOSFETをPicoからドライブ
PicoのPWM波形の作成方法がわかったので、最初に、発振器のときと同じく10kHzのPWMを作成します。
●プログラム
wrapだけで10kHzを得ました。
#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);
gpio_set_function(4, GPIO_FUNC_PWM);
gpio_set_function(5, GPIO_FUNC_PWM);
uint slice_num = pwm_gpio_to_slice_num(2);
uint slice_num2 = pwm_gpio_to_slice_num(4);
uint16_t divCounter = 12500; // max 2^16 = 65536
pwm_set_wrap(slice_num, divCounter-1); // 10kHz
// duty 10%
pwm_set_chan_level(slice_num, PWM_CHAN_A, (int)divCounter*0.1);
// duty 20%
pwm_set_chan_level(slice_num, PWM_CHAN_B, (int)divCounter*0.2);
pwm_set_wrap(slice_num2, 1249);
pwm_set_chan_level(slice_num2, PWM_CHAN_A, 256);
pwm_set_chan_level(slice_num2, PWM_CHAN_B, 256);
// Set the PWM running
//pwm_set_enabled(slice_num, true);
//pwm_set_enabled(slice_num2, true);
pwm_set_mask_enabled(0b00000110);
return 0;
}
●実行結果
上の黄色がGP2、下の緑色がGP3の出力です。周波数は10kHzで、デューティ比はそれぞれ10%と20%です。
●回路図
●PicoのGP2端子を回路につなぐ
上の黄色がGP2、下の緑色がゲート・ドライバIR4427の出力(FETのゲート入力)です。ゲートに電圧は加えていません。Vsは7Vです。
ドレインに12Vの電圧を加えました。
上の黄色がゲート、下の緑色がドレインの波形です。ゲートの立ち上がりが2段になっているのは、ゲートの容量をチャージするため時間です。