エントリー

カテゴリー「make:」の検索結果は以下のとおりです。

子供用MP3プレイヤーを作る[その1]

  • 2016/08/22 14:31
  • カテゴリー:make:

 少し前の事ですが,5月のこどもの日の頃に,鯉のぼりのイラストが描かれたお菓子の空き缶を手に入れました。

 大きすぎず小さすぎず,手頃な大きさだったので「MP3プレイヤーでも仕込むか」などと話していたのですが,子供が大きくなり,自分で音楽を聴くという事に興味を持ち始めたこともあり,作ってみることにしました。

 対応フォーマットは使うMP3プレイヤーモジュールによって決まりますが,そんなにこだわっても仕方がないので,MP3のCBRに対応していればいいとしましょう。

 出力はモノラルで十分だと思いますが,それなりにしっかりしたいいフルレンジスピーカーを搭載したいです。

 アンプもモノラルでいいわけですが,電池駆動で1Wくらいを出したいと思うので,そうすると自動的にBTLのアンプになると思います。

 操作系ですが,これもモジュール次第になりますけど,出来るだけシンプルにいきたいです。ボタンは再生/停止,送りと戻しの3つで十分ですし,音量調整はアナログのボリュームでグリグリまわすものがいいと思います。

 表示もLEDが1つだけあればそれでいいです。

 電源は乾電池で,単三が4本の6Vでいきましょう。

 このくらいの緩い目標を決めて,部品集めです。

 自作がちょっと大変なMP3プレイヤーは,まだ現在の店舗に移転する前のaitendoに友人と出向いた折,その友人のオススメで安価に買ったものが手元にあります。MP3-SB16という型番のもので,今でも500円くらいで買えるようです。

 正直,今さらMP3というのもなあ,と思いますが,MP3くらいだからこそ,緩い工作が出来るというものです。

 ところでこのモジュール,電源は5V単電源です。またストレージはUSBで繋ぎますので,消費電流がどのくらいになるかはUSBに繋がったメモリ次第ですので,ちょっと見積もりにくいです。

 次に,またまた重要なスピーカーです。大きさが6cmから7cmくらいで,いい音のするフルレンジって案外ないものなんですが,随分昔の「大人の科学マガジン」で手に入れた,7cmのフルレンジスピーカーキットが1つ出てきたので,これを使います。

 スピーカーキットといえば,スピーカーユニットはすでに完成していて,これを入れる箱を作るというのがおきまりだったのですが,この学研のキットはスピーカーユニットを組み立てるキットで,フォステクスが作っていました。

 当時の私は驚いてしまい,思わず2つ買ってしまったことを覚えています。

 1つはキッチンにおいてあるFMラジオの高音質化で使い,もう1つ残っていた物に今回出番が回ってきたというわけです。ホワイトコーンでなかなかいい音がしそうな外観なのですが,接着剤のはみ出しもあり,とっても手作り感あふれるものになっています。

 次,アンプです。BTLでいくと決まっていますが,どんなICを使うか迷うところです。HT82V739は部品点数が圧倒的に少なく,抵抗は全く外付けを使いません。それでいて安く,音質にも定評があります。しかもトラブルがなく,一発動作できます。

 これにしようかなと思って部品箱を眺めていると,NJM2073Dが腐るほど出てきました。ステレオの小型アンプとしては定番で,確かBTL接続も可能だったはず。,もったいないから,これを使ってみましょう。

 ということで,まずはアンプの製作です。いくらモノラル,いくら子供用とはいえ,あまり程度が悪いものは避けたいところです。

 BTLで1W程度を出す回路をデータシートで確認すると,なにやら部品が一杯ついています。もともとNJM2073Dはゲインが高く,負帰還をかけてゲインを下げて使うことも普通に行われています。

 しかし,負帰還をかけることで発振しやすくなり,その対策にあれこれと部品が追加しなくてはいけません。今回はお手軽工作ですので,発振対策やノイズ対策に時間をかける暇はありませんので,データシートの通りに作ります。

 一応完成したのですが,まずサーッというノイズが大きくて,話にならないです。また,MP3再生中は0.5秒おきくらいにボツボツという音が出ていて,とても耳障りです(なおこのボツボツはアンプのせいではありません)。

 また,随分歪みっぽい音がして,聞いていて楽しくありません。1kHzの歪率を測定すると,0.1Wから1Wくらいまで,ほぼ全域で4%を越えています。

 波形を見たいのですが,BTLなのでオシロを繋ぐことが出来ず,方サイドずつ対GNDでみてみたところ,たくさんのノイズが乗っていて,。波形も崩れているのがわかります。

 とりあえず発振は対策で止めましたが,ノイズの多さと歪みの多さは無視できず,これを真面目に検討する時間もないので,NJM2073Dはもうあきらめました。

 そして本命,HT82V739を試してみます。回路は本当に簡単で,設計もなにも,指定通りにコンデンサを2つ繋ぐだけです。そして音を出してみると,これがまたなかなかいい音でなってくれます。測定すると1Wくらいまで0.04%以下の歪み率です。S/Nは70dBほどで,NJM2073に比べると10dBほど良い数値です。それでも70dBですから,ラジオ並みですが・・・

 これでMP3とアンプ,そしてスピーカーは揃いました。あとは電池です。ニッケル水素電池を4本使うと,5.5Vくらいから4.2Vくらいまで出てきます。アンプはどの電圧でも動作しますし,MP3プレイヤーは4.2Vを下回ると動作しなくなりますから,バッテリー直結でもいいだろうと,このまま先に進めます。

 ところが大きな落とし穴です。単三4本を電池ケースにいれてブリキの缶に入れ,スピーカーと取り付けた蓋を被せても,スピーカーが電池にぶつかってしまい蓋が閉まりません。

 単三2本の電池ケースを2つ使ってあれこれと配置を考え,ようやく蓋が閉まるようになりましたが,そうするとボタンもボリュームも置けませんし,そもそも基板を置く場所がありません。

 単四にしても,そんなに状況は変わらないでしょう。そもそも電池ケースが手元にありません。

 詰みました。

 5分ほど考えて,これはもう,電池を減らすしかないという結論に達しました。単三2本に設計変更です。

 電池電圧が1.1Vから1.4Vまで変動するとして,アンプは動作電圧範囲ですから,直結でよさそうです。ただし出力が300mW程度に下がりますので,音量不足が心配です。

 次にMP3プレイヤーですが,これは全然動作しません。そこで昇圧回路を入れる事にします。昇圧型のDC-DCコンバータをブーストコンバータと言いますが,これは部品点数も多く,アマチュアには鬼門であるコイルが不可欠で,しかもコイルの性能と選択で成否がくっきりわかれます。部品屋さんでもコイルはなかなか選べません。

 当然スイッチングレギュレータの1種ということになるので,ノイズも多いし,使いこなしが難しいものですので,市販の電蓄銅製品の大半に入っている割に,電子工作の世界ではあまり目にすることがない不思議な回路でもあります。

 ですが,ここ数年でとても手軽なブーストコンバータ用のICが安価に手に入るようになりました。かなり適当にコイルを選んでもそれなりの効率が得られる優れものです。

 HT7750Aというがそれです。トランジスタと同じ3本足のTO-92に入っており,外にはコイルとショットキーダイオード,コンデンサ2つだけ取り付ければ,もうブーストコンバータの完成です。

 大きな電流は取れませんが,それでも200mAまで引っ張る事が可能で,CMOSであることからIC自身が動作するための電流が小さく,PFMであることから小電流出力時のロスが小さくなっていますので,特に低消費電力機器での使いやすさが売りです。

 私も数年前にこれをいろいろ検討しましたが,効率85%はウソではなく,以前評価したときは入力電圧が3Vから4.5Vまで,ほぼ全域で85%以上の効率をたたき出していました。(出力電流は30mAです)

 90%以上を目指すには,スイッチングのMOS-FETに性能の良いものを使い,かつ回路もな同期整流というものを使う必要があるのですが,価格も上がるし,回路規模も大きくなります。

 ですが,HT7750Aはこの価格でこの使いやすさで85%ですから,アマチュアにはうれしい選択肢です。

 早速作ってみましたが,あっという間に電池2本から5Vが生成できました。MP3プレイヤーに供給し,3Vでスピーカーから音楽を鳴らしてみたのですが,全く問題なしです。

 確かに,最大出力は下がります。しかし,もともとそんなに大きな音を出すようなものではありませんし,3V駆動でも実用上全く問題にはならないと思います。

 さて,次は実装です。

 アンプを作ったときに,少し大きめの基板に作り,余った部分をあとで切り取る予定でした。しかし,これだけスペースがきついと,基板を置く場所もよく考えないといけません。

 そこで,基板を立てて,スピーカーの端子を基板にハンダ付けすることにしました。マグネットを避けるように,基板の両端にアンプとブーストコンバータを配置します。

 さらに,MP3プレイヤー基板をこの基板と直交するようにアルミでアングルを作り,2枚の基板がL字になるように固定します。

 そしてこれをそのままスピーカーの端子にハンダ付けすると,見事にスピーカーの周りに基板が差し込まれたようになります。これで基板の置き場所を新規に確保する必要はなくなりました。

 ここまできたらしめたものです。ボタンを3つ,LEDを1つ,スイッチ付きのボリュームを1つ用意し,蓋に穴を開けてそれぞれ取り付けていきます。ブリキの缶は柔らかく,加工している間に変形したりして大変なのですが,文句を言っても始まりませんので,少し大きめの穴を開けては,接着剤で固定してなんとかしました。

 蓋にスピーカーや基板,スイッチまでも取り付けられたので,電池の交換やファイルの追加などメンテも楽ちんになりました。電池はスポンジに来るんで中に転がしておけばいいでしょうし。

 ということで,長くなったので続きは後日です。

