FESP5142-Doのグライコは実現するか?の巻き! 2020.1.18

FESP5142-Doはパラメトリックイコライザーとしてリリースしました。それに対してFESP5142については
パラメトリックとグラフィックイコライザの両方を搭載しています。FESP5142とFESP5142-Doでは搭載している
PICはピンの数は違いますが、どちらも64kBのROM容量を用いているので、やろうと思えばFESP5142の
ソフトをFESP5142-Doに移植することは可能です。
 ただ、FESP5142-Doでは入力にはタクトスイッチしかありませんので、グラフィックイコライザのような各周波数の
フィルター素子毎のゲイン設定値を入力するのは、あまりにも大変そうなのであまり実用的ではないと思っています。
その点、FESP5142にはロータリエンコーダが搭載できますので、入力はまだ簡単です。
本当は、メーカ品のようにスライドVRを一杯並べるのか操作の面でも楽ですし、なんといっても迫力ありますが
なかなか自作するのも大変です。

 さて、FESP5142-Doは小さい基板ですが、搭載するICの数も少ないのでパターンを描く分には余裕がありました。
最初は機器間の間に隠しスパイスのような使い方をイメージしたので、1/2サイズにしようかとも思っていましたがそれでは小さすぎるので
STDサイズにしました。でも、ちょとサイズをもてあますこともあり、ちょうどそのころに興味のあったTFT液晶のパネル
搭載できるパターンにしておきました。なにやらARDUINOあたりによく使われるもののようですが、タッチパネルもつかえるので
ひょっとしてグラフィックイコライザーの設定がタッチパネルでできれば面白いかな〜とも考えていました。

 折角、TFT液晶パネルのパターンも設けているので、まずはグライコが実現可能かどうかの検討から初めてみました。

最大の懸念はメモリー容量

FESP5142にはパラメトリックイコライザとグラフィックイコライザーの両方をのせていますが、
結構、PCM5142関連の命令の容量が大きいので結構メモリーを圧迫しています。


FESP5142ではパラメトリックイコライザとグラフィックイコライザーで現時点で95%のROMをつかっています。

 現状のソフトをそのままTFT液晶パネル用に移行するにしても、追加でフォントキャラとグラフィック関連ルーチンの追加が必要で
プログラムは113%程度になる見込みなので、実現は難しいでしょう。
 しかし、パラメトリックイコライザの機能を省略すれば簡単な試算で102%です。これなら、
なんとか押し込めるかもしれません。そのためにも、プログラムもできるだけ無駄を排除してメモリーの節約をする必要があります。

FESP5142
(パラメトリック&グラフィック)
FESP5142-Do
(パラ&グライコ) 想定
FESP5142-Do
(グライコのみ) 想定
パラメトリック
PCM5142命令コマンド
9.4%(6kB) 9.4%(6kB)
グラフィック
PCM5142命令コマンド
7%(4.5kB) 7%(4.5kB) 7%(4.5kB)
フォントキャラ 7%(4.5kB) 7%(4.5kB)
グラフィック関連 18%くらい?(12kB) 18%くらい?(12kB)
プログラム本体 78.6% 78.6% 70%くらい?
トータル 95% 113%
(こりゃ無理?)
102%くらい?
(なんとかなる?)

チャレンジしてみましょう! 2020.1.18

なんとか、プログラムが治まる可能性もみえてきたので、ここはチャレンジです。
そうと決まれば、FESP5142-DoにTFTの液晶パネルを実装して、動くかどうか確認してみました。


FESP5142-Doに480×320の液晶パネルを搭載して、簡単なお絵かきソフトを入れてみました。

さてさて、容量内に納まるかな・・・?

まずは画面のデザインをするために、つくった方眼紙に書き込んでイメージを膨らまします。
さすがに480×320の画面があると、一画面で多くの情報がはいります。
なんせ、128×64にくらべると19倍弱の素子数がありませすからね。
128×64の場合は1ドットも無駄にできませんでした。


方眼紙に画面レイアウトを描いて検討です。

まずは、プログラムの骨子をコーディング

まずは、プログラムの骨子のコーディングにかかりますが、パラメトリックイコライザに関する部分を
がんがんと削っていきます。予想外に多いことがわかりました。
それに、今回の画面は1画面で済むので、プログラムの構造もスッキリしてくるので
骨子だけの部分を書いてメモリー容量は77%に納まりました。思っていたよりは少ないです。



骨子だけだと、意外とコンパクトに納まりました。

