Renew DIV5142をつかったグライコを考える!の巻き。 2025.2.3

ディジタルチャンネルデバイダとしてのRenew DIV5142は一旦は完成しましたが、
もう一つのアクセサリとしてグラフィックイコライザも考えていきましょう。
グライコは過去にFESP5142-Doのグライコ版がありますが、折角なのでチャンデバとの
統合コントロールもできるように目指します。もちろん、グライコ単体でもつかえるように
も考えていきましょう。

目指す仕様1: 24素子、192kHz対応でどうかな。

 Renew DIV5142は4個のPCM5142によるminiDSPをもっています。
 24素子とするなら1個のPCM5142だけでも足りますが、最大で96kHzまでしか使えません。
 そこで2個連結して、1個あたりのPCM5142の負荷を減らして24素子で192kHz対応とします。
 もっとも4個連結して、24素子で384kHz対応というのもできるのですが、チャンデバが384kHzに
 対応していないのでパスです。

目指す仕様2: スタンドアロンおよびチャンデバとの統合のどちらにも対応かなあ。

  チャンデバとの接続を考えたときに、どういう接続になるかですが、
 基板は増えてしまいますが、PCM5142を2個だけ実装したRenew DIV5142を全段のイコライザに充てることにします。
 そうすれば、接続が一番簡単です。基板をさらに1枚積みますだけです。
 


製作上の課題は?
 まずは、ちゃんとPICOでグラフィックパネルが使えるようにライブラリの作りこみです。
 そして、チャンデバの表示関連もグラフィックパネル用に変更する必要があります。
 20x4のLCDに比べると、グラフィックパネルだと表示量がかなり増えますが、まったく別物に
 するのは大変だし、できるだけ似たものにしようかと思います。流石にボリュームや入力切替などの
 フロントページくらいは変更すべきでしょうけどね。

まずはフォントライブラリのつくりこみ
グラフィックパネルは480x320のものを使う予定です。表示できるフォントはグライコでのグラフ表示を
考えると小さい文字の表示も必要です。そのため、以下のフォントを使えるようにしましょう。

  5x7ドットフォント
  8x8ドットフォント
 16x16ドットフォント
 24x24ドットフォント
 32x32ドットフォント

24x24ドットフォントがあると、グラフィックが480ピクセルなので、ちょうと20文字になりLCD表示器と
同じになります。このフォントをつかえばLCD表示を内容をそのまま使うことができます。

さっそく作業にかかりましょう!

これでどうかな? 2025.2.4


テスト用に、もう一枚CONTROLLER UNITを作成です。