GPSDOで手に入れる高精度クロック[その後]

  • 2016/08/19 15:24
  • カテゴリー:make:

20160819152448.JPG

 

 GPSDOが動き始めて1週間ほど経過したある日,ステータス表示のLCDに表示されている時計が,思いの外便利である事に気が付きました。

 と同時に,見にくいのでごうしても目をこらす必要があり,不満が募ります。

 実は,当初からLCDにバックライトを用意することは考えていました。しかし,AQM1248Aにバックライト付きのものは売られていませんし,あれこれ試すのも面倒だったので,とにかく完成させることを優先しました。

 ですが,一度チャレンジしようとしたことは,目の前の問題が片付くと気になり始めるものです。せっかくここまで頑張って作ったのだし・・・

 いっちょやるか,バックライト。

 ということで,AQM1248Aにバックライトを装備します。

 市販品はありません。手元の材料を使って,切った貼ったすることになります。

 簡単に済ませるには,現在のLCDと基板の間に挟んである3mm厚のゴムシートを取り外し,そこに同じ厚みのバックライトを挟み込むことです。ただし,このゴムシート,LCDの位置決めに使った関係もあり,基板とLCDのそれぞれの面を両面テープでくっつけてあります。

 カッターを差し込んでゴムは取り外せました。ちょうど3mmほどの隙間がLCDの裏側に用意出来ました。

 次にバックライトです。以前,aitendoで特価していたセグメントLCDが壊れてしまったときに,そこに使われていたバックライトユニットの部品を残してありました。

 導光板と呼ばれる透明なアクリルの板の端っこからLEDで光を入れ,面光源にするのがバックライトの役割なのですが,この導光板,単なる透明アクリルのように見えますが,一応光学樹脂ですので透明度は一般の物より高いですし,傷もありません。反射面には白いドットが印刷されていて,サイドライトのLEDの光を,均一に広げるようになっています。

 導光板の端面には丁寧に白い反射シートがぐるっと貼られていて,入ってくる光を無駄なく均一に広げる工夫がなされています。

 そしてLCDと接触する面にはトレーシングペーパーのような拡散シート,反対側の面には真っ白な反射シートが用意されていて,ムラのない,そしてバックライトの色が変化しないように配慮されています。

 実は私,今簡単に「~シート」なんて来ましたが,ここって特許とノウハウの塊になっていて,ただザラザラになっているだけの表面も,顕微鏡で見れば複雑な形状になっていたりしますし,ただ拡散するのではなく指向性を設けて正面方向の輝度を上げたりと,シートそのものが高い機能を持っています。

 シートを挟むと,輝度が上がるんですよ。不思議でしょう?

 20年ほど前は小型の液晶に見られたこれらの工夫は,現在の大画面LCDテレビの高画質化を支えています。

 話がそれてしまいましたが,導光板をLCDの大きさに切り出し,これにあわせてシートも切りそろえて一式揃えます。

 そして,白色のLEDを点灯させて,導光板の横から光を入れます。これをLCDの裏側において,どんな見栄えになるかを確認します。

 ・・・全然光っていません。暗いままです。

 それもそのはず,このLCDの裏側には,反射シートが貼られていて,裏側から照射された光が出てこないのです。

 AQM1248Aは全反射型といいます。外光を100%反射して,LCDを表示させています。これに対し,透過型というLCDもあります。これはLCDの反射シートの代わりに拡散シートを置き,バックライトの光を100%使うものです。バックライトが消えると表示が全く見えません。

 この中間の半透過型というものもあります。バックライトの光も通しつつ,外光も反射するタイプなので,明るいところではバックライトを消して消費電力を低減できるのですが,どちらの見栄えもいまいちで,最近はあまり見なくなりました。

 で,このAQM1248Aにバックライトを装備するなら,現在の反射型から透過型,あるいは半透過型にLCDそのものを改造しなくてはなりません。

 うーん,LCDの裏面の反射シートは,シートと言うよりシールになっていて,剥がしてしまうともう二度と使えません。シートを新しい物にしても,気泡なく綺麗に張ることは至難の業で,果たして剥がして良いものかどうか悩みます。

 そんな風にあれこれといじって考えているうちに,今回はもうやめよう,そのうちAQM1248Aにバックライト搭載タイプがでるだろう,そうなったら交換すればいいよ,とやる気がなくなってしまいました。

 もとに戻そうとLCDをよく見ると,なにから黒い割れ筋が入っています。

 あー,割ってしまった!

 慌てましたが,もう遅い。どうもゴムを外したりあれこれを試行錯誤をしている間に割ってしまったようです。電源をいれてみますが,残念な事に一部しか表示が出てきません。それもそのうち出てこなくなりました。完全に壊してしまいました。

 ううう,1つ450円もするのに。しかも,位置決めと取り付けに手間も時間もかかったのに。

 嘆いていても仕方がありません。とりあえずLCDを外してしまいます。そしてえいやっ,と反射シートを引っ張って剥がします。

 さて,この状態で先のバックライトを重ねてみますと,懸念していたバックライトの模様がLCDの向こうに見えたりすることもなく,案外綺麗に光ることが分かりました。

 この反射シールは剥がしてしまってもよさそうです。

 そこで,新しいAQM1248Aを早速改造します。実はLCD改造の前に,LCDの交換を住ませてしまったのですが,一夜明けて考え直すとバックライトの目処が立ち,もう一度LCDを取り外したのでした。

 反射シートを剥がしたLCDの裏面にノリが残っているのが嫌だったのでアルコールでさっと拭いてみると,しゃーっと細かい傷が入ってしまいました。やわですね。偏光シート。

 バックライトにいい感触を感じたので,このまま基板にハンダ付けして固定です。暫定で通電し,バックライトも点灯させて,綺麗に光ることを確認しました。自分でもうまくいったので驚いているくらいです。

 こうなると,LCDの外周と表示エリアの間に,額縁をおきたくなります。適当な額縁がないかとあれこれ探していると,先日発売になったWiredの最新号の裏表紙の広告が良さそうです。

 うまく外見を切り出し,内側を抜いて,完成です。

 LEDは3mmの砲弾型の頭をニッパーで切り取り,面で接触するようにしました。また,ムラが気になるので,表示エリアよりも随分下の方にLEDをおきました。3.3Vを電源にし,47Ωの抵抗を直列に入れます。およそ10mAくらいで光らせている感じですね。

