HOME

H8S秋月ジャンク基板(その1)の時計プログラムの実行方法  2008.2.27

0.基板の準備

 液晶基板(CN3)とCPU基板(CN5)を30ピンのコネクタで繋いでおきます。フラットケーブルを使用しましたが、基板コネクタのオスメスのコネクタ同士でもよいようです。30ピンコネクタは1番ピン同士を合わせてつなぎます。 CPU基板の電源は9Vを使用しました。センター+です。 基板のDSUB9ピンとPCをクロスケーブルでつなぎます。クロスはDSUBコネクタピンの2−3、3−2、5−5の3線式で十分です。

 バックアップ電池(CR2032)の交換をおこなうとRTCとRAMの内容を保存してくれます。是非交換してください。私は秋月のCR2032電池ホルダーとCR2032を購入しました。

      モニタプログラム → FlashROM  一度書き込むと消えません。

      時計プログラム  → RAM  バックアップ電池によって保持されます。

      RTC動作   バックアップ電池によりRTC動作し続けます。RTC補正値も保持されます。

      バックアップ電池を入れたら電池をショートさせないでください。壊れます。

1.yamasanのサイトからH8ライターソフトをもらってきます

 H8ライター(書き込み制御プログラム含)H8W_036d.zip (222 KB)をダウンロード。解凍してインストールしてください。

2.秋月H8Sジャンク用の書き込み制御プログラムの用意

 HIさんのサイトの1行目Write control program for H8S/2144A junk(1) run@20MHz リンクから2144A_F20M_P384.MOTというファイルをダウンロードしH8ライターのCTRL_MOTディレクトリにコピーします。

3.FLashROMに書き込む簡易モニタのファイルをダウンロード

 上記サイトのこちらのページの1行目Simple monitor for H8S/2144 run@20MHzのリンクからmon2144.motという簡易モニタファイルをダウンロードしH8ライターの近くのディレクトリにコピーします。わかりやすいところに置いてください。

4.H8ライターを実行してmon2144.motを書き込んできださい

 上記サイトのこちらのページにある [秋月H8Sジャンク(その1)への書き込み方法] を読んでください。

5.時計プログラムのファイルをダウンロード

 上記サイトのこちらのページの下の方にあるSRAM上実行の時計プログラムのリンクからjunk071227_ram.motというファイルをダウンロードしH8ライターの近くのディレクトリにコピーします。わかりやすいところに置いてください。

6.H8ライターを終了しておき、TeraTermProを起動します

 TeraTermのSerialポート設定 38400,8N1

7.DS1スイッチをOFFにしてから、ジャンク基板を起動させます

 TeraTermProにモニタの画面が現れます。TeraTermProで ld リターンとします。

 TeraTermのメニューからFile−SendFileをしてから、junk071227_ram.motを選択してRAMへダウンロードします。オプションのbinaryはチェックしません。実行するとTeraTermPro画面には2222・・・・と現れ転送しています。しばらく待ちます。

8.時計プログラムの実行 up

 TeraTermProの画面から go 200000 (Enter)

なお、バックアップ電池を交換しているならACアダプタを抜いてからもう一度挿してgo 200000 (Enter)とやるとRAMへの時計プログラムのダウンロード無しに時計プログラムを実行します。

以下の方法で、毎回go 200000 (Enter)が必要なくなります。

    【 通りすがりさんからの情報 】 どうもありがとう!

   > 簡易モニタのページにも書いてありますが
   > バックアップが利くようになるとモニタで
   > コマンドを投入しなくともフラットケーブル
   > コネクタCN3のpin7-8をショートして起動すると
   > 自動で0x200000から実行されるようです

9.RTCの日時あわせ

時計プログラムを実行している状態にしてください。

 2008年、2月16日12時35分25秒の場合

 TeraTermPro画面から t 0802161235.25 (Enter)とします。

10.RTCの進み遅れ補正 new

 時計プログラムを実行している状態にしてください。

 TeraTermPro画面から a (Enter)とします。現在の補正値が表示されます。

 一旦補正値を00にします。00にするにはa 00 (Enter)とします。

注意) 補正値を書き込んでから9.RTCの日時あわせを実行することで補正値が有効になります。

 これで10〜24時間くらい様子をみて、補正値の修正をします。

 【 Simさんからの情報で補正値をセットした後で時間をセットしなければならないのでしょうか、という書き込みが掲示板にありました。どうやらそのようです。どうもありがとう! 】 

 以下は私のものの補正値の計算例です。

    8時間で3秒進んだので3秒遅らせる補正値を計算してみました。
    補正は20秒毎におきるので、20秒で何秒進んだかを計算します。
    3600×8/20=3/t
    t=20.8333×10
-3  (単位 秒/20秒)
    クロック数にします。水晶は1秒に32768クロックなので
    32768×t=68.27  (単位 クロック/20秒)
    データシートの補正値の計算方法にしたがうと
    補正値=(68.27+1)/2
    =34.63
    約35=23Hex
    32768+35 クロック/20秒となり、これで20秒毎にt秒余分に発生することで遅れます。

 TeraTerm画面にてa 23(Enter)としてから、9.RTCの日時あわせを実行することで補正値が有効になります。

 そして逆に8時間で3秒進ませる場合は、−35(10進)をHEXにして、最上位ビットを0にします。最上位ビットは符号ではなく、水晶選択ビットで32.768KHzなので必ず0を設定します。つまり、DDHexの最上位ビットを0にして5DHexとします。TeraTerm画面にてa 5D(Enter)としてから、9.RTCの日時あわせを実行することで補正値が有効になります。

  設定できる範囲は−62〜+63までの値になります。(−64(10進)と−63(10進)はカウント値が変化しない条件のため除外されるはずです)

----------------------------------------------------------

 RTC(RS5C372A)データシートによる補正値の計算方法

 レジスタ値のF6が0のときは、((F5,F4,F3,F2,F1,F0) -1 ) x 2 だけカウント値が増加します。F6(bit6)が1のときは、((F5,F4,F3,F2,F1,F0) +1 ) x 2 だけカウント値が減少します。(F6,F5,F4,F3,F2,F1,F0) = ( *, 0, 0, 0, 0, 0, *)の時カウント値は変化しません。

注)Fnのnはビットです。F6はbit6です。

----------------------------------------------------------

計算方法が違っていたらご連絡ください。

 

inserted by FC2 system