2015-01-01から1年間の記事一覧

PSoC5LP Prototyping Kit (5) --- SPDIF_Tx と DMA (4)

「ダブル・バッファ」は、その特性上、常にどちらかのバッファが「使用中」で、「空き」があるのはもう片側のバッファのみです。 オーディオ・サンプルを生産する側のソフトウェアから見れば、常にバッファ全体の半分の容量しか利用できません。 「ダブル」…

PSoC5LP Prototyping Kit (4) --- SPDIF_Tx と DMA (3)

PSoC5LP の DMA で使用する TD (Transaction Descriptor) には、 ソース・アドレスの下位 16 ビット デスティネーション・アドレスの下位 16 ビット 転送バイト数 (Transfer Count) 各種フラグ・ビット (Property) 次の TD 番号 (Next TD) の情報が含まれて…

PSoC5LP Prototyping Kit (3) --- SPDIF_Tx と DMA (2)

PSoC5LP では、周辺モジュールは「PHUB」(Peripheral HUB) と称するバス・マトリクスを介して Cortex-M3 コアの AHB と接続されています。 DMA コントローラは PHUB の機能の一部として実現されており、内部レジスタの名称としても「PHUB_〜」という形式で命…

PSoC5LP Prototyping Kit (2) --- SPDIF_Tx と DMA (1)

今回は PSoC5LP の SPDIF_Tx コンポーネントと DMA モジュールについて取り上げます。 SPDIF_Tx コンポーネントは UDB (Universal Digital Block) 約 4 個分を費やして実現されており、次のような仕様となっています。 サンプリング周波数の 128 倍のクロッ…

PSoC5LP Prototyping Kit (1) --- KitProg

「PSoC5LP Prototyping Kit」を購入しました。 今回は「KitProg」部分と、電源回りの回路について述べたいと思います。 「KitProg」は「MiniProg3」の SWD プログラマ / SWD デバッグ・プローブ / USB-I2C ブリッジ相当の機能を実現したものです。 「MiniPro…

FPGA 版 FM 音源 (42) -- YMF297 (OPN3/OPL3) 測定 (7)

次の 6 つの Verilog-HDL ファイルを示します。 tb_opl3_op.v —— テストベンチ opl3_op.v —— サイン波発生部本体 opl3_slb_rom.v —— log2 magnitude サイン波 ROM slbtab_opl3.memh —— 上記 ROM の初期化データ opl3_lb2lin_rom.v —— log2 magnitude — リニ…

FPGA 版 FM 音源 (41) -- YMF297 (OPN3/OPL3) 測定 (6)

OPL3 のオペレータの EG 部分とピッチ発生部分とを除く、サイン波生成部分を Verilog-HDL で記述し、ModelSim でシミュレーションしてみました。 出力波形は、ディジタル・データとして、実チップ (OPL3 モードの YMF297) の出力を S/PDIF 経由でキャプチャ…

FPGA 版 FM 音源 (40) -- YMF297 (OPN3/OPL3) 測定 (5)

ほぼ 1 年ぶりに、OPL3 モードに設定した YMF297 の出力を S/PDIF 経由でキャプチャしてみました。 それは、下の記事に示すように、フィードバック量が多い場合に出力波形が振動的になる現象を追求するためです。 FM音源プログラム(20) -- オペレータ(1…

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

STM32F4xx シリーズの DMAC は STM32F1xx シリーズの DMAC に比べて機能が拡張されており、ハードウェアで「ダブル・バッファ」機能をサポートしています。 これは、メモリ・ベース・アドレス・レジスタを「2 面」の DMA バッファに対応して 2 組持っていて…

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

BSP_AUDIO_OUT_Init() で初期化したあとは、 BSP_AUDIO_OUT_Play(uint16_t* pBuffer, uint32_t Size) で実際に DMA 転送によるオーディオ・データ出力を開始します。 第一引数 pBuffer は、配列要素がハーフワード (16 ビット) の DMA バッファ配列の先頭へ…

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

前回までの話は BSP (Board Support Package) ライブラリの「固定部分」を組み込むための手順でした。 手順 5. はユーザ・アプリケーションから API (Application Programming Interface) 関数を介して BSP ライブラリを利用する方法で、手順 6. は BSP ライ…

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

前回の記事の手順 3. に示した、開発環境にコンパイル/インクルード対象として登録すべき BSP_AUDIO_OUT 関係のファイルを下に示します。

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

STM32CubeFx ライブラリでは、HAL (Hardware Abstraction Layer) ライブラリ、BSP (Board Support Package) の他に、各ボード用のサンプル/デモ・プロジェクトが含まれています。 例として、STM32CubeF4 V1.7.0 の場合のフォルダ構成を下に示します。 主にST…

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

STM32CubeMX で新規プロジェクトを立ち上げる際のダイアログで「MCU Selector」タブではなく「Board Selector」タブを選ぶと、選択したボードで使われているピン (ポート) のコンフィギュレーションがあらかじめ設定されたプロジェクトが生成されます。 ただ…

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

BSP (Board Support Package) とは、その名の通り STMicro 製の Nucleo ポード類、Discovery ボード類、および各種の評価ボード類に実装されているペリフェラルをサポートするドライバ類のパッケージです。 これらは、以前の「Standard Peripheral Library」…

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

「ペリフェラル初期化 C ソースコード・ジェネレータ」である STM32CubeMX では、以下の開発環境によるビルドに対応しています。 ARM/Keil MDK-ARM IAR EW-ARM Attolic TrueSTUDIO AC6 SW4STM32 このうち、最初の 3 つは商用の開発環境で、STMicro 以外の他…

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

過去、いろいろなマイコンに対して FM 音源プログラムを移植して来ましたが、その中身自体は数年前に大きく書き直してからは基本的に変わっていませんでした。 8 ビット AVR 用を除けば、当初からフラッシュがたくさんあるマイコン用として、スピード重視で…

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 それぞれの…