このくらい文字サイズがあれば、いいでしょう。小さい文字は眼鏡をはずさないと見えません(笑。

ボリューム表示などを考えると、数字がメインになりますが32DOTフォントだと間隔が大きいです。
もうちょっと詰めた表示の方がいいかもです。そうなると、もう一つ大きなフォントがあったほうが
よいかも。48x48DOTも準備するかなあ〜。

デカいなあ〜

流石に48DOTになるとデカく見えます。いや、実際にデカいです。

ここまでデカくなくてもいいような?

しかし、これらのフォントライブラリを入れて、グラフィックパネルの動作確認
プログラムだけでも120kBになりました。PICじゃあ全然駄目です。
PICOだとプログラム領域は2MBありますから、まだまだ余裕です。

グライコの表示画面を作成 2025.2.5

一番ややこしいのが、グライコの表示画面です。
なんせ、ツマミ(?)を上下させたときにフリッカが生じないようしなければなりません。
単に、前のツマミの部分を塗りつぶして、新しい箇所に再描画するのが一番簡単なのですが、
そうしたらどうしても違う色で何度か塗りつぶす自体が発生して、それがちらつきとして認識
される可能性があります。そのため、一度の塗り替えで済むようにしないといけないのですが、
それを考えるのがちょっと頭の使いどころです。
 でも、頭がないから、今回はPICOのメモリ容量と速度にモノを言わせて、アンチョコな方法と
しました。すなわち、仮想的な画面をつくっておいて、そこを塗り替えたのちに、そのデータを
実際の画面に転送する方法です。これだと、無駄が無茶苦茶多い(95%くらいは無駄)ですが、
プログラムがスッキリします。そのため、描画に時間がかかりますが、実際に動かしてみて
遅いなあ〜と思うようなら改善しましょう。

なお、FESP5142-Doのグライコ版ではGAINは0.25dBステップでしたが、今回は0.1dBステップにしました。

ベースとなるグライコの表示画面ができた? あれ?ゲインの正負が反対だあ〜。

どうやってツマミを動かそう?
FESP5142-Doではタッチパネルが使えましたから、ダイレクトにツマミの位置を変更できましたが、
CONTROLLER UNITをつかう前提なら、スイッチとエンコーダしかありません。それを組み合わせて、
スムーズにツマミ群の位置を設定できるようにしないといけないです。
 そのため、次のような操作方法を考えています。
 エンコーダ: 選択されたツマミの位置を上下(-12.0dB〜+12.0dB)
 SW1,2   : ツマミの選択(左右)
 SW3    : ツマミ位置の設定方法の選択
         1)ツマミの元位置を基準にして、そのツマミのみエンコーダで上下
         2)前に選択されていたツマミ位置を基準にして現在のツマミ位置をエンコーダで上下

 SW4    : ツマミ操作モードを解除

一度は、こんな形で組んでみて様子をみてみましょう。となると、基板にスイッチとエンコーダを取り付けないと
いけないなあ〜。

本体ソフトに組みこんじゃえ! 2025.2.8

基板にスイッチやエンコーダを取り付けるくらいなら、いっそのこと実機に組み込んだ方が手っ取り早そうです。
それに、ソフトに関しても実機で動いているサブルーチンを使う必要があるのですが、
その部分を開発機に移植するのも面倒です。

ということでもあり、まずは実機側に取りついていたLCDをQVGAのTFTに変更です。
これについては、ほぼ表示用ライブラリの入れ替えで済みました。しかし、グラフィックディスプレーに
文字だけというのは味気ないです。

まずは表示器をLCDから入れ替えです。しかしTFTの取り付けが不安定だなあ〜。

TFTを仮配線で取り付けましたが、かなり不安定です。それに、パネル裏面が基板の端子等に接触しそうで怖いです。
念のために、絶縁テープを張ったりしましたが、それでも不安が残るなあ〜。
そこで、TFTパネル用の取り付け基板を作成です。
これで、安定してTFTパネルを取りつけることができます。
それに、この基板があればパネルの事前動作チェックも簡単にできます。


TFTパネルが載せられるように基板を作成です。


これで、安定して固定することができました。

表示機能は完成?

まずは、実機のソフトにグライコの調整画面だけを実装です。


基本の画面はこんな感じ。赤枠に変わったところが調整可能な箇所です。



グライコ調整時です。ツマミが赤のときは、その素子単体で上下します。


ツマミが緑のときは、その素子が左右に動いたときに前の素子のゲインをコピーします。

PCM5142待ち〜

実際にグライコ機能を実現させるためには、PCM5142があと2個必要ですが手元にありません。
既存のRenew DIV5142を使う手もあるのですが、基板間の連結がコネクタが直付けになっていることもあり、
改造が大変です。ということで、もう一枚RenewDIV5142を作成するための素子の到着待ちです。
来週にはくるでしょう。

しかし、グライコ以外の調整画面がキャラクターのみの表示も、ちと寂しいです。
クロスオーバフィルターの設定や、ディレイの設定なんかももっとビジュアル的にわかりやす
できたら、いいだろうなあ〜。

フィルター表示にとりかかりましょう! 2025.2.9

フィルターの表示をグラフィカルにするために、描画座標を計算です。
たぶん、この程度のことなら若い頃は暗算でもできただろうけど、今となったら
紙にかいてひとつづつ計算しないと、わけわからなくなってしまいます。

