昇圧型DC/DCコンバータ(PWM方式)V3

前回の実験「昇圧型DC/DCコンバータ(PWM方式)」で、高電圧の電源が実現できそうだと判断し、今回は、それを実際の電源として利用できるように改良してみました。

基本的な原理は、以前に製作した、「昇圧型B電源ユニット」および「昇圧型DC/DCコンバータ(PWM方式)」を参照してください。

今回の改良のポイントは以下の4項目です。

  • 電流容量を増やすために、スイッチング部をパラレル4段構成とする。
  • 出力電圧を監視し、電圧を設定値になるように自動制御する。
  • 出力電圧を1V単位で、アップ/ダウン可能とする。
  • 自動制御をON/OFF(ホールド状態)可能とする。

dc2dc_v3.c
//********************************************************************** 
/*
	<DC2DCコンバータ V3>
*/
//********************************************************************** 
 
#define		SW_UP		PORTA.F2
#define		SW_DOWN		PORTA.F3
#define		SW_HOLD		PORTA.F5
 
//********************************************************************** 
 
void	Pwm_Change_DutyEx(unsigned int duty_ratio)
{
    CCPR1L = duty_ratio >> 2;
    CCP1CON.CCP1Y = duty_ratio & 0b00000001;
    CCP1CON.CCP1X = (duty_ratio & 0b00000010) >> 1; 
}
 
//********************************************************************** 
 
void main()
{
	//変数の設定 
	static	double				ad, target;
	static	unsigned	char	buf[10];
	static	unsigned	short	cnt;
	static	unsigned	int		duty;
	//ポート関連の設定 
	TRISA = 0b00111100;
	TRISB = 0b00000000;
	OSCCON = 0b01110000;	// クロックを8Mhzに設定する。 
	ANSEL = 0b00010000;		// A/D変換を使用する。
	//LCDの設定 
	Lcd_Custom_Config(&PORTA, 1, 0, 7, 6, &PORTB, 5, 6, 7);
	Lcd_Custom_Cmd(LCD_CURSOR_OFF);
	Lcd_Custom_Cmd(LCD_CLEAR);
	//
	Pwm_Init(10000);			//freq=10kHz
	PR2 = 0xFF;
	duty = 100;
	Pwm_Change_DutyEx(duty);	//duty=10%
	Pwm_Start();
	//
	target = 100;
	//
	WordToStr(target, buf);
	Lcd_Custom_Out(1, 1, &buf[2]);
	Lcd_Custom_Out(1, 4, "V");
	Lcd_Custom_Out(2, 4, "V");
	Lcd_Custom_Out(2, 6, "duty=");
	while (1) {
		ad = 0.0;
		for (cnt = 0; cnt < 100; cnt++) {
			ad += Adc_Read(4);
		}
		ad = ad / 100.0;
		ad = ((ad * 4.8828125) * 101.0) / 1000.0;
		WordToStr(ad, buf);
		Lcd_Custom_Out(2, 1, &buf[2]);
		//
		if (SW_HOLD == 1) {
			if (ad > target) {
				duty--;
			} else {
				duty++;
			}
		}
		Pwm_Change_DutyEx(duty);
		WordToStr(duty, buf);
		Lcd_Custom_Out(2, 11, &buf[1]);
		//
		if (SW_UP == 0) {
			target += 1;
			WordToStr(target, buf);
			Lcd_Custom_Out(1, 1, &buf[2]);
		}
		if (SW_DOWN == 0) {
			target -= 1;
			WordToStr(target, buf);
			Lcd_Custom_Out(1, 1, &buf[2]);
		}
	}
}
 
//**********************************************************************

スイッチング部は、別ユニットとし、パワーMOSFETには放熱板を取り付けました。

出力電圧を、昔の真空管ラジオ(トランス付き5球スーパー)のB電圧として利用し、動作を確認してみました。

B電圧の供給口は、整流管の直後とします。
左側:整流管(6×4)、電力増幅管(6AR5)、電圧増幅管(6AV6)です。
右側:6×4をソケットから外したところです。

6×4の7番ピン(カソード)と筐体アース部分から、B電圧を供給します。

200Vを供給、コンバータの電源は、12V/1.36Aを消費、十分な音量で鳴ってくれます。
LCDの表示は、左上側(設定電圧)、左下側(出力電圧)、右下側(PWMのデューティ値)です。

150Vを供給、コンバータの電源は、12V/0.74Aを消費、十分な音量で鳴ってくれます。

100Vを供給、コンバータの電源は、12V/0.28Aを消費、やや音量が小さくなりました。

50Vを供給、コンバータの電源は、12V/0.04Aを消費、かなり小さな音量ですが鳴っています。

如何ですか?
これを少し工夫すれば、AC100Vを使用せずに、車の12Vバッテリーのみで真空管ラジオを十分な音量で鳴らせることが出来ますね ^_^
また、スイッチング部のパラレル段数を更に増やすことにより、真空管ラジオよりも電流容量が必要となる、真空管ステレオアンプにも十分使えるのではと考えています。

著作権表示 copyright notice

このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。詳細
This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.Details
  • elechobby/picdic/pic16f88/116.txt
  • 最終更新: 2025/10/17 14:29
  • by 127.0.0.1