20160819152546.JPG


 おー,随分見やすくなりました。手間はかかったけど,なかなかいいじゃありませんか。

 そうすると今度は,右隣のメーターにもライトを仕込みたくなるものです。アナログメーターですから,ここはやはり電球色のLEDでしょう。メーターの一番下,コイルやマグネットの入ったケースの下側にLEDをおいて光らせてみると,これがまたいい雰囲気なのです。

 今度は100Ωの抵抗をいれて光らせます。ざっと5mAほどですかね。部屋を暗くすると,ぼやーっと光っている感じなかなかよいです。

20160819152615.JPG


 さて,こうしてLCDもメーターも,見やすく格好良くまとまったところで,本当にこれで完成です。昨日から24時間運転に入りました。

 最初に完成してから2週間以上経過していますが,ここからは「使う」ことがメインになることでしょう。もっとアナログ部分で苦労するかと思っていましたが,動いてしまえば案外簡単だったなあと,思います。

 GPSDOは,手軽に,低コストで,維持管理をほとんど必要としないで,高精度なクロックを手元に置くことが出来る,アマチュアには非常に好都合な装置です。今や電圧も音質も,クロックの精度に左右される時代です。高性能な周波数カウンタをお持ちの方なら,1台作るととても安心ですし,測定も楽しく,見えない物が見えてくるようになります。

 興味が少しでもある方は,ぜひ自作してみて下さい。

 

