目次

ダイオード静特性測定ユニット

概要

ダイオードの静特性とは、ダイオードに直流電圧をかけて流れる電流を求める測定で得られる特性のことで、ダイオードにかけた順方向電圧をX軸正方向、流れる順方向電流をY軸正方向にプロットした時の特性曲線をいいます。

静特性はダイオード回路の設計の基礎データになります。接合型シリコンダイオードでは0.6~1V付近を境に、それ以下の順方向電圧では内部抵抗が非常に高く、そのため流れる電流が少なく、0.6V付近の順方向電圧を超えると内部抵抗が急激に低下して電流が急増します。

この特性を自動で測定するユニットを作成してみました。

動作原理

  1. ダイオードの順方向に印加電圧を加えていきます。
    • D/A変換には、R-2Rラダー方式を採用しました。
    • 回路的には、10ビットなのですが、9ビットで使用しました。(精度は約5mVです)
    • 電圧範囲は、約0V~2.5Vです。
  2. その時のダイオードの順方向電圧と電流を測定します。
    • ダイオードの両端電圧と既知の負荷抵抗10kΩより換算します。
  3. そのデータをパソコンへRS232C経由で送信します。
    • 印加電圧(mV)
    • 電流(×0.1μA)
    • 順方向電圧(mV)
  4. パソコンのハイパーターミナルでデータを受信します。
  5. そのデータをExcelでグラフ表示します。

回路図

ソースコード

SawWave.c
//********************************************************************** 
/* 
		<ダイオード静特性測定ユニット> 
 
 ★ダイオードの静特性を測定し、パソコンへRS232C経由でデータ
  を送ります。
 
  <送信データの内容> 
    ■印加電圧(mV)
    ■電流(×0.1μA)
    ■順方向電圧(mV)
 
*/ 
//********************************************************************** 
 
void	Usart_Write_String(char *buf)
{
	static	int	len, i;
	len = strlen(buf);
	for (i = 0; i < len; i++) {
		Usart_Write(buf[i]);
	}
}
 
//********************************************************************** 
 
void	main()
{
	unsigned	int		ad2, ad3, cnt;
	unsigned	char	buf[10];
	//
	OSCCON = 0b01110000;		// クロックは8Mhz 
	CMCON  = 0b00000111;		// コンパレータは使用しない。
	ANSEL  = 0b00001100;		// AN2,AN3を使用する。 
	TRISA  = 0b00001100;
	TRISB  = 0b00000100;
	//
	Usart_Init(9600);
	Delay_ms(100);
	//
	while (1) {
		// 測定開始スイッチが押されるまで待つ。 
		if (PORTA.F5 == 1) {
			Delay_ms(10);
			continue;
		}
		// 測定し、結果をパソコンへ送信する。 
		for (cnt = 0; cnt < 512; cnt++) {
			PORTB.F0 = (cnt & 0b000000001) == 0 ? 0 : 1;
			PORTB.F1 = (cnt & 0b000000010) == 0 ? 0 : 1;
			PORTB.F3 = (cnt & 0b000000100) == 0 ? 0 : 1;
			PORTB.F4 = (cnt & 0b000001000) == 0 ? 0 : 1;
			PORTB.F6 = (cnt & 0b000010000) == 0 ? 0 : 1;
			PORTB.F7 = (cnt & 0b000100000) == 0 ? 0 : 1;
			PORTA.F6 = (cnt & 0b001000000) == 0 ? 0 : 1;
			PORTA.F7 = (cnt & 0b010000000) == 0 ? 0 : 1;
			PORTA.F0 = (cnt & 0b100000000) == 0 ? 0 : 1;
			//
			ad2 = Adc_Read(2);
			ad3 = Adc_Read(3);
			//
			WordToStr(ad2 * 5, buf);
			Usart_Write_String(buf);
			Usart_Write_String(", ");
			//
			WordToStr(ad3 * 5, buf);
			Usart_Write_String(buf);
			Usart_Write_String(", ");
			//
			WordToStr((ad2 - ad3) * 5, buf);
			Usart_Write_String(buf);
			Usart_Write_String("\r\n");
		}
	}
}
 
//**********************************************************************

動作確認

いつものようにブレッドボード上で確認しました。
配線で隠れているのがPICです。黄色のスイッチが測定開始のスイッチです。
RS232Cへのレベル変換は、RS232Cレベル変換ユニット(左側)を利用しました。
D/A変換は、ブレッドボード用に作成した10ビット精度のD/A変換ユニット(右側)を利用しました。

パソコンのハイパーターミナルで測定データを受信した所です。

そのデータをExcelでグラフ表示させて見ました。
【1S1588:スイッチングダイオード】

【1N60:ゲルマニウムダイオード 】

【1SS108:ショットキーバリアダイオード 】

【1SS97:ショットキーバリアダイオード】

【型番不明】

【型番不明】

如何ですか?
理論的には理解しているつもりでも、実データとして測定してみるとダイオードによって特性が若干異なるので中々面白いですね。^_^

著作権表示 copyright notice

このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。詳細
This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.Details