PIC12F1822の高速応答周波数カウンタ実験                nobcha(c)2011

 

 このページでは新4桁型番シリーズの8ピンタイプであるPIC12F1822を使った周波数カウンタ実験を報告します。

 マイクロチップ社アプリケーションノートAN579には値がR/WできないTMR0の内容を取り出すテクニックが紹介されています。PICのTMR0を使用してカウンタを作り、応答周波数を上げるにはプリスケーラを使用したくなりますが、プリスケーラ値を読み出せないと精度上がりません。AP579のアイデアで高速応答周波数カウンタを試作実験します。

 この試作ではMicrochip社のMPLABやPICKIT2を用いて開発デバッグしました。また使用言語はフリー版HITECH C pro liteを用いております。MPLABv8.73と、HI−TECH C PIC10/12/16 LITE v9.82を使いました。PICフラッシュへの書き込みはPICKIT2 V2.31を使用しました。

 以上のソフトはMicrochip社WEBからダウンロードしてご利用ください。またデバッグやプログラム書き込みに必要なPICKIT2やその後継のPICKIT3はWEB通販や秋葉パーツショップで扱われているので簡単に入手できます。

 

項目

内容

実験・試作・基板・ソフトなどの説明

仕様や考え方 今回ブレッドボード実験では@プリスケーラ読み出しATCXO外部クロックの2種が新たな実験対象です
項目 考え方 詳しい説明
方式踏襲 シンプルカウンタ方式 今まで実験行ってきたシンプルカウンタをベースに次のような仕様を追加取り込みます。
周波数カウント TMR0を使用します。オーバーフロー割込み。 8ビットでは値が不足するので更に上位8ビットをオーバーフロー割り込みによりソフト計数で行います。TMR0入力は32分の1プリスケーラ経由で取り込みます。
プリスケーラ読み出し カウント時間終了後プリスケーラ値を計数 ポートのTRISA制御でゲートを閉じた後、TMR0のプリスケーラにパルスを送り込みTMR0がカウントアップするのを監視、その時のパルス数からプリスケーラ内の値を計算します。AN592を参考にします。
基準時間 TMR1を使用し10m秒をカウントして作ります。 指定数カウントしオーバーフロー割り込みによりゲートを閉じます。FOSC4MHzの4分の1がクロック312.5μ秒なので65536−32000カウントをセットします。
システムクロック 12.8MHzTCXOをECHで取り込み コンフィギュレーションFOSC_ECHでTCXO12.8MHzからのクロックを取り込みます。京セラTCXO”18S-03A-4の解説資料
回路図 PIC12F1822を用い、周波数表示にはTC4040経由接続でLCDを使います

測定周波数 どの程度の周波数までカウントできるのか

ソフト 試作開発したソフト MAIN関数です。簡易カウンタのソフトを修正して作りました

LCD表示用の関数です。以前に作ったTC4040B経由LCD接続用の関数ですがdelayは関数内で用意します。そのヘッダファイルです

PICマイコンへの書き込みはMPLABで作った*.HEXファイルをPICKIT2書き込みソフトでインポートしICSP経由で書き込みました。V2.61ではデバイスファイルをVアップしないとPIC12F1822には書き込めません。

実装 PasS 実験用に使い回しができそうな仕上がりです。今度閑な時にユニバーサル基板にまとめてみようかと思って、実装を考えてみました。SC1602液晶モジュールの後に収まる程度の大きさなので、コンパクトにできました。

この実装では5Vの3端子レギュレータで電源入力するような部品配置になっております。

 

全体目次に戻る            2011.09.18

アイコンは「牛飼いとアイコンの部屋」からの提供とオリジナルです。感謝。

inserted by FC2 system