多機能時計を改造してみました

Access Count =

更新履歴
01/10/06  RS232C接続の受信精度を改善しました
01/03/25  RS232C接続で時刻校正してみました
01/03/04  オシロで秒タイミング測定
01/02/15  12時間表示板UpLoad
01/02/12  ケースに入れました。
01/02/05  HEXファイルのBugFix
01/02/04  初版公開

トライステートさんの「電波時計キット」買ってみました。
実験するには大変おもしろいキットだと思いました。
でも、実用とするには、ちと表示が小さくて
ぢぢいには見にくい。(;_;)

で、同じ秋月さんで売っている「多機能時計」と繋いでみました。
トライステートさんのホームページで紹介されているのは、
¥1,900の多機能時計ですが、
私が試したのは、大型LEDの¥3,200のタイプです。

電波時計と多機能時計の接続は、トライステートさんが
ホームページで紹介するほんの数日前に、
実は、私のところでは稼動していたのでした。(^_^;)
偶然にも、電波時計の「D」端子で夜中にリセットする方法や、
秋月さんのキットを表示器に選ぶところなど
発想がよく似ていて、なぜか気まずいような、恥ずかしいような・・。(^_^;)

接続の方法は少し違っていました。
私はフォトカプラは使用せず、直接電波時計の「D」端子と
多機能時計のリセット端子(PIC16C57の28Pin)を繋ぎました。
2週間以上稼動してますが、私の環境では
直接接続による問題は、特にでていないようです。
01/02/05更新
トライステートさんより、アドバイスいただきました。
「当初、電波時計と表示を離すイメージでしたのでフォトカプラを使用しました。
近くでしたら、問題無いと思います。」
とのコメントを頂きました。m(__)m


で、実際に繋いで動かしてみると・・・・
ん゙〜、なんとなく、違和感を感じる。

・まず第一に、秒点滅のLEDが、電波時計と多機能時計とでズレている。
 夜中のリセット直後でも、0.5秒タイミングが・・・。
・次に、これは個人の好みの問題でもあるんですが、
 多機能時計をリセットしちゃうと、表示が12時間モードになってしまうこと。
 私は24時間モードが好きなんです。
・そして3つ目の問題が、時刻の誤差。
 一日に一度、夜中にリセットして時刻を合わせるので、
 夕方頃には、3〜5秒ほどズレが生じてくる。
 (ちなみに、多機能時計のトリマコンデンサは全く調整してない状態です。)

そこで一発奮起。多機能時計を少しだけ改造してみることにしました。
一番目の問題「LED点滅タイミング」と、
2番目の「24時間表示モード」は、
PICマイコンのROMの書き換えだけで、なんとかクリアしました。
ソースがないので、HEXファイルを逆アセンブルして解析。
かなり大変な作業でしたが・・・・(;_;)

3番目の時刻のズレは、毎正分での秒リセットを追加することにしました。
少しだけ、ハード面も改造します。
と言っても、プルアップ抵抗1つと接続ケーブルが1本増えるだけです。
電波時計と多機能時計の間は、合計3本のケーブルで接続することになります。
回路図は、以下の通り。



多機能時計は、21個のI/Oピン全てを使っているようです。
仕方なく、1個だけI/Oピンを奪い取ることにしました。
私は、タイマー出力(PIC16C57 Pin14 RB4)に涙をのんでもらい、
このピンを入力設定にして、毎正分で秒リセットすることにしました。
プルアップ抵抗は、別途用意してもいいと思いますが、
4個のタクトスイッチ入力をプルアップしている8連の集合抵抗RA1が
遊んでますので、14番ピンをRA1の空きピンに繋いじゃうと手っ取り早いです。
下の写真で茶色っぽく見えるジャンパ線で、14番ピンをプルアップしています。



多機能時計のPICプログラムは、幸いにも「秒設定で00秒にアジャスト」する
機能があるようです。
Pin14 RB4がLowレベルに落ちた時に、この「00秒にアジャストルーチン」
にジャンプするよう、プログラムを書き換えました。

