差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

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