PSoCでWavファイルを再生させてみよう。音は光の次に面白いよね!

手軽にするため、データは32KBのROMに収まるように8KHz 8bit mono で作成します。
それでも3秒程度しか入りませんので、吟味した結果、題材はケネディ大統領のアポロ計画で有名な演説の1フレーズ、『We choose to go to the moon.』を選択しました。
このファイルをツールを使ってC言語ソースに変換して取り込み、PWM等で定期的にDACに出力すればとりあえず再生はできます
が、そのままでは音質が悪いのです。音が硬いというか。
とりあえず波形を見るとガタガタです。DACの特性で仕方が無いようです。
それをなんとかできるのがLPFモジュールということらしいので、これはやってみる価値はありそうだ。いや、やるしかない!
しかし当方、アナログは全くわからないwwので、どう設定したらよいかわからない。
ググっても情報は少ないし、あっても書いてある内容が理解できない。さてどうしたものか...
考えてもわからないので、やってみることにした。
DAC8の隣にLPF2を配置。LPF2のINPUTをDACからとし、フィルターデザインは意味不明なのでテキトーに設定。
コードを書いて配線し、実行するとスピーカーからはギゴガゴゴという何やら凄い音が聞こえたwww うはっww
いろいろフィルター設定を変えても、相変わらずギゴガギギだ。LPF2をSTARTさせてなくても音が鳴るし。何がダメなんだろう??はてさて弱った...
この状態から脱出するには実に10日以上を要した。恥ずかしい。
思い切って接続方法を換えてみたのです。DAC->LPFではなくて、DAC->Port->PGA->LPFとしたらギゴギャゴゴはなくなりました!何故DACからLPFへ直に接続するのがダメなのかわかりませんが、やっと前進できました。

また、その間にチョコチョコと調べたりして、フィルターデザインの基本ポイントがわかった。(ような気がする)
1.コーナー周波数はサンプリング周波数の1/2にする。(8KHzだったら4KHz)
2.LPFへ与えるクロックは 24MHz/Divide by nの値
これでやると、
『We choose to go to the moon.』
おおぉ、ちゃんと音がやわらかくなってる!波形もまぁまぁって感じ。ウホッ!
■DAC出力の波形
■LPF2出力の波形
(ちなみにコーナー周波数を2KHz、1KHzと小さくすると波形は丸くなりますが、だんだん音がこもっていきました)
しかし、まだ素直には喜べない状態であった。
聞き取りやすくはなったものの、シャーというノイズが目立つのです。
スイッチトキャパシタのため、ある程度はノイズが出るらしいけど、ここまででるものなのかなぁ...やはりまだ設定に間違いがあるのだろうか。それともオペアンプ(386BD)のせい?
遊びで使う分には十分で無視する事はできるかもしれないが、気になるのは気になる。
現時点でこの問題はクリアできていません。
とりあえず他ごとがやりたくなったのでw、一旦棚上げとして公開します。
回路図です。
プロジェクトファイルです。(WAVファイルからC言語変換ツールも同梱)
デザイナ: 5.0 SP6
デバイス: PSoC CY8C29466 5V
コンパイラ:ImageCraft
PSoC_WavSound.zip