トラ技 2019 年 5 月号付録 PSoC4100S 基板 (4)

トランジスタ技術 2019 年 5 月号付録 PSoC 基板 (CY8C4146LQI-S433) 用の無限音階オルガン・プログラム "st_p41s" のパッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。

トラ技 2019 年 5 月号付録 PSoC4100S 基板 (3)

2015 年 5 月 23 日付けの記事 (→こちら) と 2015 年 6 月 30 日付けの記事 (→こちら) で「PSoC 4200 Prototyping Kit」用に作った「タッチ鍵盤付き無限音階オルガン」基板を改造して、トラ技 2019 年 5 月号付録基板用に作り変えました。 この基板のタッチ…

トラ技 2019 年 5 月号付録 PSoC4100S 基板 (2)

CY8C4146LQI-S433 (PSoC 4100S シリーズ) での FF (Fixed-Function) モジュールの入出力は、任意のピンに割り当てることはできず、数か所の選択肢の中からひとつを選ぶ形になります。 その割り当て表は、デバイスのデータシートやトランジスタ技術 2019 年 5…

トラ技 2019 年 5 月号付録 PSoC4100S 基板 (1)

トランジスタ技術 2019 年 5 月号には、付録として Cypress CY8C4146LQI-S433 (PSoC 4100S シリーズ) を搭載した基板が付いています。 以前の記事で取り上げた「PSoC 42xx Prototyping Kit」(CY8CKIT-049) に搭載されている CY8C4245AXI-483 (PSoC 4200 シリ…

dsPIC33FJ64GP802 (28) --- 周波数シフター (12)

現状の周波数シフター・プログラム (2019 年 2 月 7 日付けの記事に hex ファイルを掲載) では、処理に余裕があったので、 2019 年 1 月 16 日付けの記事の実質 507 タップのヒルベルト変換器ではなく、タップ数を増やして実質 763 タップとしたものを使って…

dsPIC33FJ64GP802 (27) --- 周波数シフター (11)

2019 年 3 月 24 日付けの記事では、方形波を表すフーリエ級数表現の式を積分して、三角波のフーリエ級数表現が得られることを示しましたが、サイン/コサイン入れ替え版の式は求めていませんでした。 1.442-3. 式の左辺の積分を計算すると次のようになります…

Web サイト移転

2019 年 3 月 31 日に Yahoo! ジオシティーズのサービスが終了するのに対応して、ジオシティーズ上にあったWeb サイト「JO-MIDI-FM」 http://www.geocities.jp/pcm1723/ を XREA 上の http://pcm1723.g3.xrea.com/ に移転しました。 2019 年 9 月 30 日まで…

dsPIC33FJ64GP802 (26) --- 周波数シフター (10)

解析的には積分が難しい関数でも、べき級数としての表現が得られれば、その式を項別に積分して結果の式を求めることができます。 得られた級数を必要な精度を満たす項まで計算すれば、数値としての値が求まります。 Maxima にはテイラー級数 (Taylor series)…

dsPIC33FJ64GP802 (25) --- 周波数シフター (9)

前回の三角波のサイン → コサイン置き換え版を、数式処理システムの「Maxima」でフーリエ級数以外の表現で求めてみたところ、やはり、初等関数では表せない形になるようです。 まず、「方形波」を積分すれば「三角波」になるので、方形波のフーリエ展開の式…

dsPIC33FJ64GP802 (24) --- 周波数シフター (8)

偶対称の位置に配置した方形波のフーリエ展開である 1.442-4. 式のサイン → コサイン置き換え版である 1.442-3. 式 と、前回示した逆グーデルマン関数の定義 の右辺を比較すると、 係数 の有無 変数 と変数 の違い を除いては同じ形になっていることが分かり…

dsPIC33FJ64GP802 (23) --- 周波数シフター (7)

"Table of Integrals, Series, and Products" でのグーデルマン関数 (Gudermannian function, 関数名は「」と表記) の定義を引用します。

dsPIC33FJ64GP802 (22) --- 周波数シフター (6)

前回と同様に、"Table of Integrals, Series, and Products" から引用した式を示します。 まず、方形波の場合です。

dsPIC33FJ64GP802 (21) --- 周波数シフター (5)

以下、(1.441-1.) のような式番号が付けられている式は、 I.S. Gradshteyn, I.M. Ryzhik 著 Alan Jeffrey, Daniel Zwillinger 編 "Table of Integrals, Series, and Products", Seventh Edition, Academic Press からの引用です。 まずは、のこぎり波のフー…

dsPIC33FJ64GP802 (20) --- 周波数シフター (4)

ヒルベルト変換器を通すと、すべての周波数成分の位相が 90° 遅れるので、単一周波数の正弦波以外の一般の信号では、入力信号とは違った波形になります。 のこぎり波 / 方形波 / 三角波に対する出力波形を観測し、「理論値」と比較してみました。 まずは単一…

dsPIC33FJ64GP802 (19) --- 周波数シフター (3)

前回示したオブジェクト・プログラムでサポートしている 外付け 12.288 MHz 水晶振動子を使用した回路 外付け 16 ビット ADC を使用した回路 を示します。 ただし、簡単のため、電源の配線など前回の基本回路図で表されている部分は省略し、追加すべき部分に…

dsPIC33FJ64GP802 (18) --- 周波数シフター (2)

dsPIC33FJ64GP802 を使った「Bode frequency shifter」のプログラムの基本的な部分がほぼ機能するようになりました。 「スケルチ」などは、まだ実装していません。 クロックに関しては 内蔵 FRC オシレータ (7.37 MHz) 使用 外付け 12.288 MHz 水晶振動子使…

dsPIC33FJ64GP802 (17) --- 周波数シフター (1)

2018 年 11 月に開催された「アナログシンセ・ビルダーズ・サミット 2018」で、「公生32+」さんと「yama」さんが、「Bode Frequency Shifter」(以下「周波数シフター」と略記) の構成に基づいた (アナログ) シンセ・モジュールを出品されていました。 この周…

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

フィルタのユーザモジュールのウィザードでは、フィルタ仕様を入力して設計するほかに、外部のプログラムでコーナー角周波数を 1 [rad/s] として設計したフィルタの s-平面上の「極」の配置を入力して使うこともできます。 ELPF ユーザモジュールでは、「ノ…

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

SC ブロックを「フィルタ」として使うために特化した「ユーザモジュール」として、下の 6 種が用意されています。 BPF2 (2 次バンドパス・フィルタ) BPF4 (4 次バンドパス・フィルタ) LPF2 (2 次ローパス・フィルタ) LPF4 (4 次ローパス・フィルタ) ELPF2 (2…

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

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

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

「フルスペック版」スイッチトキャパシタ回路を下に再掲します。 この回路図では、積分器のフィードバック・キャパシタの値を「1 F (ファラド)」とする、正規化された形で表現していますが、実際の FCap の値としては、標準値で約 80 fF (フェムト・ファラド…

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 で、これは、…

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

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

dsPIC33FJ64GP802 (15) --- 無償で使えるフィルタ設計アプリケーション (2)

前回示した ディジタル・フィルタ設計プログラム (IIR_Design、FIR_Remez、FIR_Kaiser) — (三上直樹著・CQ 出版「はじめて学ぶディジタル・フィルタと高速フーリエ変換」のサポート・プログラム) http://www.cqpub.co.jp/hanbai/books/30/30881.htm は、上記…

dsPIC33FJ64GP802 (14) --- 無償で使えるフィルタ設計アプリケーション (1)

libdsp の IIR フィルタ関数では、フィルタ係数の生成には「dsPIC FD」(dsPIC Filter Designer) を使用することが前提になっています。 dsPIC FD にはフル機能版と機能限定の廉価版 (dsPIC FD Lite) がありますが、両者ともに「有償」で「無償版」はありませ…

dsPIC33FJ64GP802 (13) --- IIR フィルタ関数と Yデータ・メモリ・アクセス (2)

IIR フィルタ関数が範囲外の Y データ・メモリをアクセスすることで発生するドレス・エラーを防ぐ方法には、大きく分けて次の 2 種類があります。 「範囲外」アクセスの対象が RAM 非実装領域とならないように、RAM 中にダミーの変数を定義して「範囲外」ア…

dsPIC33FJ64GP802 (12) --- IIR フィルタ関数と Yデータ・メモリ・アクセス (1)

dsPIC の libdsp に含まれている IIR フィルタ関数 (IIRCanonic()、IIRTransposed()) では、割り当てられた Y データ・メモリの範囲外へ (不要な) アクセスを行っているため、場合によってはプログラムの停止、リセットの繰り返しなどを生じるおそれがあるこ…

dsPIC33FJ64GP802 (11) --- DSP 命令と DSP ライブラリ (9)

IIRCanonic() 関数と IIRTransposed() 関数を使ったプログラムの断片を下に示します。 フィルタ係数の配列の詳細は 2018 年 10 月 10 日付けの記事 (→こちら) に記載しています。 WaveSpectra による特性測定のために使ったプログラムでは、ふたつの 1/12 オ…

dsPIC33FJ64GP802 (10) --- DSP 命令と DSP ライブラリ (8)

「楽音」の「音名」でいうと「A」(880 Hz)と、「A#」(932.33 Hz) を中心周波数とする 1/12 オクターブ・バンド・フィルタふたつを IIRTransposed() 関数で実現し、内部で発生させたリニア周波数スイープのサイン波をフィルタリングした結果を下に示します。 …