目次

正弦波発振器(クロック可変方式)

概要

PICとD/A変換を利用して正弦波発振器を作った場合には次のような問題があります。

そこでこの問題をある程度、緩和させたく取り組んでみました。

動作原理

今回の発振器の仕様を次のように設定しました。

この仕様を満足させるために、次の2点に注目しました。

<1kHz~30MHzオシレータ基板の仕様>※2008年2月時点で600円で販売しています。

回路図

ソースコード

sin.c
void	main()
{
	CMCON = 0b00000111;
	ANSEL = 0b00000000;
	TRISA = 0b11111111;
	TRISB = 0b00000000;
	//
	while (1) {
		PORTB = 127;
		PORTB = 129;
		PORTB = 131;
		PORTB = 134;
		PORTB = 136;
		PORTB = 138;
		PORTB = 140;
		PORTB = 142;
		PORTB = 145;
		PORTB = 147;
		PORTB = 149;
		PORTB = 151;
		PORTB = 153;
		PORTB = 156;
		PORTB = 158;
		PORTB = 160;
		PORTB = 162;
		PORTB = 164;
		PORTB = 166;
		PORTB = 168;
		PORTB = 170;
		PORTB = 173;
		PORTB = 175;
		PORTB = 177;
		PORTB = 179;
		PORTB = 181;
		PORTB = 183;
		PORTB = 185;
		PORTB = 187;
		PORTB = 189;
		PORTB = 191;
		PORTB = 192;
		PORTB = 194;
		PORTB = 196;
		PORTB = 198;
		PORTB = 200;
		PORTB = 202;
		PORTB = 203;
		PORTB = 205;
		PORTB = 207;
		PORTB = 209;
		PORTB = 210;
		PORTB = 212;
		PORTB = 214;
		PORTB = 215;
		PORTB = 217;
		PORTB = 218;
		PORTB = 220;
		PORTB = 221;
		PORTB = 223;
		PORTB = 224;
		PORTB = 226;
		PORTB = 227;
		PORTB = 228;
		PORTB = 230;
		PORTB = 231;
		PORTB = 232;
		PORTB = 234;
		PORTB = 235;
		PORTB = 236;
		PORTB = 237;
		PORTB = 238;
		PORTB = 239;
		PORTB = 240;
		PORTB = 241;
		PORTB = 242;
		PORTB = 243;
		PORTB = 244;
		PORTB = 245;
		PORTB = 246;
		PORTB = 246;
		PORTB = 247;
		PORTB = 248;
		PORTB = 248;
		PORTB = 249;
		PORTB = 250;
		PORTB = 250;
		PORTB = 251;
		PORTB = 251;
		PORTB = 252;
		PORTB = 252;
		PORTB = 252;
		PORTB = 253;
		PORTB = 253;
		PORTB = 253;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 254;
		PORTB = 253;
		PORTB = 253;
		PORTB = 253;
		PORTB = 252;
		PORTB = 252;
		PORTB = 252;
		PORTB = 251;
		PORTB = 251;
		PORTB = 250;
		PORTB = 250;
		PORTB = 249;
		PORTB = 248;
		PORTB = 248;
		PORTB = 247;
		PORTB = 246;
		PORTB = 246;
		PORTB = 245;
		PORTB = 244;
		PORTB = 243;
		PORTB = 242;
		PORTB = 241;
		PORTB = 240;
		PORTB = 239;
		PORTB = 238;
		PORTB = 237;
		PORTB = 236;
		PORTB = 235;
		PORTB = 234;
		PORTB = 232;
		PORTB = 231;
		PORTB = 230;
		PORTB = 228;
		PORTB = 227;
		PORTB = 226;
		PORTB = 224;
		PORTB = 223;
		PORTB = 221;
		PORTB = 220;
		PORTB = 218;
		PORTB = 217;
		PORTB = 215;
		PORTB = 214;
		PORTB = 212;
		PORTB = 210;
		PORTB = 209;
		PORTB = 207;
		PORTB = 205;
		PORTB = 203;
		PORTB = 202;
		PORTB = 200;
		PORTB = 198;
		PORTB = 196;
		PORTB = 194;
		PORTB = 192;
		PORTB = 191;
		PORTB = 189;
		PORTB = 187;
		PORTB = 185;
		PORTB = 183;
		PORTB = 181;
		PORTB = 179;
		PORTB = 177;
		PORTB = 175;
		PORTB = 173;
		PORTB = 170;
		PORTB = 168;
		PORTB = 166;
		PORTB = 164;
		PORTB = 162;
		PORTB = 160;
		PORTB = 158;
		PORTB = 156;
		PORTB = 153;
		PORTB = 151;
		PORTB = 149;
		PORTB = 147;
		PORTB = 145;
		PORTB = 142;
		PORTB = 140;
		PORTB = 138;
		PORTB = 136;
		PORTB = 134;
		PORTB = 131;
		PORTB = 129;
		PORTB = 127;
		PORTB = 125;
		PORTB = 123;
		PORTB = 120;
		PORTB = 118;
		PORTB = 116;
		PORTB = 114;
		PORTB = 112;
		PORTB = 109;
		PORTB = 107;
		PORTB = 105;
		PORTB = 103;
		PORTB = 101;
		PORTB = 98;
		PORTB = 96;
		PORTB = 94;
		PORTB = 92;
		PORTB = 90;
		PORTB = 88;
		PORTB = 86;
		PORTB = 84;
		PORTB = 81;
		PORTB = 79;
		PORTB = 77;
		PORTB = 75;
		PORTB = 73;
		PORTB = 71;
		PORTB = 69;
		PORTB = 67;
		PORTB = 65;
		PORTB = 63;
		PORTB = 62;
		PORTB = 60;
		PORTB = 58;
		PORTB = 56;
		PORTB = 54;
		PORTB = 52;
		PORTB = 51;
		PORTB = 49;
		PORTB = 47;
		PORTB = 45;
		PORTB = 44;
		PORTB = 42;
		PORTB = 40;
		PORTB = 39;
		PORTB = 37;
		PORTB = 36;
		PORTB = 34;
		PORTB = 33;
		PORTB = 31;
		PORTB = 30;
		PORTB = 28;
		PORTB = 27;
		PORTB = 26;
		PORTB = 24;
		PORTB = 23;
		PORTB = 22;
		PORTB = 20;
		PORTB = 19;
		PORTB = 18;
		PORTB = 17;
		PORTB = 16;
		PORTB = 15;
		PORTB = 14;
		PORTB = 13;
		PORTB = 12;
		PORTB = 11;
		PORTB = 10;
		PORTB = 9;
		PORTB = 8;
		PORTB = 8;
		PORTB = 7;
		PORTB = 6;
		PORTB = 6;
		PORTB = 5;
		PORTB = 4;
		PORTB = 4;
		PORTB = 3;
		PORTB = 3;
		PORTB = 2;
		PORTB = 2;
		PORTB = 2;
		PORTB = 1;
		PORTB = 1;
		PORTB = 1;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 0;
		PORTB = 1;
		PORTB = 1;
		PORTB = 1;
		PORTB = 2;
		PORTB = 2;
		PORTB = 2;
		PORTB = 3;
		PORTB = 3;
		PORTB = 4;
		PORTB = 4;
		PORTB = 5;
		PORTB = 6;
		PORTB = 6;
		PORTB = 7;
		PORTB = 8;
		PORTB = 8;
		PORTB = 9;
		PORTB = 10;
		PORTB = 11;
		PORTB = 12;
		PORTB = 13;
		PORTB = 14;
		PORTB = 15;
		PORTB = 16;
		PORTB = 17;
		PORTB = 18;
		PORTB = 19;
		PORTB = 20;
		PORTB = 22;
		PORTB = 23;
		PORTB = 24;
		PORTB = 26;
		PORTB = 27;
		PORTB = 28;
		PORTB = 30;
		PORTB = 31;
		PORTB = 33;
		PORTB = 34;
		PORTB = 36;
		PORTB = 37;
		PORTB = 39;
		PORTB = 40;
		PORTB = 42;
		PORTB = 44;
		PORTB = 45;
		PORTB = 47;
		PORTB = 49;
		PORTB = 51;
		PORTB = 52;
		PORTB = 54;
		PORTB = 56;
		PORTB = 58;
		PORTB = 60;
		PORTB = 62;
		PORTB = 63;
		PORTB = 65;
		PORTB = 67;
		PORTB = 69;
		PORTB = 71;
		PORTB = 73;
		PORTB = 75;
		PORTB = 77;
		PORTB = 79;
		PORTB = 81;
		PORTB = 84;
		PORTB = 86;
		PORTB = 88;
		PORTB = 90;
		PORTB = 92;
		PORTB = 94;
		PORTB = 96;
		PORTB = 98;
		PORTB = 101;
		PORTB = 103;
		PORTB = 105;
		PORTB = 107;
		PORTB = 109;
		PORTB = 112;
		PORTB = 114;
		PORTB = 116;
		PORTB = 118;
		PORTB = 120;
		PORTB = 123;
		PORTB = 125;
	}
}
 
//**********************************************************************

動作確認

いつものブレッドボードで確認しました。

発振周波数が約500Hzの時の波形です。

発振周波数が約10kHzの時の波形です。

【発振周波数範囲】
分周比が1/1の時には、500Hz~10kHz
分周比が1/10の時には、50Hz~1kHz
分周比が1/100の時には、5Hz~100Hz

著作権表示 copyright notice

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