PSoC4

新版FM音源プログラム (26)

gcc の「インライン・アセンブラ」で書いた ARMv6-M (Cortex-M0) 版の acc_calc_slot() 関数のリストを下に示します。 「中身」は armcc 版と同等です。

新版FM音源プログラム (19)

今回からは実行サイクル数の検討に入ります。 まずは、ARMv6-M アーキテクチャの Cortex-M0 である NXP LPC1114、Cypress PSoC4 から始めます。 アセンブリ言語で書いたスロット (オペレータ) 計算プログラムをコンパイルして得られたオブジェクトを逆アセン…

ムライボックス (21) --- ハードウェア (1)

PSoC4 の内蔵 UDB (Universal Digital Block) を使った "OR" ゲート回路に EXOR を追加して、ハード的に MIDI ポート出力信号の極性を反転できるようにしました。 回路図を下に示します。

ムライボックス (3) --- エコノミー版 (1)

「富豪版」つまり出力ポートの数だけ UART を用意するハードウェア構成の上で、ソフトウェアも「富豪版」にする場合のブロック・ダイアグラムを下に示します。

PSoC 4200 Prototyping Kit (32)

PSoC 4200 Prototyping Kit (CY8CKIT-049-42xx) 用の無限音階オルガン・プログラム "st_p4" のパッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。

PSoC 4200 Prototyping Kit (31)

タッチ・センサ電極は、形状や配置を自由に設計できるプリント基板で実現するのが本来ですが、ここでは前回と同様に、片面ユニバーサル基板に銅箔テープを貼り付けて実現することにしました。 ただし、前回とは違って、「裏面/ランドのある面/ハンダ面」に銅…

PSoC 4200 Prototyping Kit (30)

CapSense テクノロジは、「タッチ」の有無をタッチ電極の静電容量変化として検出する方式なので、精密な動作のためには精密な設定が必要になります。 「机上」の設計段階で、正確なストレ容量を推定することやノイズ環境の影響を正確に見積もることは不可能…

PSoC 4200 Prototyping Kit (29)

無限音階オルガン・プログラムが、ほぼできあがりました。 近日中に公開できると思います。 PSoC Creator 3.0 SP2 の GCC4.7.3 の最適化レベルを「速度優先」にした設定で、現状ではフラッシュ・sizeが約 27 Kバイト (約 81 %)、SRAM サイズが約 2.6 Kバイト…

PSoC 4200 Prototyping Kit (28)

いまさら新鮮味はないのですが、PSoC4 の CapSense 機能を利用してタッチ鍵盤を実現した無限音階オルガンを作っています。 無限音階オルガンでは、鍵盤は 1 オクターブ分の 12 鍵だけあればよく、PSoC4 の独立したピン 12 本に電極をつなぐだけで実現できま…

PSoC 4200 Prototyping Kit (27)

多重帰還 (Multple-Feedback) 型 3 次 LPF を試してみましたが、PSoC4 内蔵の OP アンプを使って、2 次および 3 次高調波のレベルが -80 dB 程度、歪率が 0.02 % 程度の結果が得られました。 フィルタの回路図を下に示します。

PSoC 4200 Prototyping Kit (26)

2015 年 3 月 2 日付けの記事 (→こちら) に示したように、LPF 出力で観測した 2 次高調波のレベルは基本波のレベルの -40 dB 〜 -60 dB 程度となっています。 アナログ部分を色々いじると高調波のレベルも変動するので、この特性はシグマデルタ変調 DAC のデ…

PSoC 4200 Prototyping Kit (25)

UART Bootloader Host GUI のプログラムで、DTR / RTS を操作して PSoC4 をブートローダ・モードに投入した後に (ホスト側の) 受信バッファをクリアするのを忘れていて、エラーになる場合がありました。 これは、すでに書き込まれている PSoC4 のユーザ・プ…

PSoC 4200 Prototyping Kit (24)