さて、ここからが操作性等を考えて、プログラムがどんどん肥大化していきます(笑。
ても、一旦コンパイルが通って容量が見えるようになると、付け足しでの増加量も見えてくるので、
作業的には楽です。

現在、ROM使用率80%
 まずは骨子の部分が動くようにバグ取りです。
まずは動作エラーがなくなるようになりましたが、この時点でROMの使用率は80%に上がりました。
しかし、せっかく65K色のカラー表示ができるのですが、ほぼ白黒です(笑。
こりゃ、寂しい・・・・。


骨子の部分が動き出しましたが、表示が寂しい・・・・

 すこし懸念があったのは、ゲイン設定の表示の遅れですが大丈夫そうです。
 ゲインを1つ動かせば、アダプティブモードでの再計算を行って、複数個のフィルターエレメントへの定数書き換え
のためのI2C通信、そして画面描画と色々な処理をしなくてはなりません。流石にタッチペンをさっと動かしたのでは
描画の遅れ(ゲイン設定が間に合わない)が生じますが、普通に動かす場合は十分に追従してくれるようです。
さすが64MHzのPICです。

現在、ROM使用率87%

いろいろとプログラムを弄っていたら、だんだん容量が増えてきました。
現時点で87%まできましたが、ほぼバグだしは終わったかな?
それにしても、あまりカラーは使っていないな〜。青、緑、赤そして黒と白程度です。
中間色はほぼありません・・・・。


こんな感じです。

まずは、これで実戦に用いて操作性などの確認をしていきましょう。

ちなみに、こんな感じで動きます(MP4の拡張子)。

集中バグ取り〜、ただいまROM使用率87% 2020.1.20

布団にくるまり、ヘッドホンで聞きながらデバッグとあわせて音楽を楽しみました。
2個ほど些細なバグがあったのと、表示等で気になるところがあったので、メモメモです。
で、ほぼチェックも煮詰まった感じもするのでおもむろに修正です。
あわせて、隠しコマンドもつくりました。ある場所をタッチすると、実際にフィルターに書き込むゲイン値
を表示するようにしました。デフォルトはアダプティブモードで動いているので、画面の設定値がかならずしも
フィルターに設定される値ではありません。


通常はアダプティブモードで動いています。



ある場所をタッチすると実際にフィルタに設定する値を表示します。

使ってみた感触としては、ゲイン特性の曲線がすばやく設定できるので、
楽曲にあわせて特性や、自分の好みに合わせた特性を探るのに便利です。

この音に慣れてくると、オリジナルのフラットな特性では物足りなくなります。
オーディオで言われる「原音再生」から外れる気もしますが、「心地よい音」
を求めるのもありかな〜っと。それこそオーディオの楽しみかもしれないと
感じてしまいます。
 
ああ、そろそろ寝よ・・・・・・。


ただいまROM使用率86% 2020.1.20

すこしプログラムを見直しました。ゲイン設定の分解能はいままでは0.5dBでしたが、
これを0.25dBとしました。グラフィック表示の分解能があがったことに対応させました。
修正ついでに、プログラムに不要なとことも削除していると逆に使用率が低くなってしまいました。

ややこしいな〜
ここでつかった液晶パネルは下記のものです。
1750円とすこしお高いですが、480×320と画素も多いし、タッチパネル付きだし、それに送付時の梱包もちゃんと箱に入っていたので
安心できました。


これをつかっています。

で、さらに探すとおなじようなもので安いものがあるのですが、商品タイトルに「タッチスクリーン」とあるので、つかえるかと思いきや
説明には「タッチ:いいえ」とあるので、これは使えません。名称がものすごくややこしいです。


これはつかえそうで使えません。抵抗線式のタッチパネルがありません。

リリースします 2020.1.24

製作マニュアル:FESP5142-Do-GEQ_Manual.pdf

キットリストです:FESP5142-DoGEQ_KitList.pdf

LCD付きのキットもラインアップに入れましたが、中華製は信用ならないので動作確認の上、発送します。

ちょっと改造! 2020.3.1
FESP5142-Doの入出力は基本はSPDIFだけれど、DSPのPCM出力があれば便利なので
ちょっと改造しました。FESP5142-DoにPCM信号の出力端子を設置です。


場所はこの部分を活用して取り付けます。このPADは基板のデバッグ用に設けた
GND端子なので、これを10PコネクタのPin2,4,6,8に割り振ります。



こんな形でピンヘッダをとりつけます。


ピン近くの端子から51Ωのダンピング抵抗でピンヘッダへ配線です。


こんな感じで接続です。



あとは10Pのフラットケーブルを使えば、色々なDACに接続できます。


新しく買ったGLCDが動かない?2022.4.17

書斎のシステムは2WAYの小型スピーカのため、低音を持ち上げるためにFESP5142-Doのグラフィックイコライザ―を
接続しています。簡単にイコライジングが変更できることもあって、メイン用にも常設すべくもう1台作ろうと思って、
TFT液晶(GLCD)を買ってみました。 KUMANというメーカのGCLDを使っていましたが、みつからなかったので
違うメーカのものを選択です。もちろんピン配置が異なるとこまるので、少なくとも外見は同じものを購入です。
この手のGCLDは色々なメーカから沢山でていますので、購入自体は困りません。
問題は動くかどうかですが・・・・。まあ、ピン配置なんてどれも同じでしょう(楽観的です)

書斎のシステムにはFESP5142-Doのグラフィックイコライザ―をバラック状態ですが接続しています。
PC連動なのでほぼ24時間連続通電状態です。



GLCDはAMAZONで簡単に入手できます。
どれも同じでしょう!

動かない・・・・・

新しいGLCDが到着したので、さっそく動作確認のため現有のものと取り替えて起動です。
問題なく液晶画面は表示されましたが、肝心のタッチペンが動きませんせん。 タッチペンが
使えないと、キーボードとマウスのないPCみたいなものです。 なにもできません。
 そういれば、以前にも同じことがあり、そのときは不良品を掴まされたかとおもって諦めましたが、
流石に2回連続はおかしいです。ひょっとして、なにかが違うのかもしれません。
すくなくとも液晶自体の表示は問題ないので、タッチペンすなわちタッチスクリーンのなにかに
違いがあるのかもしれません。こりゃ、しらべてみないと!


左がKUMANのGLCD. 右が今回購入したGLCD。外観はほとんど同じです。 でも配線がすこし違うかな。

ピンの使い方が異なるんだ〜!
 色々と調べてみて、タッチスクリーンにつかうピンの配置が違うことがわかりました。
タッチスクリーンは、いわゆるスマホなどで使われている静電容量型のもではなく、抵抗式の安価なものです。
そして、その抵抗に繋がる端子はGLCDのピンのデータと共用になっていますが、その共用の仕方が違いました。

 ほんとに、こんなものは統一しておいてほしいものです。

具体的には下図のようは配置になっていました。全然ちがうじゃん!これじゃ動かないわけです。


GLCDのタッチスクリーン端子の配置、4線式の抵抗タッチパネルなので、どのラインがどの駆動線に繋がっているかが重要です.

ソフト変更・・・・・!?

ピンの機能がわかったので、それにあわせてソフトを改造しましょう。で、改造しようとして色々と問題点がありました。
<助かった点>
 タッチスクリーンの位置検知のためにADCが必要だが、たまたまADCが使えるPICのピンが対応していました。

<困った点>
 タッチされていないときは、入力がフロートになるのでそれを避けるためにプルダウン抵抗を仕込んでいたが、
 購入したGLCDではピンが異なるため、既存のプルダウン抵抗がつかえない。


既存のGLCDでは必要な端子にはフロートを避けるためにプルダウン抵抗を
入れていますが、今回のGLCDとは場所が異なるので役にたちません。

さてさて、どうしよう?

ピンの配置が異なる点については、ピン定義を変更するだけで済みそうです。購入したGLCDもADCが使えるピンに配置されていて
助かりました。でも、問題はタッチを検出するために必要なプルダウン抵抗のあるピンがつかえません。さてさて、どうする?
一番簡単なのは抵抗を追加することですが、ちょっと不格好になってしまいそう.
 幸運なことに、それらの端子はPICでのプルアップが可能な端子になっていました。 すなわちプルアップ状態にしておいて、
タッチされたら低電圧になることを利用すればいいわけです。 しかしながら、いままでプルダウンされていた端子を使っていたので、
電圧が高くなったことでタッチを検出していましたが、ロジックがまったく反対になってしまいます。まあ、面倒ですが、H/Wの改造なしに
変更できるわけですから仕方ないかな〜。

ソフト改造!

 折角改造するなら、ついでに接続されたタッチパネルがKUMANのメーカのものか、新しく購入したGLCDタイプのものかを
判別するようにしておいて、どちらのGLCDが接続されても動くようにしておきましょう。そうすれば、違うGCLDを接続して
動かなくて焦ることもなくなるでしょう。


タッチパネルの区分もできるようにしてみました。T2はTYPE−2という意味でKUMANではないという区別です。


ソフトも新しくなってバージョン2となりました。

あたらしくリリースするソフトもバージョン2で行いましょう。

教訓!
 同じようなパーツでも、外見は同じでも中身が違うと心せよ!(笑


(つづく?)