<74HCU04発振回路>

発振回路には、デジタルICのインバータ(NOT)を使った回路があります。

そのインバータICには、74HCU04以外に74LS04、74HC04などがあり、74HCU04、74HC04はC-MOSで、74LS04はTTLです。

よく紹介されているのは、74HCU04・74HC04で、発振回路に使用するにはアンバッファタイプの74HCU04のほうがいいとのことです。

74HCU04はアンバッファタイプ、74HC04はバッファタイプで下画像の違いがあります。


ここでは、74LS04と74HCU04で、それぞれ発振回路(4Mhz,20Mhz)を組み立てました。発振は、オシロで確認すればいいのですが
数M以上のオシロがなく発振確認出来ないので、PIC16F688の外付け発振器に、この発振回路(4Mhz,20Mhz)を取り付けてLEDの点滅が、するかしないかで判断しました。



発振回路


実際の発振回路と発振の確認 (左が発振回路、右がPIC16F688発振確認回路 0.5S ON/OFFの点滅)


まずICですが、74LS04は、いろいろ試しましたが発振しませんでした。

それで、74HCU04での、セラロックと水晶の発振子および、数種類のR、Cを組み合わせた実験結果を紹介します。

<外付け セラロック発振>




セラロック=4M R=10K   ×
セラロック=4M R=100K   ○
セラロック=4M R=510K   ○
セラロック=4M R=1M     ○
セラロック=4M R=無し   ○

セラロック=20M R=1K   ×
セラロック=20M R=10K  ○
セラロック=20M R=100K  ○
セラロック=20M R=510K  ○
セラロック=20M R=1M    ○
セラロック=20M R=無し  ○


<外付け 水晶発振>






C1,C2=22Pf

水晶=4M R=10K   ×
水晶=4M R=100K   ○
水晶=4M R=510K   ○
水晶=4M R=1M     ○
水晶=4M R=無し   ○

水晶=20M R=1K   ×
水晶=20M R=10K  ○
水晶=20M R=100K  ○
水晶=20M R=510K  ○
水晶=20M R=1M  K ○
水晶=20M R=無しK ○


プログラム
-----------------------------------------------------------------------------------------
#include <htc.h>

//発振回路設定 内部発振:INTIO 外付発振:HS,XT,LP 外部発振器:EC
__CONFIG(FCMDIS & IESODIS & BOREN & UNPROTECT & MCLREN & PWRTEN & WDTDIS & EC);
__IDLOC(0001);

//発振周波数設定 31K:31000 4M:4000000 20M:20000000 など
#define _XTAL_FREQ 4000000	        /* 4MHz */

//待ち時間設定 __delay_ms(JIKAN):ms __delay_us(JIKAN):μs
#define JIKAN 500			/* 500ミリ秒 */

main()
{

//内臓発振のときはOSCCONを記述、外付発振・外部発振器のときは、この記述いらない
//例 31k:OSCCON=0x00; 4M:OSCCON=0x60; 8M:OSCCON=0x70;	
//	    OSCCON=0x60;		/* 内臓発振の4M */
		
		TRISC=0x00;		/* PORTCピンを出力にする */

		PORTC=0x00;		/* PORTCを初期化する */

	while(1){
		
		RC2=1;			/* RC2ポートをH にする */
		__delay_ms(JIKAN);	/* JIKANミリ秒待つ */

		RC2=0;			/* RC2ポートをL にする */
		__delay_ms(JIKAN);	/* JIKANミリ秒待つ */

	}
}
-----------------------------------------------------------------------------------------

以上の結果から、ICはアンバッファタイプの74HCU04でRの値は、100K以上であれば再現性のある
外付け発振器となるようです。ICの使っていない端子は、プルアップ、プルダウン推奨とありますが
今回はしていません。(特に不具合はありませんでした)