AG1022をGPSDOで動かしたい

  • 2016/08/17 12:57
  • カテゴリー:make:

20160819140050.JPG

 

 さて,先日作ったGPSDOで,高精度な10MHzが手に入りました,11桁の周波数カウンタHP53131Aも,この10MHzを基準にすればその実力を発揮できます。

 こうなると,他にもこの10MHzを入れて,測定環境全体を高精度化したいと思う物です。

 特に,周波数を測定する機械の精度を上げたなら,周波数を作る機械の精度も上げたいと思う物で,私が珍しく新品で買った測定器,OWONのAG1022というファンクションジェネレータを,この10MHzで動かせないか考えてみました。

 幸いなことに,AG1022は廉価版のファンクションジェネレータにもかかわらず,外部クロック入力端子が用意されています。しかし残念な事にここに入れられる周波数は20MHzのみ。10MHzでは動いてくれません。

 そこで,10MHzを20MHzに逓倍する回路をSi5351Aを使って作り,これをGPSDOに内蔵して,20MHz出力を装備することにしました。

 すでに私は,SI5351AをATtiny13Aと併用することで,好きな周波数を自由に作る事が出来るようになっていますから,なにも難しい事はありません。

 さっさと回路を組んで,ATtiny13Aにプログラムを書き込んで,テスト開始です。ところが,どういうわけだか電源がショートしています。

 あれ,おかしいな・・・

 調べて見ると,Si5351Aがショートしていました。悲しい事ですが,SI5351Aを壊してしまったようです。出力バッファの電源ラインがショートしていましたので,出力端子をGNDに落としたとか,そういうことかも知れません。

 気を取り直して,新しいSi5351Aに交換し,電源がショートしていないことを確認してから電源を入れます。

 あれ,またショートしました。

 一度ショートしてしまうと,その後もずっとショートの状態が続いてしまいます。永久破壊にいたってしまうようです。

 私も長年電子工作をやってますが,これほど簡単に永久破壊が続けて起きてしまったことは,あまり記憶にありません。

 早速原因の調査をしますが,どこも悪いところが見当たりません。簡単な回路ですし,すべての信号をあたってみても,間違いはないのです。

 なにも手を打つことが出来ず,若干の配線の整理をしたにとどまった基板のSi5351Aを再度交換し,おそるおそる電圧を上げていきます。今度はショートしません。
1.8Vを越えたあたりから,20MHzが出力出てくるようになりました。

 その後は全く問題なし。なぜだかよくわかりません。もう現象が出なくなってしまったので,原因の追及も出来なくなってしまいました。

 気持ち悪いのですが,このまま作業を続行です。

 作った20MHzは,周波数カウンタでみても非常に正確で,揺らぎも見られません。かなり良い質の周波数です。

 これなら大丈夫だろうと,AG1022に突っ込んで外部クロックに切り替えてみます。

 うまくいったように見えたのですが,なぜだかちらちらと周波数が大きく変動するときがあります。最初はDDSによるジッタかと思いましたが,内蔵クロックではこういったおおきな変動は見られません。

 波形を見れば,時々波形が大きく崩れています。周波数カウンタで最大と最小の値を見てみれば,もはや誤差とは言えない大きさの変動がつかまっています。これはダメです。

 しかも,AG1022の電源投入時には必ず外部クロックをつかまえ損ねて,内蔵クロックに切り替わってしまいます。些細なことですが面倒です。

 これでは使い物になりません。なんとか次の一手を考えないと。

 実はこのAG1022,少しまえに内部を見たときに,とんでもない状況である事に腰を抜かしました。

 電源トランスがいい加減にネジ止めされていて,トランスのフレームが変形し,グラグラと動いてしまうほどネジが緩んでいました。そのせいで基板は傷つき,よくこれで動いているなあと思ったほどのひどさでした。

 結局,トランスのフレームを元に戻し,筐体に別に穴を開けてしっかり固定して今も使っているのですが,その際にDDSの心臓部に基準クロックを供給していると思われる,水晶発振器を見つけてありました。表示から周波数はおそらく20MHzです。

 なら話は早いです。

 まずこの水晶発振子の波形を見ます。4ピンですので,電源とGNDが繋がっていれば発振子ではなく発振器です。

 そして出力の波形を見れば,周波数がわかります。さらに波形が矩形波なら,Si5351で作った20MHzをそのまま入れることが可能です。

 結果,これは発振器で3.3Vが供給され,出力は3Vの矩形波であることがわかりました。

 出力から繋がるチップ抵抗(22Ω)をはずし,ここにSi5351Aで作った20MHzを入れてみると,めでたくAG1022は綺麗に動作し,mHzオーダーで周波数を設定可能になりました。もちろんおかしな周波数変動もありません。