中学生の数学です。でも、ちょっと苦戦?(笑

周波数は対数扱いになっている点と、減衰率がoct単位になっているので、それをDecade単位に変換することに
注意です。それと、グラフの直線が枠外に飛び出さないように、チェックルーチンが必要です。

こんな感じで周波数特性をグラフ化です。

本来、LPFとHPFが近接した場合の処理もいれなければなりません。
たとえば、LPF=101Hz、HPF=100Hzとすると、平坦な部分はでません。そういった場合も
考慮すべきなのですが、まあそんな設定はありえないので、無視することにしました。
その場合はグラフが”又”みたいな形になると思います。
 やはりグラフ化すると、遮断特性の違いが視覚的にわかりやすいです。


グラフにすると遮断特性の違いがよくわかります(左:-24dB/oc、右:-288dB/oct)

このグラフの描画時間はキャプション描画を除けば、約25回/秒程度ありました。
ということで、一つのグラフを書き換える場合でも、すべてを書き直すことで対応できそうです。
高速にやろうとしたら、前の曲線だけを消して新しい曲線を書き直すようにすればいいのですが、
その過程で消えた必要な点(罫線や他のグラフの点)を元に戻さないといけないのですが、
そのためにはTFTのドット位置の情報の読み出しを行う必要があります。しかし、この基板では
読み出しのハード的な接続がないのでできません。ということで、CPUの早さに依存した
力技で対応させます。

あとは、フィルター周波数、ゲインなどの定数の入力機能を入れていきましょう。

段々ややこしくなるなあ〜

上のグラフをみていて、-288dB/octあたりになると、クロスポイトがわかりにくいです。
グラフの横軸(周波数)を再分割できるようにしたほうがいい感じです。
でも、これってややこしくなるなあ〜。

PCM5142到着〜 2025.2.10

予定通り月曜日にDIGIKEYからICが到着していました。
夜も遅いけど、イコライザ用の基板を作成です。


イコライザ用なのでPCM5142は2個だけ実装です。その他の部品も必要な部分のみを実装です。

本体に組み込みです。Renew DIV5142の一番下に取りつけます。その上にRenew DIV5142基板群と
一番上にCONTROLLER UNITがのっかります。もう全体で17階建てです。もう倒れそう(笑。


今回作成したイコライザ基板を取り付けました。この上にチャンデバ用のRenew DIV5142基板群
が乗っかります。


全体で17階建てです。矢印部分がイコライザ基板です。

今回のイコライザ基板はI2C-5に接続しています。電源を投入したら、I2C接続チェックで
問題なくI2C-5に2個のPCM5142のアドレスを検出しました。


イコライザ基板はI2C-5に接続していますが、2個のPCM5142は認識しました。
ちなみにe8,ea,ecはPrecision Delay基板のIC、80はDAいであるPCM9211のアドレスです。

もう遅いので、ソフトはまた後日に組んでいきましょう。

フィルター部分のグラフィック版 2025.2.22

まだすこし表示上のバグが残っているようですが、ほぼ完成かなあ〜。
画面右のOTHERSはその他の項目ですが、記号にしかみえませんが、
最下行に説明がでるようにしてみました。


これが基本画面です。


SW3で周波数帯表示をFULL.(10〜30000)、LOW(10〜300),MID(100〜3000),
HIGH(1000〜30000)で切り替えられるようにしました。これはHIGHの場合。



周波数の変更はエンコーダで行いますが、変化量はSW4で±1Hz、±1%、±3%、±10%で
切り替えるようにしました。

その他もだいぶできてきました


ディレイ関係の設定画面。


DACの設定画面


接続されている基板類。あれPrecision Delayが抜けているなあ〜。

このページではグライコ関係だけを扱うつもりでしたが、いつのまにか
QVGA表示器をつかった全体になってきているので、もとのページに一本にまとめて
いきましょう。でないと、だんだんややこしくなってきました。

とりあえず元に戻ります