実験中の様子です。


うまく動いているようです。
毎正分での秒リセットが1日に1440回、
毎正日でのマイコンリセットが1日一回。
目視で判別する限り、誤差は1日中いつでも100ms以下に感じられます。
(00:00:00〜00:01:00の1分間だけは、クロック立下り時のリセットの為か
少しだけ誤差が増えているようでした。)
もし停電などでダウンしても、最低でも24時間後には、正確な時刻になります。

01/03/04追記
2現象オシロを入手しましたので、秒LEDの点滅タイミングを測定してみました。


上側が電波時計の毎正秒LED
下側が多機能時計の秒点滅LEDです。
点灯のタイミングは90msほどズレていました。
当然?多機能時計側がタイミングが遅れるだろうと予想していたんですが、
結果は意外にも、多機能時計のほうが点灯のタイミングが早い。(?_?)
目視なんか、アテになりませんね。(^^ゞ


とりあえず、改造後のHEXファイルを↓に置いときます。
24時間表示版 ClkMod01.hex Update at 01/02/05 10KB

01/02/15追記
12時間表示版のリクエストがありましたので、アップしときます。
12時間表示版 ClkMod21.hex Update at 01/02/15 10KB


注1 まだ試行中ですので、若干のバグがあります るかもしれません。
   時間設定→秒設定の時の表示がおかしいです。
   0.5秒の点滅タイミング変更のあたりが、バグっているみたいです。
   (手動で秒設定する必要もないんですけどね。)
   01/02/05更新
   BugFixしました。ジャンプ先ラベルが間違ってました。(^^ゞ
注2 タイマー出力は使えなくなります。
   ソフト上のタイマカウント機能はそのまま生きていますが、
   タイマ0でもPin14はHiになりません。
注3 もし、このHEXファイルを書き込んで実験するなら、
   PIC16C57は、窓付きの-JW品をお奨めします。
   まだバグってますし、 るかもしれませんし、-JW品なら何度も書き換えできますので。

   左からキット付属のオリジナル、\250のワンタイム品、\2,500の-JW品です。

注4 これが最大の問題かも?
   ソース未公開のオブジェクトを、逆アセンブル(リバースエンジニア?)してます。
   著作権侵害とか心配です。
   秋月の関係者の方、法律に詳しい方の助言をお待ちしております。
   もし問題があるようなら、公開は取り止めます。
   問題なければ、改造後のソース公開も考えています。
   (逆アセンブルベースなので汚いですが)
   まぁ、書き込みプロテクトされてないし、
   多機能時計のマニュアルにも「プログラムが開発できれば機能を変えたり、
   追加することも不可能ではありません」とありますので、
   楽観視はしているのですが・・。


P.S.
 私は、¥3,200の多機能時計で試しました。
 ¥1,900のは持ってません。
 が、両者を回路図で比較する限り、7セグLEDをドライブする電圧が違う程度で、
 その他は、全く同一のようです。
 なので、この改造HEXファイルを¥1,900の多機能時計に書き込んでも、
 たぶんそのまま動くんじゃないかな?と思っております。
 どなたか、自己責任で御試し頂けたら有難いです。(^_^)v
01/03/04追記
 Junさんより動作報告頂きました。m(__)m
 ¥3,200の多機能時計と¥1,900の多機能時計とは、
 マイコンに相互互換性があったそうです。


01/02/12追記
   安定して動いているようなので、荒れた基板上を整理して
   ケースに入れてみました。




電波時計は受信状況の良い場所に、多機能時計は見やすい場所にそれぞれ設置し、
両者を2m50cmのケーブルで接続しました。
実用になりそうです。(^_^)v

01/03/25追記
多機能時計にもっとこだわりたい方はこちらへ(^_^)v

以上

御意見・御問合せはmarchan@sunfield.ne.jpまでどうぞ。(^_^)v