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

 フィルタのユーザモジュールのウィザードでは、フィルタ仕様を入力して設計するほかに、外部のプログラムでコーナー角周波数を 1 [rad/s] として設計したフィルタの s-平面上の「極」の配置を入力して使うこともできます。
 ELPF ユーザモジュールでは、「ノッチ」となる「零点」の入力も必要ですが、こちらは s-平面上の位置ではなく、ノッチ周波数を入力します。
 MATLAB および GNU Octave には、ディジタル / アナログ両方に対応した楕円フィルタ設計関数「ellip( )」があるので、これを試してみました。
 GNU Octave で記述したプログラム (ELPF4.m) を下に示します。

続きを読む

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

 SC ブロックを「フィルタ」として使うために特化した「ユーザモジュール」として、下の 6 種が用意されています。

  • BPF2 (2 次バンドパス・フィルタ)
  • BPF4 (4 次バンドパス・フィルタ)
  • LPF2 (2 次ローパス・フィルタ)
  • LPF4 (4 次ローパス・フィルタ)
  • ELPF2 (2 次楕円ローパス・フィルタ)
  • ELPF4 (4 次楕円ローパス・フィルタ)

 2 次のフィルタは ASC + ASD のペアを 1 組使い、4 次のフィルタは ASC + ASD のペアを 2 組使います。
 SC ブロック間の接続は自動的に行われ、ユーザは入力の接続および出力の接続だけを指定すればすみます。
 キャパシタの値の設定も、「ウィザード」を利用すれば、周波数応答のグラフを見ながら調節することができます。

続きを読む

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

 オーバーサンプリング比 (OSR) = 100 の場合の回路を下に示します。 キャパシタの「値」は、SC ブロックのパラメタとして指定する数値 (整数値) を示しています。
 C1 は 0、あるいは 1 (通過域 ゲイン = 1 の場合) となります。
 CP および CPP は 0、あるいは 16 (通過域 ゲイン = 1 の場合) となります。

続きを読む

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

 「フルスペック版」スイッチトキャパシタ回路を下に再掲します。
 この回路図では、積分器のフィードバック・キャパシタの値を「1 F (ファラド)」とする、正規化された形で表現していますが、実際の FCap の値としては、標準値で約 80 fF (フェムト・ファラド) のキャパシタを単位 (CSC) として、その 16 倍あるいは 32 倍のいずれかを選択する形となっています。
 ACap / BCap / CCap については、CSC の 0 倍 ~ 31 倍の 5 ビット整数値で表せる倍率を選択できるようになっています。

続きを読む

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

 CY8C29466 や CY8C27443 などの代表的な PSoC1 チップには、全部で 12 個のアナログ・ブロックが含まれており、データシートや PSoC Designer の Chip Editor などでは下のように 3 行 4 列のアレイとして表記されます。

続きを読む

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

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

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

で、これは、すでに廃版となっている「CY3210-MiniProg1」キットの中身と同等のようです。
 現行の PSoC5LP Prototyping Kit が秋月価格で 1500 円で買えるのに比べると、安くなっているとは言え、微妙に高い気もしますが、PSoC1 のスイッチト・キャパシタ・フィルタには関心があるので買って帰りました。

続きを読む

dsPIC33FJ64GP802 (16) --- 1/12 オクターブバンド・フィルタを使った「グライコ」風表示 (1)

 1/12 オクターブバンド・フィルタを多数並べて、オーディオ用グラフィック・イコライザの「バー」風の表示をさせてみました。
 表示は、下の記事の Adafruit 1.8 インチ TFT LCD シールド互換のシールドを装着した Arduino で行い、1/12 オクターブバンド・フィルタを実装した dsPIC33FJ64GP802 とは I2C で接続しています。

1.8 インチ TFT LCD シールド (2) - シンセ・アンプラグド

 表示の様子を下に示します。 (写真をクリックするとモーション GIF による動画が表示されます。)

続きを読む