PSoC1 (1) --- スイッチトキャパシタ・フィルタ (1)

 1 か月ほど前、秋葉原に行った際に、秋月の店頭で「サイプレスプログラマー/ 開発セット」がジャンク扱いで 2000 円で売られていました。
 中身は、

  • MiniProg1
  • USB ケーブル
  • MiniEval1 ボード
  • CY8C29466-24PXI
  • CY8C27443-24PXI
  • ソフトウェア CD

で、これは、すでに廃版となっている「CY3210-MiniProg1」キットの中身と同等のようです。
 現行の PSoC5LP Prototyping Kit が秋月価格で 1500 円で買えるのに比べると、安くなっているとは言え、微妙に高い気もしますが、PSoC1 のスイッチト・キャパシタ・フィルタには関心があるので買って帰りました。
 PSoC Designer および関連アプリケーション・ノート (AN2168) では、PSoC1 の SCF(Switched Capacitor Filter) の設計方法として次の 3 種の方法が用意されています。

  • コンソール・アプリケーションの「FilterCalc.exe」 (AN2168)
  • Excel マクロ (PSoC Designer)
  • フィルタ設計ウィザード (PSoC Designer)

 1 番目の FilterCalc.exe では、(すでに求まっている 2 次セクションの) カットオフ周波数、Q、およびその許容誤差、そしてサンプリング周波数 の値から、伝達関数の分母の部分を実現するキャパシタの値の組を (複数) 求めるものです。
 具体的には、C2 / C3 / C4 / Ca / Cb の 5 個のキャパシタの値だけが求まり、残りの C1 については、 HPF / BPF / LPF などの条件に応じて計算する必要があります。
 2 番目の Excel マクロでは、フィルタの要求仕様から、(LPF の場合) バタワース / 0.1 dB リップル・チェビシェフ / 1 dB リップル・チェビシェフ / ベッセルの各特性のフィルタを設計できます。 極の配置を与えて設計することもできます。 (2018 年 12 月 19 日追記: 調べてみたところ、マクロ (VBA プログラム) は使われておらず、セル内の計算式だけで構成されているようです。)
 Excel ではなく、LibreOffice Calc で実行した例を下に示します。 (図をクリックすると拡大します)

lpf4_excel.jpg

 3 番目のウィザードは、チップ・エディタで配置したフィルタのインスタンスを右クリックして現れるメニューから呼び出すものです。 LPF4 の場合のスクリーン・ショットを下に示します。 (図をクリックすると拡大します)

lpf_1k5_27443_wiz.jpg

 このウィザードでは、設計結果のキャパシタ値の設定も自動でしてくれて、便利になっています。
 dsPIC による「グライコ表示」で、内蔵 SAR ADC を使う場合に必要なアンチ・エイリアス・フィルタを PSoC1 で作ってみました。 ユーザ・モジュールの「LPF4」と「PGA」を配置しています。

 PGA のゲインは 8 倍に設定しています。
 LPF はカットオフ周波数

1592 [Hz] = 104/(2π) = 10 [k rad/s]

で、サンプリング周波数 93.75 kHz の 4 次バタワース・フィルタとしています。 前述のウィザードの例がこの設定になっています。
 WaveGene + WaveSpectra で TSP (Time Stretched Pulse) 法で特性を測定した結果を下に示します。

 プログラム書き込み/電源供給を行っている MiniProg1 を接続している PC と、サウンド入出力を行っている PC は別なので、それらのグラウンドの取り回しの影響か、あるいはノイズの影響か、分かりませんが、高域での減衰量が 60 dB 足らずで頭打ちになっています。