« HC08マイコンの使い方QY4A編 -《93》 タイマ・インターフェース・モジュール(1) | メイン | HC08マイコンの使い方QY4A編 -《94》 タイマ・インターフェース・モジュール(2) »

マイコンと電子工作 No.2記事「1時間タイマを作る」の追加説明です


 「マイコンと電子工作」誌No.2(2010/9/25発売)に掲載された『ラーメン・タイマより長い「1時間タイマ」を作る』の追加説明です。
 この1時間タイマはPIC12F635を使用し、あらかじめ設定した時間のパルス幅信号を出力し、終了すると連続パルスを出力するものです。記事では設定時間データ(1時間)をマイコンへのプログラム書き込みと共にEEPOMメモリに書き込むようになっています。
 プログラム書き込み済みのEEPROMメモリ内の設定時間データは、手動でも書き換えることができます。以下の説明に示す、回路を作れば手動で、つまりパソコンを使わずに設定時間を変更/設定することができます。

 

手動でデータ設定するために

時間を書き込むデータ設定とその確認を行う回路
 手動でタイマ動作時間設定および簡単な動作確認行う回路図を次に示します。

PX01kairo2_Wr.jpg

 回路にはあらかじめプログラムのみが書き込まれたマイコンを取り付けます。
 時間設定用のアドレス指定用DIPスイッチは、内部プルダウンされた下記の端子に接続します。
  7番ピンのGP0(addr0)端子はEEPROMアドレスの0ビットでDIPの1へ
  6番ピンのGP1(addr1)端子はEEPROMアドレスの1ビットでDIPの2へ
  5番ピンのGP2(addr2)端子はEEPROMアドレスの2ビットでDIPの3と、さらに
 動作確認用に開始押しボタン・スイッチ(Start)を取りつけます。

 4番ピンのGP3(CountUP)端子はプルアップ抵抗器を接続し、押しボタン・スイッチを接続します。
  書き込み時はLowでカウント・アップ用に使います。

 次のピンは出力端子で、インジケータ用に抵抗器とLEDを接続します。
  3番ピンのGP4(OUTP)端子はデータの表示パルス用(LED2)
  2番ピンのGP5(OUTN)端子は通常動作時の終了パルス確認用(LED1)


 ブレッドボードに作った写真を下記に示します。これでタイマ動作時間の設定および簡単な動作確認行うことができます。

px02IMG_0726.jpg CountUP端子の押しボタン・スイッチは操作性を良くするように大きめのを使っています。また、このボードはPICkit-2/3使ってマイコンに直接書き込めるようと、回路図にない配線を追加しています。写真内の部品のほかに、5Vの電源が必要です。


データ設定モードにするには
 書き込まれたマイコンのプログラムはGP3(CountUP/Normail)端子をプルアップで通常動作するモードと、時間データを書き込むデータ設定モードがあります。
 データ設定モードにするにはaddr0~addr2端子(DIP1~3)すべてをON(High)にし、CountUP端子の押しボタンを押しながら(Low)電源ONを入れて、マイコンを起動します。
 データ設定モードに入ったらaddr0~addr2端子(DIP1~3)で書き込みするEEPROMメモリのアドレスを指定します。CountUP端子押しボタンをON(Low)にするごとに指定したアドレスのメモリ内容(値)を一つアップします。書きこまれた内容(値)はLEDの点滅で数字を表現します。
 これらのデータ設定モードの操作手順は後述します。

書き込むメモリアドレスと時間データ
 時間データを書き込むEEPROMメモリ・アドレスは、addr0~addr2端子で指定します。DIP1~DIP3はaddr0~addr2端子の状態ON=1を示しメモリのアドレスを指定します。メモリ内の時間データは各メモリにそれぞれ0~9または5の1桁数字に分かれて設定します。
 マイコンにプログラムが書き込まれた状態の初期値は16進数FFになっています。

  DIP3  DIP2  DIP1 EEPROMメモリ   設定内容と範囲
 ---------+---------+---------+--------------+----------------
  OFF  OFF  OFF  メモリ0番地 :10時間単位の値 16進数00~09
  OFF  OFF   ON  メモリ1番地 :1時間単位の値 16進数00~09
  OFF   ON  OFF  メモリ2番地 :10分単位の値 16進数00~05
  OFF   ON   ON  メモリ3番地 :1分単位の値 16進数00~09
   ON  OFF  OFF  メモリ4番地 :10秒単位の値 16進数 00~05
   ON  OFF   ON  メモリ5番地 :1秒単位の値 16進数 00~09
   ON   ON  OFF  メモリ6番地 :終了単発パルス幅 16進数00~09
   ON   ON   ON  メモリ7番地 :手動で設定できますが何も使用しません


 6番地は終了時単発パルス出力指定した時のパルス幅を指定するものです。今回は関係ありませんが、次の式により20ms~200msに設定できます。
   単発パルス幅= 20ms x (N+1)
 未設定の値0xFFはパルスなしとなります。最後の「参考」も参照ください。