ホスト PC 上で実行する、PSoC 4200 Prototyping Kit (CY8CKIT-049-42xx) 用の「オート・リセット」版 Bootloader Host アプリケーション "p4ubhost" パッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。 (2015 年…

PSoC 4200 Prototyping Kit (23)

STmicroelectronics 社の STM32 シリーズでは、リセット時の BOOT0 / BOOT1 という 2 本の信号線の状態で 内蔵フラッシュから起動するか 内蔵システム ROM から起動するか 内蔵 SRAM から起動するか を選べるようになっています。 内蔵システム ROM にはブー…

PSoC 4200 Prototyping Kit (22)

今回はアプリケーション・ノート AN68272 で触れられている、もうひとつのタイプの UART Bootloader Host GUI についてです。 関連アーカイブ・ファイル AN68272.zip に含まれる UART Bootloader Host GUI サンプル・アプリケーションは Visual C# 2010 によ…

PSoC 4200 Prototyping Kit (21)

アプリケーション・ノート AN68272 では、次のふたつのタイプの UART Bootloader Host のサンプル・コートについて説明されています。 Bootloader Host コア部分の C ソース・コード Visual C# 2010 による UART Bootloader Host GUI サンプル・アプリケーシ…

PSoC 4200 Prototyping Kit (20)

ブートローダ経由で Prototyping Kit へのフラッシュ書き込みを行なうためにホスト PC 側で実行するアプリケーションのことを、Cypress では「Bootloader Host アプリケーション」と呼んでいます。 PSoC Creator には I2C / SPI / UART / USB HID それぞれの…

PSoC 4200 Prototyping Kit (19)

PSoC 4200 Prototyping Kit (CY8CKIT-049-42xx) 用のプロジェクト "pcnt_dac" パッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。

PSoC 4200 Prototyping Kit (18)

これまでの周期カウンタや DAC などを、ひとつにまとめたプロジェクトを作成中です。 近日中に公開します。 以下のようなコンポーネントをまとめたと言うか、「寄せ集めて」います。

PSoC 4200 Prototyping Kit (17)

電荷平衡型 VFC のディジタル・モノマルチのトリガ部分のディジタル回路を変更して、外付けアナログ部品を増やさずに、さらにハザードが出る可能性を減らしました。 ディジタル・モノマルチ部分の回路図を下に示します。

PSoC 4200 Prototyping Kit (16)

SdmDac16 のテスト・プロジェクトでは、1 ビット DAC 出力に下図のような内蔵 OP アンプを利用した Sallen-Key トポロジの 2 次バタワース LPF (fc = 4.8 kHz) を接続してアナログ電圧を得ています。 (このシリーズの記事の 1 回目に PWM DAC 用に使った LPF…

PSoC 4200 Prototyping Kit (15)

「入力モード」の FIFO、つまり CPU 側からデータを書き込み、UDB ハードウェア側からデータを読み出す設定の FIFO では、CPU「バス側」には FIFO の「空き容量」を示すステータス信号が、UDB ハードウェアの「ブロック側」には FIFO エンプティを示すステー…

PSoC 4200 Prototyping Kit (14)

カスタム・コンポーネントの作成法や、Datapath Configuration Tool の操作方法などについては詳しい説明を省略します。 以下の文書を参照してください。 AN82156: "PSoC® 3, PSoC 4, and PSoC 5LP – Designing PSoC Creator™ Components with UDB Datapaths…

PSoC 4200 Prototyping Kit (13)

UDB (Universal Digital Block) 内の「データパス」(datapath) モジュール 2 個と、サンプリング・タイミング発生用の TCPWM コンポーネント 1 個を使って (オーディオ帯域の) 16 ビット・データ入力シグマデルタ変調型 DAC を作りました。 シグマデルタ変調…

PSoC 4200 Prototyping Kit (12)

PSoC4 の内蔵アナログ・ブロックの OP アンプとコンパレータ、内蔵 UDB (Universal Digital Block) 上の PWM コンポーネントを利用して電荷平衡型 VFC (Charge Balancing Voltage to Frequency Converter) を構成し、内蔵 8 ビット電流出力 DAC (IDAC8) の特…

PSoC 4200 Prototyping Kit (11)

レシプロカル周波数カウンタ (周期カウンタ) のプログラム (の断片) を示します。 pcnt 変数、pcnt_Start() 関数、pcnt_Stop() 関数、calc_crt() 関数の定義はヘッダ・ファイル (pcnt.h)、C ソース・ファイル (pcnt.c) として独立させ、main.c と同じフォル…

PSoC 4200 Prototyping Kit (10)

タイミング・チャートの形で表現したレシプロカル周波数カウンタ (周期カウンタ) の処理の概要を下に示します。

PSoC 4200 Prototyping Kit (9)

レシプロカル周波数カウンタ (周期カウンタ) としてのソフトウェア構成は、以前に作成した Arduino でレシプロカル周波数カウンタ・ライブラリと同様にしました。 入力信号をカウンタのキャプチャ入力に直結しているので、入力周波数のレートで割り込みが掛…

PSoC 4200 Prototyping Kit (8)

PSoc Creator 上のタイマ・コンポーネントの配置を下に示します。 Timer モードの TCPWM コンポーネントを 2 つ配置して、クロック入力、キャプチャ入力を並列に接続しただけです。 クロック入力は HFCLK (High Frequency CLocK) から得た 48 MHz クロックを…

PSoC 4200 Prototyping Kit (7)

前回の記事の最後の式を再掲します。 n = (a2 - a1) · m1 + a1 この式を見ると (a2 < a1) の場合に右辺第 1 項が負となり、 n の値も負になることが分かります。 + a1 の項も効いてきそうな気がしますが、前回も述べたように、(a2 - a1) を 16 ビット左シフ…