オーディオクラフト工房(281)

更新日:2023年9月8日


統合DACにサンプリング周波数表示を付ける
結構な時間を要しました。今年の夏休みはアナログレコードを聴きまくっていたので、オーディオクラフト工房の活動は夏休み明けからでしたが、先日やっと完成しました。光デジタル入力DACとUSB DACを統合したものに、サンプリング周波数表示を追加しました。ハイレゾ音源の周波数もちゃんと表示してくれるので、安心感に浸ることが出来ます。まずは完成した姿をどうぞ。
(統合DACにサンプリング周波数表示)
この製作のベースとなるDACの記事はこちらです。
光デジタル入力DACとUSB DACを統合する
さて、今回使用した液晶モジュールは小さくて組み込みには最適な大きさではないでしょうか。この液晶モジュールは80x160ドットで激安おもちゃから取り出したものです。その記事はこちらを参照して下さい。
マジカギアの液晶モジュール(80x160)をテストする
この液晶モジュールを取り扱い易くするために、駆動する専用の基板を起こしました。回路図はこちらです。液晶モジュールは正しく駆動出来ていますので回路図に間違いはありませんが、正直制御が判らない端子も残ってます。
(80x160ドット液晶駆動専用基板の回路図)
液晶モジュールが小さいので、限界までの小型化を目指してパターン配線を行いました。液晶モジュールの端子は0.3mmピッチの千鳥なので、コネクタの選定に苦労しました。私が使っているKiCadには19ピンのコネクタのフットプリントがありませんでしたので、21ピンを使って配線をしています。コネクタはおもちゃの実機から取り外したものを使いましたが、aitendoさんで購入出来るコネクタは21ピンなので、どちらでも使えます。もちろん正規の19ピンを使う場合は、片側に寄せてはんだ付けして下さい。実機からコネクタを取り外す時はホットプレートを使うと便利です。
(基板のパターン図です)
今回も基板製作はPCBWayさんにお願いしました。ガーバーデータのアップから約1週間で届きました。いつも感謝です。今回はレジスト色を黒色にしました。一応各液晶モジュール毎に色を変えています。
(大陸から無事着弾)
基板の右側の16ピンヘッダーに合わせて基板サイズを決めましたので、かなり小さく出来ました。今回の液晶モジュールはフレキの寸法が短いので、ピンヘッダーは基板裏側に出るようにはんだ付けします。
(部品を実装して液晶モジュールをコネクタに差し込む)
液晶モジュールの裏面に厚みのある両面テープを貼り付けてマイコンに取り付けます。
(液晶モジュールと一体化した基板)
小型、薄型化に成功です。製作が楽しみな液晶モジュール基板になりました。
(PIC32MXのポート割り付け)
液晶モジュール駆動以外には最小限のポートしか使用しません。最初にサンプリング周波数を測定する原理を説明しておきます。サンプリング周波数はDACへ入力されるLRCLKの周波数を測定すれば良いのです。そこで周波数をどう測るかですが、私はLRCLKの信号をINT1(RB14)に接続して、この端子に入力される信号の立上りで割り込みを掛けて、その立上り毎にTMR2のカウント値を読み出して、その数値を調べることで周波数を決めています。最初はカウント値から周波数を計算しようと試みましたが、なぜか上手くいかなかったので、サンプリング周波数に特化した周波数判定としました。この辺りはソースリストを見て下さい。SW1(RB9)はプッシュSWに接続して液晶表示のカラーを変えるスイッチとしました。但し、その状態を外部に記憶はしていないので、電源を入れる毎に初期の色に戻ります。SELECT(RB10)は前面の切り換えスイッチを読んで光デジタルからの入力かUSBからの入力かの表示を切り換えます。この切り換えスイッチはリレーを切り換えるのとは全く別回路にしないといけないので、2回路のスイッチに交換しています。
(液晶モジュールに表示するデザイン)
液晶モジュールへの表示は上図のデザインです。なかなか洒落たデザインになったのかと勝手に満足しています。
(Harmony3でのコンポーネント設定)
PIC32でのプログラム制作ですので、Harmony3を使用して基本ソースを生成します。今回はTMR2のモジュールを新たに組み込むだけです。
(RB14のポート設定)
RB14ポートはINT1に設定します。一応入力ポートなので内蔵プルアップも設定しました。当然ですが、RB9,RB10も入力ポートに設定して内蔵プルアップとしました。
(Systemの設定)
Systemの設定を開いて、Ext INT1にチェックを入れます。Edgeは立上りを選択します。割り込みの設定はこれだけです。とても簡単です。
(TMR2の設定)
TMR2の設定には悩みました。まあ私の勉強不足なんですが、最初は全く理解出来ませんでした。何はともあれ上図のように設定すると96MHzのクロックで16ビットカウンタを最大500usec間カウントしてくれます。このカウント値をINT1の立上り割り込みで読み込んでいます。最大500usecなので低い周波数は対応できませんが、DACのサンプリング周波数の範囲なら充分対応出来ます。
(サンプリング周波数毎のカウント値)
大きくDACのサンプリング周波数は上図のようになると思います。カウント値より判断してサンプリング周波数を決定しています。カウント値のばらつきの範囲はかなり大きく取っています。あまり狭くすると周波数を認識しないことがありましたので。
PIC32MXのプロジェクトファイルはここにあります。
(組み込み完了で前面から見るとこんな感じ)
今回は前面パネルに樹脂板は使いませんでした。従来のアルミ板に窓を開けて見れるようにしています。実際には液晶の前面に1mm厚の透明樹脂板があってそれがケースの内側に張り付いています。そのケースの前面に更に化粧用のアルミ板があるので、かなり奥目になってます。
(背面から見た姿)
液晶モジュールがどれだけコンパクトに取り付いたか見て頂きたかったのですが、この写真では上手く見えませんね。まあそれほどコンパクトに出来たということで。
(入力切り換えの表示)
光デジタル入力かUSB入力かが判るようにしてみました。「OPT」、「USB」で表示が切り替わります。
光デジタル入力はCD再生なので、当然ですがサンプリング周波数は44.1kHzとなります。リッピングしたCDをUSB経由で再生しても、当たり前ですが、44.1kHzです。
88.2kHzはダフトパンクのハイレゾ音源です。96.0kHzもハイレゾ音源です。これは沢山持ってます。
176kHzはマイケルジャクソンのハイレゾ音源、192kHzもハイレゾですね。どの音源も正しく表示してくれました。大変良く出来ました。
(8種類のパレットを用意しました)
今回使う色は7色です。画像データはパレット0の色で作成して、パレット色を変えることで画面の色デザインを行っています。こうすることで元データの容量を減らすことが出来ます。私の好みで色を決めていますので、参考程度に留めて下さい。
(自作オーディオの最新システム)
最新システムが日々進化して更に最新になりました。自作オーディオって本当に楽しいですね。これからもオーディオクラフト工房をよろしくお願いいたします。

オーディオクラフト工房へ戻る