差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| elechobby:picdic:pic12f683:14 [2020/04/28 18:06] – 外部編集 127.0.0.1 | elechobby:picdic:pic12f683:14 [2025/10/17 14:29] (現在) – 外部編集 127.0.0.1 | ||
|---|---|---|---|
| 行 4: | 行 4: | ||
| 以前にも簡易周波数カウンタを製作しましたが、今回は、部品点数を減らすと共に機能強化を図りました。 | 以前にも簡易周波数カウンタを製作しましたが、今回は、部品点数を減らすと共に機能強化を図りました。 | ||
| - | 一般的には、周波数カウンタには、高精度のクロックモジュール(例えば、16, | + | 一般的には、周波数カウンタには、高精度のクロックモジュール(例えば、16, |
| - | が、今回はあえて使用せずに、PIC内臓のクロック(8MHz)を使用しました。 | + | |
| しかし、それだけでは精度が得られませんので“精度校正機能" | しかし、それだけでは精度が得られませんので“精度校正機能" | ||
| 行 16: | 行 15: | ||
| ===== 動作原理 ===== | ===== 動作原理 ===== | ||
| PIC内臓のクロックの精度を測定してみますと、数kHzの単位で誤差がありました。 | PIC内臓のクロックの精度を測定してみますと、数kHzの単位で誤差がありました。 | ||
| - | 測定方法は、クロックの指定で、内臓OSC(HFINTOSC)の8MHzとし、尚且つ、クロックOUTモードを指定し | + | 測定方法は、クロックの指定で、内臓OSC(HFINTOSC)の8MHzとし、尚且つ、クロックOUTモードを指定します。 |
| - | ます。そうすることにより、CLKOUT端子からクロックが1/ | + | そうすることにより、CLKOUT端子からクロックが1/ |
| 今回使用したPICでは、約2.002MHz(つまり8.008MHz)ありました。 | 今回使用したPICでは、約2.002MHz(つまり8.008MHz)ありました。 | ||
| このままでは、クロックが8kHz高いので測定結果が入力信号の周波数よりも低くなってしまいます。 | このままでは、クロックが8kHz高いので測定結果が入力信号の周波数よりも低くなってしまいます。 | ||
| {{: | {{: | ||
| - | 正確なゲートタイム(1秒、0.1秒)を得るために、PICが内蔵しているTIMER1モジュール(16ビット)を使って | + | 正確なゲートタイム(1秒、0.1秒)を得るために、PICが内蔵しているTIMER1モジュール(16ビット)を使っています。 |
| - | います。そこで、この時のタイマーに設定する値を“±" | + | そこで、この時のタイマーに設定する値を“±" |
| - | を採用しました。 | + | |
| < | < | ||
| * 0.000004秒=(1秒÷8, | * 0.000004秒=(1秒÷8, | ||
| 行 39: | 行 37: | ||
| 校正時(CalibrationスイッチをON)には、高精度な1, | 校正時(CalibrationスイッチをON)には、高精度な1, | ||
| - | この時プログラムの処理では、測定結果が1, | + | この時プログラムの処理では、測定結果が1, |
| - | ながら自動的に微調整します。 | + | |
| - | 尚、校正が完了した設定値(1秒用、0.1秒用)は、EEPROM(Electrically Erasable Programmable ROM)へ | + | 尚、校正が完了した設定値(1秒用、0.1秒用)は、EEPROM(Electrically Erasable Programmable ROM)へ保存し、起動する毎に毎回設定する煩わしさを軽減しています。 |
| - | 保存し、起動する毎に毎回設定する煩わしさを軽減しています。 | + | |
| ===== 回路図 ===== | ===== 回路図 ===== | ||
| 行 305: | 行 301: | ||
| このように頻繁に使う回路は、モジュール化しておくと何かと便利です。 | このように頻繁に使う回路は、モジュール化しておくと何かと便利です。 | ||
| {{: | {{: | ||
| + | |||
| 1, | 1, | ||
| kHzの単位で誤差がありますね。(校正前) | kHzの単位で誤差がありますね。(校正前) | ||
| {{: | {{: | ||
| + | |||
| 校正を開始したところです。(CalibrationスイッチをON) | 校正を開始したところです。(CalibrationスイッチをON) | ||
| 右側の数値は校正用の数値です。この場合(測定値が1MHzよりも低い場合)ですと、測定値が1MHzになる | 右側の数値は校正用の数値です。この場合(測定値が1MHzよりも低い場合)ですと、測定値が1MHzになる | ||
| まで校正用の数値が下がっていきます。 | まで校正用の数値が下がっていきます。 | ||
| {{: | {{: | ||
| + | |||
| 校正が完了したところです。(CalibrationスイッチをOFF) | 校正が完了したところです。(CalibrationスイッチをOFF) | ||
| “数10" | “数10" | ||
| {{: | {{: | ||
| + | |||
| kHz表示をしたところです。 | kHz表示をしたところです。 | ||
| kHz未満は四捨五入しています。 | kHz未満は四捨五入しています。 | ||
| {{: | {{: | ||
| + | |||
| 如何ですか? | 如何ですか? | ||
| kHz以上での精度で構わない場合には、本方式で十分かと思われます。 | kHz以上での精度で構わない場合には、本方式で十分かと思われます。 | ||
| - | + | <callout type=" | |
| - | + | このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。[[elechobby: | |
| + | This page is a copy of Mr. Inasaki' | ||
| + | </ | ||