(日々の記録)デジタルオシロを買った。(火)その後のSDカードPCMプレーヤーと機能追加ケースに入れてみる(3/25/09)卒業式に出る袴姿の娘を早稲田まで車で送る。冷たい雨が降って卒業式には生憎の天気。送ったついでに届け物のため都心へ足を延ばす。5・10(ごっとう)日とあってどこも車で一杯だ。珍しいこともあるものだ。家に戻って、ケースの工作にいそしむ。このケースはカーボネート樹脂で工作がとても楽だ。アクリルのように割れる心配がないし、結構強い。ミニルーターでLCDの表示面を切り取る。ミニルーターの削り粉は床に落ちてこないくらい微小すぎて少し心配である。やるわけではないが、今度はマスクをしてやろう。電源スイッチは迷ったが、結局レガシーなスライドスイッチを横につける。タクトスイッチの長押しで電源を入れるのが最近の流行だが、ソフトの構造を大幅に変える必要がある上、待機電流が少しでも流れるというのが生理的に落ち着かない。電池の自己放電くらいの電流だろうが、どうも古い人間でいけない。穴あけは順調に終わった。計算してあったはずだが、あちこちで干渉が起きている。LCDのピンヘッダーや、スイッチ基板のスペーサーをやすりで削り落とし何とか納める。LCDの表示面をケースと揃えるのが一苦労だった。工作の腕は着実に上がっている。うむ、これなら恥ずかしくない出来だ。嬉しくて家族に見せびらかす。次女がお世辞かもしれないが「欲しい」と言ってくれた。一台作れと言われれば二の足を踏む。\210)するかしないかだが、ケースの加工が大変だ。第一バッテリーがない。最初は意地で買ったDACチップがこんな形で実用品のプレーヤーになるとは予想もしていなかった。それにしても良い音だ。出力をPCのスピーカーから再生し、PCのCD再生ソフトとの音と比較してみても遜色がない。このPCの音は、マザー内蔵のサウンドチップでなく、ひところのちゃんとしたサウンドカード(Creative64)からの音である。こちらの方が音は整っているが、音の情報量から言えば今度のプレーヤーの方が多いような気がする。リチウム電池の充電(3/26/09)プレーヤーの電池の充電はこれまでの携帯電話に入れてやると言っていたが、ウェブを見ていると、リチウム電池充電用の専門ICがあることがわかった。携帯電話の充電器用なのだろう、沢山のメーカーから出ているようだ。個人向けに手に入るものは殆どない。いうのがあってそれ以下になると充電されないどころか発熱、発火する危険があるとか、さんざん脅かされている。電池の状態に応じて充電のステップがあり手順を守らないとちゃんと充電されない。電池とその充電器は常にペアになっているべきもので、自作するというのは余程仕様を把握していないと難しいようだ。これまでの携帯電話器を使って充電するのが間違いなく正解なのだ。ここへきてまたもへそ曲がりの悪い癖がでる。これで間違いないという状態に何となく反発したい気分になる。ちょっかいを出したくなった。充電開始の温度と電池のそのときの状況に応じて最初は低い電圧をかけて様子を見、充電できるようなら、定電流で充電し、一定の電圧まで来たら定電圧で充電して行くステップが必要なのだそうだ。これはICにとっては恰好の活躍の舞台である。MAXIMのMAX1555、リニアテクノロジーのLTC4054、日本無線、ルネサス、探せば殆どの半導体メーカーが作っているのではないかと思うほど製品は多い。面白いことに情報は、電子工作ではなくインドアプレーンなどの模型飛行機のサイトから集まる。彼らにとっては、リチウム電池は飛行機の性能を上げる重要な部品だからだろうか。事細かな解説があり、とても参考になる。電池にも充電指定電圧が4.1Vと4.2Vの2つのタイプがあり、4.1Vのものに4.2Vをかけてはいけないそうだ。これは相当気を遣わないといけない。ICは出ているのに個人で買えるものは殆どない。LTC4054がインドアプレーンのショップに出ているが今は品切れだ。専門のICを使えば充電はほとんど心配なさそうだ。最初の最低電圧のチェックから、最後の定電圧充電のシャットダウンまで全部ICが管理してくれる。自作はこのICに電源をつなぐだけである。いずれは充電器を作ってやろう。規格外のクロックに気づく(3/28/09)プレーヤーを外に持ち出してテストしている。最近は¥400しない2GのSDカード1枚でCD4枚分の曲が入る。通勤の往復2時間でも聞ききれない。MP3などの圧縮系との音の差は少し良いヘッドフォンで聞けば歴然としている。これは思わぬ拾い物をした。こんなに実用性が高いとは正直作るまで考えてもいなかった。ランダム再生機能を次の開発の計画にしていたが、考えてみたらクラシックしか聴かない自分にとっては特に必要性を感じない。協奏曲や交響曲の楽章をランダムに聴くということはまずないからだ。それより、聴きたい曲がファイルリストの中間にあって、聴いている途中で電源を切ったとき、次に電源を入れると頭に戻ってしまうのは不便だ。EEPROMで記録しておき、次の開始で頭出ししたい。いわゆるレジューム機能である。それと、リチウム電池は過放電するとあとが大変だ。その監視もしておきたい。途中経過も表示したいところだが、これはプログラムの構造を変えない限り今のままでは無理だ。ファイルをアクセスした空き時間にLCDにデータを送り込み、割り込みなどで表示終了を管理するマルチタスク構造にしないと経過時間などは表示できない。これは将来の課題とすることにしよう。あれこれ考えながら、プレーヤーを持って近くの桜の名所の開花の状況を調べに行く途中、音が止まった。あれ、もう電池がなくなったのか。あわてて家に帰りこれまでの携帯電話を取り出し充電したみた。問題なく充電が始まった。電池電圧はまだ3.5V近くある。おかしいなと思ったとき、はたと気がついた。20MhzのMega328を3.3V電源で動かしている。クロックによって電源電圧に下限があるはずだ。データシートを見てみた。あれあれ、20Mhzのクロックで動作を保証しているのはVccが4.5V以上じゃないか。これまで動いていたものだと逆に感心する。商用製品でないのだからそう目くじらを立てる必要もない。早めにMCUが止まって電池の過放電の監視をする必要がなくなったと強がりを言ってみたが、さすがにちょっと気分が悪い。ロジアナで前に見たときは、バッファーの切り替えとファイルアクセスの余裕は半分近くあった。上限の13.3Mhzの石がなかったので16Mhzの石で様子をみてみた。これでも規格外だが20%程度のオーバーなら許容範囲だろう。おお、問題なく動くようだ。ロジアナで確かめてみる。アクセス時間と読み出し間隔との比率は80%まで高まったが、まだ少し空きがある。定格の13.3Mhzはちょっと難しいか。レジューム機能の追加(3/30/09)あれこれ迷ったが、とりあえずレジューム機能を入れてSDカードプレーヤーのプロジェクトは終わりにすることにした。ところが、これが結構難しい。このあいだのオブジェクト指向的設計で分割した3つのブロックのうち、ひとつだけを関数に切り出し、他をメインルーチンに吸収してしまったことが災いしている。ファイル番号をまわして選択するルーチンにスイッチ管理が入っているので切り分けることが出来ない。やれやれ、やっぱり機能を切り分けて開発しておけばよかった。