数字の表現について
 メモリ内容はGP4(OUTP)端子にてパルス信号で表示します。パルス信号での数字表現は接続されたLED2の点滅にて表示します。点滅はモールス・コードの数字と同じようになっており、どの数字も短く点灯か長く点灯かの計5回の組み合わせです。

 数字と点灯については下表でのとおりです。
 例えば、数字の1は短く点灯1回、長く点灯4回です。

 1 短長長長長  6 長短短短短
 2 短短長長長  7 長長短短短
 3 短短短長長  8 長長長短短
 4 短短短短長  9 長長長長短
 5 短短短短短  0 長長長長長  

 

手動でのデータ設定書き込み操作方法

書き込み手順
 タイマ動作の終了一致する時間(設定時間)は0番地から5番地までをそれぞれ1ケタ指定します。6番地の値Nは今回0を指定しておきます。
 データ設定手順は次のように行います。

1)DIP1,2,3すべてをONにして、さらにCountUPスイッチを押したまま電源を入れる。
2)LED2が点灯したらCountUPスイッチを離す(データ設定モードになる)。
3)すると、いったんLED2が消灯後、長く1回、短く1回、長く1回の点滅が起きるのを待つ(モールスの”K")
4)EEPROMに書き込むメモリ番地として0番地とするためにDIP1、2,3スイッチをすべてOFFにする。
5)指定したメモリの内容がカウント・アップするようにCountUPスイッチを押す。
6)カウント・アップした内容はLED2にてモールスの点滅で数字が表示される。
7)そのままもう一度CountUPスイッチを押すと、値はさらに+1される。
8)リミットの5または9のときにCountUPスイッチを押すと次は0に戻る。
9)希望の値になったらDIPスイッチを変え、次のEEPROMアドレスに指定変更する。
10)次にCountUPスイッチを押すと、その番地のメモリ内容がカウント・アップすることになる。
11)このように各メモリの内容が希望するタイマ動作時間の数字になるまで繰り返す。
12)0~5番地すべてをDIPスイッチで指定して値を設定する。6番地の値は何もしなくてよい。
13)設定完了したら電源を切り、データ設定モードを終了する。

 参考までに、プログラム書き込んだばかりのEEPROMメモリの内容は0XFF、つまりマイナス1なので、1回押した時はカウントアップして”0”となり、5回長い点滅します。そのまま、もう1度押すとカウント・アップして"1"になりますので、LED2が短く1回、長く4回点滅します。

データ設定書き込み後動作確認手順
 通常は、完成したマイコンを取り外して、ターゲット回路に取りつけ実際に動作確認します。
しかしその前に、希望の時間に設定できたかの仮の動作確認はこのまま書き込み&確認回路で行うことができます。それには次のように通常動作モードにして行います。

1)DIP1(Outn_mode)はタイマ動作終了時、OUTN端子に連続パルスを出力するためにONに設定する。
2)DIP2(Enable)はON、DIP3(Start)は外に別のスイッチがありますのでOFFにする。
3)4番ピンの接続されたスイッチ(CountUPまたはNormalMode)そのままで電源を入れる。
4)これで通常動作モードになりましたので、Startボタンを押してタイマ動作を開始する。
5)タイマ動作が開始するとLED2が点灯する。
6)EEPROMメモリに設定された時間が経過するとタイマ動作が終了しLED2が消灯する。
7)DIP1(Outn_mode)がONなので、連続パルスとしてLED1が薄く点灯する。
8)動作時間が正しいか確認する。正しければ電源を切って終了。
9)再度行う場合はいったん電源を切って行う。

 仮動作確認を完了したらマイコンを取り外し、実際のターゲット基板『ラーメン・タイマより長い「1時間タイマ」』に取り付けて動作チェックしてください。

 

px03IMG_0740.jpg 設定された時間は製造されたマイコンの内蔵発振周波数(誤差±1%)により、個別に若干どちらかに「ずれる」可能性があります。そのときは補正した値を設定時間としてEEPROMに書き込みを行い対応する必要があります。


参考:終了時単発パルス出力指定
 7番ピンGP0端子(DIP1)はOFFにした通常動作モードのとき「終了時単発パルス出力指定」に使います。終了時単発パルス出力指定はタイマ動作終了時に、2番ピンGP5(OUTN)端子にて、メモリ内に指定したパルス幅の単発パルスを出力するものです(現在、仕様確認中)。

後田敏

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/4745





カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1
/*yahoo remove*/