20160819140051.JPG


 リファレンスをカウンタとファンクションジェネレータで共通にしたのですから,周波数はもちろん,揺らぎも同期するはずですので,理屈の上ではピタッと正確な値が測定されるはずです。

 ですが,DDSで作った波形ですので,周波数によってはずれてしまったり,波形が乱れてしまったりすることもあるでしょう。しかし,試したところそういう問題は見つからず,基本的な動作としてAG1022はなかなかちゃんと作られているような印象です。

 ただ,AG1022の電源OFFの時に10MHzが供給される続けるのですから,AG1022を壊してしまうかも知れません。そこで,AG1022とSi5351Aの間にバッファを1ついれて,保護することしました。

 そうして完成したSi5351Aの基板を取り付け,配線をします。幸いなことに,BNCコネクタは,上位機種ように用意された穴をそのまま使って,増設しました。これまでの20MHz入力と20MHz出力は温存します。

 

20160819140053.JPG


 さて,改造を終えて動作させてみると,面白いほど安定しています。

 

 冒頭の写真はその様子で,AG1022を1.234567890MHzと設定し,周波数カウンタでその周波数を測定した結果が1.234567890MHzとなっているのがおわかりでしょう。

 

 値はフラフラと変動することもなく,びしっと値がこの細かさで出るのです。ただ周波数カウンタに好きな数字を表示させることが出来るだけの話ではありますが,実はこれはなかなか大変なことです。


 いい話ばかりではなく,この改造の結果10MHzを外から入れないと全く動かなくなってしまいました。内蔵クロックとの切り替え機構を付けようかと思いましたが,そもそも面倒ですし,遅延による影響がどれくらいあるかが不明なので,切り替え機構はやめました。

 持ち出すときには不便ですが,他の場所で使うことはないでしょうし,どうしてもと言うならTCXOで10MHzを作って供給する治具を用意します。

 というわけで,周波数カウンタとファンクションジェネレータが,高精度で同期して動くようになりました。作る側と測る側,どちらも正確な基準で動作することの気持ちよさたるや。

 残念ながら,これ以上外部クロックで動作する測定器を持っていないので,ここ止まりになってしまいますが,正確なだけの10MHzが,任意の周波数,任意の振幅,任意の波形に変形できる出来るのですから,大したものです。

 これで,うちの時間軸は,一元化されました。いやー,男のロマンです。

GPSDOで手に入れる高精度クロック[結果編]

  • 2016/08/16 15:31
  • カテゴリー:make:

 今回は,GPSDOを作った,その結果です。


 まず,衛星内蔵の原子時計に同期しているのですから,GPSモジュールから出てくる周波数の精度,つまり長時間の平均で収束する周波数は,10kHzで間違いないでしょう。

 そして,この10kHzに高安定なOCXOから出てくる10MHzを1/1000して作った10kHzをPLLでロックさせますので,10KHzを中心にして前後にゆっくりとした揺らぎが,起動直後には出てくることになります。

 そして,OCXOの安定と,GPSの長周期の揺らぎの収束が丸一日かかって終わり,24時間後には,OCXOの周波数は10MHzに限りなく近い周波数に整えられているはずです。

 GPS補足後24時間の経過し,PLL Lockメータを中央に調整します。これは,PLLの制御電圧を指示するメーターですが,PLLがロックしたときには中央を示すようにしておきますので,もしロックが外れるとセンターからずれていきます。

 出力の周波数を見てみると,ちゃんと10MHzがでています。周波数の変動もありません。波形も振幅も問題なしです。

 GPSが補足されると,LCDに日時が表示されます。もちろんステータスも表示されています。

 消費電流は,起動時に600mA近い電流が流れます。最初,大きめの電解コンデンサをACアダプタに並列に入れていたんですが,そのせいで突入電流が大きくなり,ACアダプタの安全回路が働いてしまい,電圧が出てこなくなってしまいました。

 そこで,電解コンデンサは外して,今は動くようになっています。

 OCXOが安定してくると電流は300mAくらいまで減ります。消費電力は5Wくらいでしょうから,これくらいなら24時間運転しても大丈夫でしょう。

 では,ここで,なぜGPSモジュールの出力がそのままでは使えないのか,そしてOCXOの周波数をPLLでロックしてやるとどのくらい揺らぎがなくなるのかを,ちょっと見て頂きましょう。

 周波数カウンタのリファレンスに,別の安定したOCXOの10MHzを入れます。これで1E-9くらいの安定度が出るはずです。(ただし10MHzそのものはわずかにずれています)

 ゲートタイムは0.1秒に設定し,この周期で値が更新されていきます。このゲートタイムだと9桁は出なくて,おそらく8桁くらいの精度かでないと思います。

 さて,最初は,このGPSDOのGPSモジュールの10kHz出力です。

20160816153236.mp4

 0.035mHzから0.051mHzの間で,値が揺らいでいるのがよく分かります。0.016mHzの周波数で揺らぎがあるという事ですので,100000秒で1.6回の変動,言い換えると62500秒で1回の変動があります。24時間は86400秒ですので,17時間で1周期のゆっくりとした揺らぎが出ているということになります。

 また,0.016mHzという周波数の変動は,10kHzに対しては1.6E-9ということです。やはりGPSモジュールから出てくる周波数には,1E-8から1E-9くらいの変動が存在するというのは,本当のようです。

 では,次にこのGPSの10kHzにロックしたOCXOの出力を見てみます。OCXOの出力は本来は10MHzですが,これを1/1000して10kHzにしてGPSの10kHzとロックしてあるというのは,これまで何度も書きました。

