PIC16F182xは周波数カウンタには不向き!?
2016-02-11
結局、先週引いた風邪がぶり返した格好になり、しつこい咳と闘ってます。昨夕はこんな体調の中でも接待をこなしたんですが、夜中に襲ってくる咳の発作で何度も起きてしまい寝不足気味・・・それでも、T1CKI で躓いた周波数カウンタの実験を進めるべく、「AN592」に倣ってTimer0のプリスケを使ったソフトを作りました。
そんなに複雑なロジックではないんでチャッチャとデバッグし、回路を組み替えていざ実験へ。採用したのはPIC16F1829です。

T0CKI (17番ピン)の隣のポート(16番ピン)をゲートコントロールにし、470Ωの抵抗でフィードしたのはAN592の通り。いざ、周波数を測定すると・・・これが何とT1CKI の時と同様、またしても凡そ6.5MHz以下の周波数しかまともに測定できません
この上限周波数は、いわゆるサンプリングを行う際の「ナイキスト周波数」(サンプリング周波数の半分)だと思われます。
つまるところ、T1CKI の非同期動作が上手くなかったのと同様に、Timer0 のプリスケーラを使う場合でも結果的にPIC の内部クロックに引っ張られて動くという結論に・・・納得はいきませんが、「論より証拠」を突きつけられた格好になりました
PICを使った周波数カウンタ製作の記事や海外の関連フォーラムを読むにつけ、どうやらこれら拡張ミッドレンジ以降の8ビットPICでの製作事例がない、或いは「本当の上限周波数は一体どれくらいなんだ」などと問いかけている投稿があり、素直に少し古めのもの(PIC16F6xx など)で作るのが良さそうです。
いわゆる「アップワード・コンパチ」を信じ、データシートの後半にある電気的特性の部分に斜めに印字してある「PRELIMINARY」を無視して考えていましたが、まさかこんなに深いダンジョンに迷い込むとは思ってもいませんでした
こうなったらやけくそ・・・手持ちの28ピン「PIC16F1938」でも試してみようかな
追記 2016.02.11 早速、PIC16F1938でお試し・・・やはり同じ結果・・・と思ったら、ちゃんと動いている模様。もう少し追求します。
そんなに複雑なロジックではないんでチャッチャとデバッグし、回路を組み替えていざ実験へ。採用したのはPIC16F1829です。

T0CKI (17番ピン)の隣のポート(16番ピン)をゲートコントロールにし、470Ωの抵抗でフィードしたのはAN592の通り。いざ、周波数を測定すると・・・これが何とT1CKI の時と同様、またしても凡そ6.5MHz以下の周波数しかまともに測定できません

つまるところ、T1CKI の非同期動作が上手くなかったのと同様に、Timer0 のプリスケーラを使う場合でも結果的にPIC の内部クロックに引っ張られて動くという結論に・・・納得はいきませんが、「論より証拠」を突きつけられた格好になりました

PICを使った周波数カウンタ製作の記事や海外の関連フォーラムを読むにつけ、どうやらこれら拡張ミッドレンジ以降の8ビットPICでの製作事例がない、或いは「本当の上限周波数は一体どれくらいなんだ」などと問いかけている投稿があり、素直に少し古めのもの(PIC16F6xx など)で作るのが良さそうです。
いわゆる「アップワード・コンパチ」を信じ、データシートの後半にある電気的特性の部分に斜めに印字してある「PRELIMINARY」を無視して考えていましたが、まさかこんなに深いダンジョンに迷い込むとは思ってもいませんでした


追記 2016.02.11 早速、PIC16F1938でお試し・・・やはり同じ結果・・・と思ったら、ちゃんと動いている模様。もう少し追求します。
- 関連記事
-
- 高速カウンタに翻弄された一日
- PIC16F182xの濡れ衣晴らし・・・
- PIC16F182xは周波数カウンタには不向き!?
- 糠喜びだったかも・・・T1CKI の動作周波数
- T1CKI もそこそこ使えそう・・・