エントリー

2016年03月17日の記事は以下のとおりです。

Si5351Aを応用する その1 スクロールクロック編

  • 2016/03/17 09:43
  • カテゴリー:make:

 さて,作ったからには,使わないといけないというのが私の工作のポリシーでして,Si5351にATtiny13Aで散々検討したわけですから,なにか面白そうな応用を考えてみましょう。

 まずは,バカバカしい応用例として,あの「スクロールクロックの源発振」への応用を試して見ましょう。

 我らが秋月電子に古くからある時計キットの1つに,スクロールクロックという物があります。シャープ製の10x10ドットマトリクスLEDが特価で入ってきた時に,ほぼ同時に発売されたキットだったと記憶していますが,我々はそんな古いキット(しかもPICですよ)が未だに売られているという現実を、ベストセラーと解釈するか,あるいは不人気と理解すべきか,大いに悩むところです。

 不人気の可能性に言及したには訳があって,このキット,確かに面白いのですが,作った瞬間からとにかくがっかりなキットなのです。

 まず,精度が全然出ません。トリマコンデンサでクロックを微調整出来ますし,機能の1つとして進みと遅れを0.08秒/日単位で調整することも出来るのですが,まあとにかく全然追い込めません。結果を見るのに24時間かかると言うも途方に暮れますし,そうこうしているうちにクロックそのものがずれたりしてしまうので,もう暗闇を手探りで歩くようなものです。

 根気よく頑張って,結局調整範囲を超えてしまうことがわかると,もう一気にやる気がなくなります。こういうキットこそ,無調整でばちっと精度が出るように作らないといけないと思い知りました。

 その上,10x10ドットという中途半端なドット数による文字の読みにくさ,10ドットしかないところでスクロールされても一度の表示される情報が少なすぎて,なんだかよく分からない表示になる,LEDチップが小さく,しかも隣と間隔が開いているので少し離れてみないと読めない,でも離れてしまうと小さくて読めないという,結局読めないづくしの時計なのです。

 ラーメンタイマになるのがオチだという書き込みも2chにあったりしたほどですが,1日で数十秒もずれるラーメンタイマでは,ラーメンすら美味しく作れません。

 ある日私は,「それなら周波数カウンタで正確に合わせてみよう」と思い立ちました。プローブの容量で周波数が変わってしまうのを避けるため,わざわざ発振回路を作り,バッファを噛ませてから測定を行い,狙った周波数に合わせます。

 ・・・はて?合わせる?どの周波数に?

 取説を読むと,4.194340MHzとあります。でも,これでは分周しても正確な1秒を作れません。4.194304MHzの間違いじゃないのか?

 付属していた水晶発振子を見れば,4.19としかマーキングされていません。なんじゃそりゃ。これ,最初から精度なんてどうでもいいと思ってるでしょ。

 ところがこの水晶を使って,4.194304MHzには出来ませんでした。4.194349MHzにもうまく合わせる事が出来ず,この水晶はあきらめました。

 手持ちを探すと,自動車のECUに使われていたフィリップス謹製の4.194304MHzが出てきました。おお,これはすごい。これで発振回路を組んで,ばちっと4.194304MHzに合わせます。これで楽勝だと思って数時間後,派手にずれているではありませんか。

 ここで私は力尽きて,スクロールクロックはジャンク箱に放り込まれることとなりました。

 今回は,これを復活させようというわけです。そもそも,前回までの検討では,クロックの周波数の理論値が分からない上に,発振周波数も小数点2桁までしか記載がなく,温度特性も含んだ精度だっていい加減です。時計が狂うのは,何が原因か分からないじゃありませんか。

 そこでTCXOにSi5351Aです。これなら実力で1ppm以内の精度を作り出せます。

 まずは,取説のとおり,4.194340MHzを作ります。これで試してみると,24時間で7~8秒程度のズレが出てきました。ということは,4.194340MHzが理論値ではないということになります。

 なら,取説の誤記と考えて,カウンタを22段使えば1秒が作れる4.194304MHzにしてみましょう。それでも,3時間で数秒のズレがしまいました。どうやら,これも違うようです。

 なら,なにが正解なのか。ソースもありませんので,推測するしかありません。そもそも,このクロックをどんな風に使って1秒を作っているのかさえも解りません。空ループをまわして作っているんだとしたら,ちょっと心許ないです。

 ざっと計算すると,4.194340MHzの時,86400秒(24時間)で7秒ずれたわけですから,これがぴったり86400秒になるような周波数は,切りのいいところで4.194MHzです。

 この時計の設計者は,どうせ精度など追い込んでも仕方がないし,水晶発振子も4.19MHzまでしか書いていないようなものだから,とりあえす4.194MHzで作っとけ,あとは調整頑張れ,という軽いノリで作ったんじゃないかと思います。

 かくして,Si5351Aに4.194000MHzを設定。ちゃんとこの周波数が出ていることを確認して,スクロールクロックの電源を投入。

 24時間経過後,1秒ほどずれていました・・・こんなことをやっていたら切りがありません。24時間で1/100秒に追い込んでも,3ヶ月もすれば1秒ずれるわけです。しかも,それがわかるのは3ヶ月も先です。(これはこれで立派な精度なんですが)

 そもそも,こういうことが面倒だから,理論値をびしっと生成出来るSi5351Aがありがたいのですから,こんなやり方ではどうにもなりません。

 かなり投げやりな気持ちで4.19394MHzという適当な値を設定し,24時間経過後にすると0.8秒くらい遅れた感じです。

 もう面倒になったので,時計の機能として備わっている補正機能を使います。0.08秒ステップで調整出来るという事ですので,初期値60に対し,63だとちょっと進みます。62でちょっと遅れる感じです。

 そこで今は,4.19396MHzにして様子を見ています。長い目で見ていくしかなさそうですね。


 次に行った応用は,今回の本命,周波数カウンタのタイムベースなのですが,これは長くなるので次に。

ページ移動

  • 前のページ
  • 次のページ
  • ページ
  • 1

ユーティリティ

2016年03月

- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

新着エントリー

過去ログ

Feed