PIC16F683で作る電池駆動周波数カウンタ      nobcha(C)2011       

                                                                            

  ニッケル水素充電池(単三2本)で動作するLCD表示簡易式周波数カウンタの試作です。内部クロックを使用するので、精度安定度はイマイチですが、単三型ニッケル水素充電池2本で長時間動かすことができます。最大周波数は2MHz程度で、感度は0.2Vp−pぐらいです。局発オフセット計算など応用については追って応用実験したいと思います。

※1追加実験  もう少し周波数応答を上げたいと思い、プリスケーラ値読出しテクニックを使って実験をやりました。2MHz程度までしか行かなかったのは前段アンプの周波数特性が悪いことも影響しておりました。項番7に説明追加しました。10MHzぐらいまで改善しました。でも内部クロックの安定度はイマイチです。

 

項番 項目 説明
 1 供給電源 ニッケル水素単三型を2本使用
 2 回路図

※1 プリスケーラ読出し方式に変更しました。項番7の方に書いてあります。

 

PIC12F683は8ピンですので、LCD接続用信号線が足りません。その対策として、TC4040Bカウンタをシフトレジスタの様に機能させ2本の信号で接続します。この制御法はTIPSの方に詳しく説明しています。

また、ニッケル水素充電池2本、およそ2.6VではLCDのコントラストが取れません。そのためLCD表示に必要な負電圧をPICのシステムクロックからチャージポンプ方式(倍圧整流)で作り出しLCDのVo端子へ印加します。

プリアンプは低い電圧でも動くTRを使います。

 

 3 部品材料

 

@基板 片面エポキシ紙ユニバーサル基板5.5cmx3cm切り出し配線を行います。今回はケース入れは実施しません。
A電子部品

LCDは14ピンヘッダコネクタでスタックします

CPU PIC16F683
LCD SL1602B相当(16文字*2行)
バイナリーカウンタ TC4040B
トランジスター 2SC2458
ダイオード 1S1588x2
半固定ボリューム 5kΩ
抵抗類 470Ω、10kΩ×2、100kΩ*1  1/8W
コンデンサー類 10μF16Vアルミ電解×2個、0.1μF×2、0.047μF×1個、0.01μFx1
ICソケット、端子台 16Px1、8Px1,2P端子台x1
バッテリーケース 単三2本用
配線材 少々
 4 回路実装

※1 プリスケーラ読出し方式に変更しました。項番7の方に新回路図を書いてあります。ジャンパ一本(#2−#5)増えます。

PasSを使ってユニバーサル基板への部品実装図を描きました。裏面錫めっき線で配線します。できない部分は適宜ジャンパ用テフロン線で裏面、部品面に配線しました。

 

 

 5 プログラム

※1 プリスケーラ読出しに改良しました。項番7の方を参考にしてください。

プログラムはHITECH社Cを使いました。V9.82です。コンパイル・デバッグはMPLAB V8.73です。このバージョンから予約語表記が変わっておりますので、ご注意ください。

MAIN関数:今まで各種PICマイコンで実験してきた簡易カウンタ関数を利用します。TMR1でシステムクロックを計数し、ゲート時間を作ります。TMR0で周波数を計数します。T0CKIポートを出力モードに切り替えて入力ゲートを締めます。

LCD表示用関数:TC4040Bをシストレジスタとして使うLCD接続制御も以前から作ってきたものを使います。

LCD表示用関数ヘッダ:上記関数のヘッダファイルです。

タイミング取り用にdelay.hヘッダファイルが必要です。

PICライターですぐに書き込めるHEXファイルも用意しました。

 6 出来上がりデバッグ □組み立て後の配線確認をします。PICマイコン、TC4040Bはソケットに入れないで、LCDコネクタもつながないで電源をつなぎ、電流が数十マイクロA(バッテリー約2.65Vで20〜30マイクロA)であることを確認します。

□次にピン#1の方向に注意して、PICだけを入れます。電流は約60マイクロAぐらいです。

□更にピン#1の方向に注意してTC4040Bを入れます。ほとんど(数マイクロA以下)増えません。

□ここまでで電流値が少ないとか、あるいは多いときは定数間違いや配線間違いなどがあるかも知れません。お手数ですが、回路図と照合してみてください・・・。

□最後にLCDをつなぎ確認します。電流は1.1〜1.2mAまで増えます。数百mSの待ち時間後に表示が現れます。

※LCDは指定立ち上げシーケンスを行わないと、画面表示がでません。まずTC4040BのクロックがPICから入ってきているか、TC4040Bのリセットが掛かったままになっていないかなどを確認します。また、TC4040Bの出力端子を見てカウントアップ動作しているかどうか確認すると、PICが正しくTC4040Bを制御しているかの判定になります。

□LCD表示が出れば、後のデバッグは追いかけやすいと思います。

□手持ちDSO QUADに信号発生機能があるので、その出力を利用して周波数カウントさせてみました。

※ワタシは入力信号をSMBコネクタで受けることにしました。部品表には載せていません。SMBのメスであると手持ちのDSO QUADのデジタル接続ハーネスが流用できます。ただし、コネクタがフランジ取り付け型では無く、コネクタをケースへ固定できないのが欠点です。

 7  

※1 追加実験

 

 カウント周波数をもう少し上げてみようかと追加実験しました。

1.マイクロチップ社のアプリケーションノートAN592を参考にしてプリスケーラ値を読み出します。

2.前段アンプのトランジスターを周波数特性の良い2SC3356に変えます。

3.内部クロックを8MHzにします。

 プログラムが変更になります。変わったのはMAIN部とLCD表示制御部です。

  追試される方のためにHEXファイルを用意しました。

 アンプの周波数特性をLTSPICEで比較してみました。2SC2458はオーディオ用なので特性悪くて当たり前かもしれません。SPICE MODELは手持ちの同一チップ品(2SC2458->2SC1815 、2SC3356->2SC3357)のものを使いました。

 

 8 謝辞

※1

電子回路試作でブログ、ホームページに各社発表されている方の情報を参考にしました。感謝します。また次のフリーソフトを利用させていただきました。開発された方、普及に協力されている方、提供会社、テンプレートを提供されている方に感謝します。

回路図ソフト 水魚堂の回路図エディタ  http://www.suigyodo.com/online/schsoft.htm

ユニバーサル基板配線CADのPasSを利用しました  http://www.geocities.jp/uaubn/pass/

マイクロチップ社の開発システム及び言語プログラム  http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2879

リニアテクノロジーズ社LTSPICE http://www.linear-tech.co.jp/designtools/software/

                                                                                2011.09.07初 2011.11.22追加

 9 ご注意 掲載したページの内容(文章、画像)には著作権があります。丸のままコピーすることは認められません。また実験の内容はnobchaが趣味で行っているものですので、再現性や安全性について保証しかねます。実験追試される場合はご自身の判断で行ってください。  

実用工作の目次    全体目次 

アイコンは「牛飼いとアイコンの部屋」から提供を受けました http://www.ushikai.com/

inserted by FC2 system