20160816153325.mp4

 どうですか。0.039mHzからほとんど動いていません。一瞬0.041mHzになっていますが,それも含めて変動を0.002mHzと厳しく見てみれば,変動は2E-10です。この揺らぎ方ならそれ以下でしょうから,1E-10に近い精度が出ている事がわかります。

 それに,リファレンスのOCXOの精度も1E-9程度であることを考慮すると,もはやこの揺らぎがGPSDOの揺らぎなのか,周波数カウンタの揺らぎなのか,区別出来ません。ですから,正確なところはわからないにせよ,1E-9から1E-10くらいの精度は出ている物とみなしてよいと思います。

 最初の動画にあった揺らぎがほぼなくなっていること,そしてGPSモジュールの変動周波数の中心付近で安定していることがわかります。

 ですので,GPSDOを使った周波数測定では,その測定値が正確であることも当然ですが,1E-8程度の揺らぎくらいまでは,可視できるようになったということがいえます。

 ここでは詳しくは触れませんが,通常の水晶発振子ではもっと大きく値が変動していることがわかりますし,TCXOになればもう一桁,OCXOならさらのもう一桁,変動が少なくなっていることを,目で見ることが可能です。

 さて,ここまでくると,10MHzもどのくらいの精度が出ているのかを調べてみたい気がしますが,仮に1E-11の精度を見たければ1E-12のリファレンスクロックを持った周波数カウンタを使わないとわからないですから,もう私だけの力ではどうにもなりません。

 とはいえ,周波数が時間と共にドリフトせず「常に正確な10MHzに調整され続けるOCXO」と言い換えることのできるGPSDOは,この動画を見ただけでも,その価値が分かって頂けるでしょう。


 さて,ここで原点に戻って,TCXOで作った時計の精度を確認します。先に言い訳をしておくと,気温が31度もあるのであまりいい数字が取れませんでした。

 念のため時計の構成を書いておくと,源発に26MHzのOCXOを搭載し,Si5351Aによってこの周波数で32.768kHzを作ります。そしてこの32.768kHzで1秒を作ってカウントして時計を作ってあります。

 TCXOのスペックは1ppmですのでもしプラスかマイナスか,どちらか目一杯1ppmずれると,10日で1秒くらいの遅れか進みが出る計算です。

 また,別の機会にちょっといい周波数カウンタを借りて測定してみたら,-0.5ppmくらいの実力となっていました。0.5ppmだと1ヶ月に1秒くらいのズレが出てきそうなものです。

 しかし,この時計はなかなか優秀で,半年で1秒くらいしかずれません。

 大変気になったところで,測定結果です。

 源発の26MHzのTCXOは,25.9999941MHz(-0.2288ppm)となりました。

 そして,Si5351Aで作った32.768kHzは,32767.9924kHz(-0.2335ppm)となりました。

 多少のズレはありますが,どちらの値も-0.23ppmとすれば,Si5351Aを通したことでズレが増えることも減ることもないことがわかります。

 パラメータ設定ツールでも,周波数の誤差はないと出ていましたからこの結果は当然なのですが,なかなか感激するものがあります。

 ところで,-0.23ppmということは,約50日で1秒遅れるという計算です。2ヶ月で1秒となると,実機よりも悪いという結果になるので残念なのですが,測定時の気温が31度を超えていたこと,そして測定中にSi5351を一度壊してしまい,新しい物に交換してから値が変わってしまったことを考えると,測定の条件がよくなかったなあと,反省することしきりです。

 Si5351Aを交換してからの長期精度を確認し。少し涼しくなってきたところでもう一度測定をしようと思います。


・まとめ

 GPSDOはそんなに大規模な回路ではありませんが,なにぶん,ちょっとしたことで変動が起きてしまうようなデリケートな機械です。私が作ったこのGPSDOも,筐体を盾にすれば値がパラパラと動き,長い時間をかけて元の値に戻って行きます。

 にもかかわらず,随分ラフに作ったものだと思いますが,それでもこのくらいの制度と安定度が手に入ったんですから,とても満足です。

 仮に1E-11の精度が手に入ったとすれば3000年に1秒の精度です。通常これだけの精度の周波数を維持するには,相応のコストをかけないといけませんが,私は5W程度の電力だけで維持できることになります。

 また,今回こうして,周波数の「精度が高い」というこはどういうことなのかを,きちんと把握できたことは大きいと思います。10MHzが10.1MHzになってしまうことも精度の問題ですが,10MHzを中心にして変動する揺らぎも,また精度の問題です。

 しかしこの2つの「精度」は,使い方によって大きな違いを生みます。これまで,私はこの2つをあまり意識しないでいたのですが,それは精度が低く2つを区別出来なかったからだとわかりました。

 特に後者はジッタとか,位相雑音などと呼ばれます。そういうものがあることは分かっていても,きちんと理解していないことがわかったわけです。

 PLLの性格はループフィルタで決まるということも発見でした。PLLの心臓部はループフィルタであるという意見をよく耳にしてきましたが,それは設計や実装が難しく,トラブルの種になっているからだと思っていたのですが,それだけではなく本当にPLLの性格を決定する,文字通りの心臓部でした。

 周波数の世界は奥が深く,かつ幅が広いです。10nsの時間は極端に短いように思えますが,周波数でいえばたかだか100MHzです。そしてその10nsも,時計を作れば積み重なって,たった1000日で1秒という大きなズレになってしまいます。

 だから,実用上無視してよい,という人間の尺度による割り切りが難しい世界です。精度の高い周波数が欲しいと思った時,そして実際に手に入れた時,その事をつくづく感じました。

