思い出したように、Dual I2C Controllerを再開!
〜PiPA5756Dと組み合わせる!の巻き〜 2019.7.26
ここまで組んでみたものの、その後にRasPiを他につかうなどしてバラバラになってしまいました。
そのためDual I2C Controllerも完結しないまま試作基板箱の中に鎮座(埋もれて?)していました。
でも、引越しが完了したこともありディスクトップのオーディオを検討すべく再開させましょう。
目標はDual I2C ControllerとPiPA5756Dをつかった3D方式のディスクトップオーディオです。
Dual I2C Controllerですが、ここまでやってその後は・・・・・1年前の状態です。
検討記:超オキラクなマルチチャンネルシステムのTAS5756Tを検討する!の巻き
もともと、この基板ですが、激安LCDは動くのか? から始まったものです。その中で
PiPA5756Dなる2チャンネル分のDクラスアンプを2枚つかって4chに拡張したかったのだけど、
同じI2Cアドレスの基板を2枚つかう必要がありました。アンプ側のI2Cアドレスを変更すれば
I2Cポートは1つで済みますが、その改造があまりにもハードルが高いので、反対にI2Cポートを
2系統にした、というのがことの顛末です。ようやく思い出してきました。つい1年前のことですが、
ほんと忘れるのが早いです。
こんな構成で使うことを考えています。
ない?どこいった?
Dual I2C Controllerは見つかったのですが、なぜかPiPA5756Dが見つかりません。2枚もつくったはずなのに
どこに行ったのだろう?引越しのダンボールをすべてあけてみましたが見つかりません。ん〜どこ行ったんだろう?
おそらく、見つけられないというより、なんらかの理由で捨ててしまったのかもしれません。
ひょっとして、PA5756Tが完成して箱入りになったことから、思い切って処分しちゃった?ん〜ん、そんな
もったいないことはしないはずだけどな〜。
悩むよりもう1枚!
夜に大捜索をかけると物音が結構するので家族の不評を買います・・・・。ということで、夜の夜長は
静かにしましょうということで、もう1枚つくることにしました。部品はなんとか揃うでしょう。
それに、表面実装部品がほとんどなので製作にさほど時間はかからないはずです。
新規で1枚つくるために基板を用意!
一気につくり上げました!本当はPICやLEDは不要ですが、動作診断のために取り付けました。
この基板の制御は外付けのDual I2C Controllerから行うので、本来はPICは不要なのですが、
一応は一旦はとりつけられるようにしました。というのも、このPICには基板の診断チェックプログラムも入れてあるので、
一旦組み上げたのち、通電してエラーが発生しないかを確認したかったためです。そのためICソケットが若干勿体ない・・・。
全体の接続をおこないましょう!
あたらしく組み上げたPiPA5756Dの動作テストも完了したので、Dual I2CとPiPA5756Dを結合していきましょう。
接続は数本で済みます
接続内容は、5Vの電源とI2C信号の配線、そしてPiPA5756DからのLRCK信号です。LRCK信号は
ディジタルオーディオのサンプル周波数でいわゆる44.1kHzとか192kHzというものですが、
この信号を監視してディジタルフィルターの定数を設定しています。
なにより制御信号につかうI2Cは2本の線だけでデータの送受信ができるのでとても便利です。
Dual I2C Cont.からPiPA5756Dへの接続線は左から
@信号GND ASCL BSDA CLRCK そして D電源GND E電源(5V)
LRCK信号はDual I2Cの基板の内部に配線する場所があるのですが、一旦基板の端に信号線を配置してから
PiPA5756Dと接続したほうが綺麗なので、I2C信号コネクタのなかから使わない「V(電源)」に引き込むことにしました。
そのため、あらかじめ「V(電源)」につながっているパターンは切断しておきます。
CN2(I2Cポート1)の「V(電源)」端子をLRCK信号の配線端子としてつかっています。
LRCK信号は基板内にあるランドの「C0」に接続します。
「C0」の位置にはシルクがあります。なお、C0はPICのPIN_C0のことで、この端子はクロックをカウントすることができます。
配線が終わったので、念のために動作確認としてPiPA5756Dの入力コネクタにSRC4137からPCM信号を接続して動作確認だけしておきました。
Dual I2C COntrollerとPiPA5756Dを接続して、ソースにSRC4137をつかって一応の動作確認です。
Raspberry Piと接続しよう!
さて、ここまできたら音楽を聴きたいのでRaspberry Piを接続します.RasPiはすでにWiFi接続まで設定してあります。
RasPiとPiPA5756Dの接続ですが、今回は40pのフラットケーブルを用いました。これは昔に秋月電子で買ったものです。
たしか10cmと短いけどコネクタもついて100円か150円だったと思います。
このケーブルを介してRasPiへ5V電源を供給し、RasPiからのPCM(ディジタルオーディオ信号)を得ます。
RasPiとPiPA5756Dとの接続は10cmの40pのフラットケーブルをつかいました。RasPiのほとんどがかくれちゃいましたね。
今も売られているようです。長さが15cmと長くなりました。
3Dシステムで鳴らしてみましょう!
RasPiとの接続ができたので、さっそくSPに接続してみましょう。
スピーカエンクロージャは100均一で買ったMDFをフライスで加工したものです。
ステレオのスピーカはALTECの小型のSPを2個パラで組み込んだバックロードホーンになっています。
低音はでませんが、すごく元気に鳴ります。そして、その右側にあるすこし大きめの箱はサブウーハで
これは秋月の8cmスピーカを2つ内蔵したF0=110Hzと130Hzの擬似ダブルバスレフになっています。
まずはこんな感じで接続しました。
備忘録ですがRasPiの設定ですが、DACデバイスはもっともシンプルなR-PI DACを選択しています。
RasPiからのオーディオ以外の制御信号は不要なDACです。
DACデバイスの設定です。
出力周波数はデフォルトは44.1kHzになっていましたが、折角なので192kHzにアップサンプリングとしました。
出力の周波数の設定は不要なのですが、192kHzに設定しています。
一番気がかりなのがWiFiの設定で、家のリビングにルータを置いてそこから無線で飛ばしていますが、
どうも、RasPiは感度が低いようです。私の部屋は2Fにあるのですが、PCのWiFi受信器はアンテナも
ついているため感度を示す円弧は3本(最大4本)たっていますが、RasPiは1本だけです。
ボードが小さいのでアンテナも小さくせざるをえなく感度が低いのかな〜?
感度の円弧が1本しか立っていないのが寂しい・・・
まあ、動いているのでよしとします。
Dual I2C Cont.の設定
CH1がステレオのスピーカで、CH2にサブウーハがつながっています。
この2つの能率差が大きいのと、ドンシャリ気味が小型システムの場合は気持ちがいいので
サブウーハ(CH2)を+3dB、ステレオスピーカを-10dBとして、13dBの差を設けました。
サブウーハの遮断周波数は200Hzに設定しています。
遮断周波数とゲインの設定です。結構ドンシャリにしています。
サブウーハはモノラル設定です。
試聴!
夜の夜長なので、静かに聴いています。WEBラジオを音源にしていますが、
SWからの低音がここちよいです。もうすこし、SWのレベルを上げてもいいかもしれません
(そのためには反対にステレオスピーカのレベルを下げる)。
まあ、あまりドンドン響くと、寝ている家族がおきそうなので控えめです。
試聴時の設定です。音はすこし控えめです。
音はいいけど、ディスクトップとはいえすこしサイズがおおきいなあ〜。
これだと机の上が狭くなっちゃいます。さてさて、どうしよう〜。
ちなみに・・・・
今回のDual I2C Cont.には2枚のPiPA5756Dを接続することができますが、
どちらに接続されているか、あるいは接続されていないかを決める必要があります。
最初は初期化時のスイッチ操作で選択できるようにしていましたが、
なんとなくスマートでないので自動判定させるようにしました。
すなわちPiPA5756が接続されているかどうかをI2C通信の正常、異常で判断
するというやり方です。これだと、不必要な操作がへるので便利でしょう。
ただしちょっとだけ懸念があって、基板は物理的に接続されているけど、
ソフト的に切り離したいということができません。まあ、そんなことは心配する
必要はないかな?
組み上げていきましょう! 2019.7.27
バラックのままだと、すぐに使えないので最終的な形に組み上げておきましょう。
今回はPiPA5756DとRasPiがフラットケーブルでつながっているので、
これをみていてひょとして、折り返してとりつけてみるかな?という気になりました。
フラットケーブルでつながっているといことは・・・・・
そのまま折り返してとりつけてみよう!
Dual I2C Cont.基板を載せて、上下面に2mmのアクリル板をとりつけて完成です。
これで、一つのシステムになりました。RasPiをオーディオソースとした3Dシステム用の
アンプシステムです。ディスクトップで使うのもよし、ベッド(布団?)サイドで使うのも良しです。
あ、その前にリスニングルームも整備しなくっちゃ!!
忘れないうちに・・・ 2019.7.28
回路図を清書しました。 DUAL_I2C_CONTROLLER_SCH.pdf
まあ、この回路図自体にはあまり意味がなくて、単純にPICのI/O定義さえあればいいようなもので
肝心なのは制御ソフトの中身なわけで・・・。
ついでにI/O定義も備忘録代わりです(プログラムを見ればわかるのですが・・・)。
// I2C ADDRESS
#define I2C_CH1 0x9e // TA5756 CH1 on CN2(BOARD1 0x98)
#define I2C_CH2 0x9c // TA5756 CH2 on CN2(BOARD1 0x9a)
#define I2C_CH3 0x9a // TA5756 CH3 on CN3(BOARD2 0x98)
#define I2C_CH4 0x98 // TA5756 CH4 on CN3(BOARD2 0x9a)
#define I2C_IO 0xe8 // I/O expander PCA9539
#define NOATTLEVEL (48) // 0dB at TA5756
// PIC CONTROLLER PIN ASSIGN
#define LCD_SC_RS PIN_C3 // LCD CONTROL RS
#define LCD_SC_E PIN_C2 // LCD CONTROL E
#define LCD_SC_D4 PIN_A5 // LCD DB4
#define LCD_SC_D5 PIN_A4 // LCD DB5
#define LCD_SC_D6 PIN_A3 // LCD DB6
#define LCD_SC_D7 PIN_A2 // LCD DB7
#define I2C_SDA1 PIN_C5 // I2C SDA PORT1 CN2
#define I2C_SCL1 PIN_C4 // I2C SCL PORT1 CN2
#define I2C_SDA2 PIN_C7 // I2C SDA PORT2 CN3
#define I2C_SCL2 PIN_C6 // I2C SCL PORT2 CN3
#define SW6 PIN_B0 // SW6
#define SW5 PIN_B1 // SW5
#define SW4 PIN_B2 // PARA++ SW4
#define SW3 PIN_B3 // PARA-- SW3
#define SW2 PIN_B4 // TERM++ SW2
#define SW1 PIN_B5 // TERM-- SW1
#define AD_VR2 (0) // AN0 for VR2
#define AD_VR3 (1) // AN1 for VR2
中華LCDはまだあるのかな?
この基板には激安の20×4のLCDがとてもフィットするのですが、まだ適価で売っているのかな〜。
もう、かれこれ購入したのは1年前になるのでまだあるか心配です。
ありました!
AMZONでまでありました。ただ、注文するときはI2Cコントロール版を間違えて注文しないようにしないと
いけないです。まあ、I2C版がきても、コントローラ基板をとりはずせばいいような気がします。
それにしても、この値段で送料無料ってどういうこと?
1602に限れば200円以下です。海外からの送料を考えると、中身はゼロ円?って感じです。
これが使えるでしょう。ちょっと値上がりした?
こっちの方が安いな〜。たぶん同じもののような気がします。
それにしても16×2だったらこの値段だものな〜。なぜこの値段でつくれるのか不思議です。
リリースしました。 2019.8.1
製作マニュアルも書きました。 → I2C_DUAL_for_PiPA5756D.pdf
この基板のリリースにあわせて、PICなしのPiPA5756Dもラインアップにいれました。
RasPiの結構おもしろいアンプシステムです。
さて、この基板は次のターゲットは!・・・・
(つづく?)