工作の記録を残していきます。JJY待ちに待った新基板がFusionPCBから届いた。トラッキング情報を監視してて、近所の郵便局に着荷したタイミングで窓口受け取りに成功。今回はシルクを青にしてみた。基板厚は1.0mmを指定したが、今回初めて厚さ指定が守られた基板が作られたような気がする。本日早朝にデバイスのハンダ付けを行ってみる。ATmega168PA-MMH。0.45mmピッチのQFNパッケージだ。位置決めはシビア(特に回転方向が)だが、ハンダ付け自体はとても楽に終わった。20秒掛かってないと思う。このデバイス、パッケージ中央裏にExposedPadが有るので基板裏側からスルーホールを通じてハンダ付けしてやる必要がある。1枚目の写真を見ると、デバイスの裏側にそれ用の穴がある事が分かる。今日は早めに帰って続きを進めよう。JJY前回の試作で起こした基板で開発してきて概ね課題を解決したので基板の改版を出した。変更点はマイコンの種類とJJY受信用ICの置き換え。元々はtiny2313を使っていたのだけど、RAMが足りず結局mega168を使う事に。価格差はあまり無いんだよね。RAMが大きいラインナップがmega系にあれば良いのに。元々は原発振にセラロックを使っていて周波数偏差が大きくて時刻誤差が出たのでオシレータに置き換えた。レシーバICも、TEMICのU4226BからNPCのSM9501AVに変更。U4226Bの時はバンド切り替えのためにアナログスイッチを外付けで載せたり、フィルタが2ペア必要だったりとサイズもそうなのだけど、高い回路になってしまっていた。デバイスを変更する事で、かなり受信感度を改善する事が出来た。13x50mmに全機能を入れた。このモジュールは、定期的にJJY局(茨城と九州にある)の時刻信号を受信して内部時計を同期、シリアルポートから時刻要求を受けた時の時刻を西暦~秒まで返すというもの。あと1~2週間前後で板が来るはず。無事動いてくれると良いんだけど...。JJYここ2週間ほど、PC側の時計とJJY時計との間で誤差が出ていてその原因がはっきりしなくて悩んでいた。症状は、JJY時計の時刻が2秒あたり200mSec前後づつ遅れていくというもの。タイマ割り込み処理内で行っているJJYに同期する処理が重く(約600mSec掛かる)、この処理時間によって計時時間に誤差が出る懸念もある。タイマ割り込みで計時ルーチンを呼んでおり、次の割り込みまでの間に処理が完結しなければ、時計が遅れていく事も考えられる。前者は、割り込み処理内で行う処理を最低限(1mSecでサンプリングしてパルス幅評価をする部分)にして、後でゆっくりやって良い処理(受信データから時刻を抽出したりする部分とか。前者をFixしても遅れる現象は変化せず。して現状でも割り込み処理内の処理時間が1mSecを越えているのか?...と思い、後者をつつく。割り込み処理の末尾で、ポートを反転させる処理を入れ1mSec幅でH/Lするかオシロでチェックしてみた。脱調する事もなく、ちゃんと1mSec幅でH/Lしている事が確認出来た。なると、もう遅れる要素は考えられない。有るとしたら繰り上がりをミスっているとか、その辺だ。繰り上がりは間違っていない。思い立って、机の隅に置いてあった卓上時計(デジタル)とPCの時計を30秒程度にらめっこしてみた。