GPSDOで手に入れる高精度クロック[製作編]

  • 2016/08/10 16:17
  • カテゴリー:make:

20160816092655.JPG

 GPSDOの続き,今回は回路の検討から製作までです。 

 基本的な話はトラ技に書いてあるとしても,やっぱり実際に作って見て,動かしてみないと,どうもイメージが掴めません。

 周波数のズレというのは,欲しい周波数からどれだけずれているかというものと,経年変化で徐々にずれていくものは想像しやすいのですが,ある周波数を中心にしてゆらゆらと揺らいでいるものもあり,これらがちゃんと区別出来るようになるのは,それが実際の測定結果の違いであるとか,実際に怒る現象のどう反映されるのかが頭の中で繋がっていないとダメだと思います。

 周波数のズレ,経年変化,ゆらぎはそれぞれ別の物ですので,排他ではなく,すべて同時に独立して起きるものです。そして,それぞれが引き起こす現象も異なります。

 例えば,時計を動かす基準クロックの周波数を考えてみます。基準クロックを使って1秒を作り,これを数えて時計は動いています。

 この基準クロックの周波数ズレは,時計の狂いとして表面化し,しかもそれは一定の割合で蓄積していきます。一日1秒の遅れがある時計は,10日で10秒遅れるわけです。

 では経年変化はどうでしょう。これは言葉通り,時計の経年変化による狂いの変動をに現れます。一日1秒の送れがある時計が,10日で100秒遅れたり,逆に10秒進んだりします。

 最後の揺らぎですが,これがなかなか気付きにくいです。揺らぎですので,フラフラと周波数が変動するのですが,揺らぐ範囲が規定されていれば,ある瞬間は進んでいるけどある瞬間は遅れている,そして長い時間で平均すればある値に収束するというものです。

 きちんと合わせた時計が,12時間後に見ると10秒遅れていました。さらに12時間後に見ると,ぴったり狂っていませんでした。この場合,1時間ごとに時計を見るともっと細かく,ゆらいだ状況がわかる訳ですが,逆に24時間に一度しか時計を見ないなら,なんと正確な時計か!と腰を抜かすことになるわけです。

 これ,長い範囲で考えれば揺らぎはないことになるし,短い範囲で見れば揺らぎは大きく見えてきます。範囲をどんどん短くし,限りなくゼロにして・・・なんてことを言い出すと,どっかで聞き覚えのある微分の考え方になってきますし,人によってはサンプリング定理を思い出す人もいたりするかも知れません。

 なにせ,短時間では減ったり増えたりを小刻みにしていても,平均を取れば,そしてその平均もたくさん(長時間)取れば取るほど,ある値に収れんしていきます。

 一番わかりやすいのは,家庭に来ているAC100の周波数でしょう。西では60Hz,東では50Hzですが,これはいつもぴったり50Hzになっているわけではなく,ある瞬間は49.95Hzかもしれないし,50.02Hzかもしれないんですが,一日平均でちょうど50Hzになるように,調整をしています。

 一日の平均としては非常に高い精度を持っているそうで,こうした商用電源周波数を基準に持つ時計がちっとも狂わないという経験は,この種の時計が全盛期だった40年ほど前を知る方には,よく記憶がおありでしょう。

 長くなりましたが,こういう話も実際に作って見ればはっきり区別出来るようになります。うん,これはとりあえず作って見ましょう。


・回路検討

 マイコンやDSPを使わずに,アナログのPLLで構成された回路は一見するとややこしそうで,実は簡単です。でも簡単なようで,1つ1つの常数に深い深い意味があり,実装によって性能が左右するのも,またアナログの世界です。

 私は,設計者の意図を尊重し,まずは素直にモノマネすることにしました。ただし,回路も常数も「そうなっているから」ではなく,どうしてそうなっているかを考えた上で,モノマネさせて頂く事にします。


・部品集め

 この回路はアナログですが,アナログ回路というのは得てして部品の性能に依存して設計を行うものであり,部品が手に入らないとモノマネすら出来ないという難しさがあります。

 まずGPSモジュールですが,1PPSではなく10kHzが高精度で出てくるものであり,かつ高感度,高精度なものである必要があります。加えて安価でなければ手が出ません。記事にあるように,u-bloxのNEO-6Mを使ったGPSモジュールが,aitendoで安価に売られていましたので,これを買って使うことにしました。

 アンテナは屋外に出さないと厳しいのですが,本格的な物は高価ですし,そもそも設置が大変です。そこで,カーナビようのアンテナを中古で数百円で入試し,コネクタをSMAに交換して使うことにしました。一応トヨタ純正です。

 次のキーパーツは,OCXOです。これまで書いたように,OCXOは揺らぎ成分を担保する最重要部品であり,はっきり言えばGPSDOの揺らぎは,このOCXOの性能がそんまま出てくるといってもよいです。

 ですから,非常に高価なダブルオーブンのOCXOを使う物なのですが,私は偶然,以前購入した電圧制御可能なOCXOが,実力でなかなか揺らぎがないことを確かめたあったので,これを使うことにしました。

 購入先の話を聞くと,もともとメーカー製のGPSDOに使われていたOCXOを外したものらしく,それならGPSDOにぴったりじゃないかと,そういうお話です。でも素性がはっきりしなかったこともあり,4000円弱で手に入りました。GPSDOに使える電圧生業OCXOとしては半額以下だと思いますが,うまくいくかどうかは試して見ないとわかりません。

 幸い,1.6Hz/1Vくらいの周波数変化率でもありますので,今回の記事で使われているものとほぼ一致しています。回路変更も必要ありません。

 難しい部品はこのくらいです。500uAのラジケーターなんてのはどこでも買えますし,使っているICも一般的で安価な汎用品です。

 出力波形を正弦波にし,しかも接続機器と絶縁するための回路の規模が結構大きく,部品もトランスやFETに入手が難しいものがあり,いろいろ検討してみましたが,私の用途ですと矩形波でも絶縁していなくてもあまり関係なさそうだったので,そのまな出力することにしました。

 電源は,本当はトランスで作ったリニアレギュレータがベスト何でしょうが,ずっと通電して機器ですのでちょっとした効率がきいてきます。そこで15VのスイッチングACアダプタを使い,基板ごとにローカルで用意したLDOを通して,電源の質を維持するようにしています。


