おじさん工房 BBS
レシプロカル周波数カウンタの基準周波数 - 笛吹おじさん
2011/01/11 (Tue) 23:12:46
レシプロカル周波数カウンタのプログラムのFCPUに関わる部分を変更することでCLKを12.8MHzから10MHzにする事は可能でしょうか?
Re: レシプロカル周波数カウンタの基準周波数 - 四国のおじさん
2011/01/12 (Wed) 01:22:43
確かに12.8MHzのTCXOが手に入りにくくなっていますね。
秋月ではもう取り扱っていないようです。
私は、プリスケラなしで、10MHzくらいまで測りたいので、できれば20MHzのオシレータを使いたいと思っています。
Re: レシプロカル周波数カウンタの基準周波数 - Ojisankoubou
2011/01/12 (Wed) 09:04:17
ざっとみたところ、以下の部分を変更すればいいと思います。
#define FCPU 12800000L
uint8 freqref[FIX_SIZE] ={0,0xC3,0x50,0,0,0,0}; // 基準周波数 12800000
uint8 sg_tccr2b[8] = { 0,0x87,0x86,0x84,0x84,0x81,0x81,0x81 }; // テスト信号 クロック分周
uint8 sg_ocr2a[8] = { 0,255, 249, 99, 9, 63, 5, 1 }; // テスト信号 カウント値
周波数補正部分
int16 h = freqhosei<<4;
freqref[2] = (freqhosei>=0)? 0x50:0x4F; // 補正値がマイナスのとき 12799999 にする
freqref[3] = (uint8)(h>>8);
freqref[4] = (uint8)h;
あと、20MHz にするのなら、dly_usec( uint16 timeus ) の NOP を 14個に増やす必要があります。
Re: レシプロカル周波数カウンタの基準周波数 - 笛吹おじさん
2011/01/12 (Wed) 10:19:30
Ojisankoubouさん、四国のおじさん さん、今年もよろしくお願い致します。
早速のアドヴァイス有り難う御座います。精度のいい10MHzを外部から入れて使えればと思いお尋ねしました。
12.8MHz発振器は秋月ではもう在庫が無くなった様ですね。
200円と安くて良かったのですが。
12.8MHzをVCOにして精度のいい外部基準とPLLでロックをかけてみようかとも考えたのですが。
プログラムの変更でいけそうですのでやってみようかと思います。