・オリジナルな要素

 GPSモジュールが衛星をきちんと補足し,常に精度が維持されていれば,出力もPLLでじっくり時間をかけて,高精度で出てくるでしょう。しかし,衛星を補足し損ねた,あるいは停電があった等で精度が出ていない10kHzがGPSモジュールから出力されることは十分に考えられます。

 しかし,そうした精度が落ちた事実はGPSモジュールからのログを見ないと分からず,しかも24時間以上の時間をかけて,ゆっくりゆっくり揺らぎを除去していくのですから,現在出ている10MHzのクロックの精度がどの状態にあるのか,分からないことになります。

 さすがにそれは不安ですし,いい勉強なりますので,GPS時計を作った経験を生かし,GPSモジュールのステータスモニタをAVRtiny2313で作ります。LCDはグラフィックタイプのAQM1248Aを使って,小さな画面にたくさんの情報を出せるようにしましょう。

 NMEAセンテンスをデコードし,現在の日時と衛星の補足数,測距モード(無効,2D/3D,DGPS),そして衛星を補足し損ねてモードが無効となった回数を数えたカウンタを表示します。

 また,初回起動時には,画面右上に*を表示ししました,これは停電の検出です。停電をすれば,復帰しても衛星の再補足後から24時間以上経過しないと,所定の精度が得られません。

 ですので,この*が表示されていれば,停電が起きたことがわかります。

 そして,このマークを消し,かつ衛星を補足し損ねた回数のカウンタをリセットするボタンを1つ用意します。起動後,衛星を補足してからこのボタンをおしてやれば,画面に*が出ていれば停電を,カウンタの数が0以外になっていれば衛星を補足し損ねたと,分かります。そこから24時間経てば,悪くとも精度が出ていると考えていいわけです。

 あと,場合によっては出力の周波数に1MHzが欲しい時があるかも知れません。そこでデューティが50%になるように,HC390の配線を変更しました。10進カウンタとしてどうさせるのではなく,5進カウンタにバイナリカウンタをカスケードして,バイナリカウンタで50%デューティにするという回路です。

 ここから1MHzを引っ張り出すことができます。

 もう1つ,実は私が持っているAG1022というファンクションジェネレータは,供給する外部クロックとして20MHzが指定されています。10MHzではダメなんですね。

 そこで,Si5351Aを使って,20MHzに逓倍する回路を追加しました。実は,通電直後に電源とGNDがショートし,それがSi5351Aの破損によって起こるという大問題が発生し,SI5351Aを2つも壊してしまったのですが,原因が分からず,3回目の交換で正常動作するようになってしまったので,謎のままです。

 こういうのって本当に気持ちが悪いのですが,動いてしまったので確かめようがありませんし,ICの交換も大変,しかも安いとは言え1つ150円しますので,もう結果オーライにします。ああ,こういうあきらめ方って。何年ぶりだろう。

・PLLの考察

 GPSからの10kHzには、数mHz以下の揺らぎが入ってきます。これをローパスフィルタで除去(つまり積分器で平均化)することで,PLLが揺らぎに追従しないようにするのが,GPSDOのミソです。

 では,その揺らぎはどこで防ぐかというと,前述のようにOCXOというもともと揺らぎの少ない部品の力で確保します。

 なら,このローパスフィルタのカットオフはどうなっているのでしょう。LTSpiceでシミュレーションしてみると,10mHzで-3dBでした。また,リークの対策として,100mHz以上の周波数をさらにカットするフィルタも入っています。


・製作

 私はどんな回路でも,自分で一度書き直します。自分の流儀に出来るので,製作中にさっと見るときの読解力に差が出ますし,一度書き直すことで回路の隅々まで理解するチャンスが得られます。

 今回もそうしました。また,ケースは小さい物にしましたので,基板もギリギリの高密度実装です。大きめの基板にはOCXOと4046,そしてOP-AMPをのせました。もう1枚の小さい基板にはGPSモジュールと分周器をのせました。

20160816153545.JPG

20160816153546.JPG


 LCDとマイコンはフロントパネルに取り付けるので別基板にしました。
20160816153547.JPG
 製作そのものはあんがすんなり出来ました。バラックで動かしてみると,あっさり動いてしまいました。1E-9くらい出ていると思われる別のOCXOをリファレンスに入れた53131Aで測定してみれば,その安定度はよく分かります。

 ケースに穴を開け,ギリギリのレイアウトで押し込みます。フロントパネルはいつものようにステッカー自作キットを使いプリンタで印刷して用意します。今回は手に入ったラジケータがVUメータでしたしので,このままでは格好が悪く,シンプルなセンターメータの目盛板も印刷することにしました。なかなか綺麗に仕上がりました。



 長くなりました。結果は後日。

ページ移動

ユーティリティ

2020年05月

- - - - - 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