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

HX711 (1)

「重量計」への応用を主な用途とする 24 ビット ADC、「HX711」 (AVIA Semiconductor) を使ってオーディオ用 DAC の特性を測定してみました。 HX711 は「ひずみゲージ」を使った「ロードセル」に適した入力レベルとなっていて、電源電圧 5 V、内蔵 128 倍ア…

PIC16F145x (1) --- クロックの周波数変動

PIC16F1454/1455/1459 (以下 PIC16F145x と略記) は、Enhanced Mid-Range (14 ビット・コア) に属するマイコンで、USB (デバイス) モジュールを内蔵していることが特長です。 それぞれ、 PIC16F1454 — 14 ピン、アナログ・モジュールなし PIC16F1455 — 14 ピ…

PIC18F14K50 (19) --- aitendo USB-GPIO

先日 (3 月 24 日)、aitendo の店頭 (出入り口前の廊下に置かれたダンボールの中) で PIC18F14K50 使用の小さなマイコン・ボードを見つけ (単価 199 円)、2 つほど買ってきました。 そのままでは動作しませんでしたが、水晶発振回路のコンデンサを換装して正…

PIC18F14K50 (18) --- USB-Blaster もどき

Altera の FPGA/CPLD に書き込むための「JTAG ケーブル」として、現在はパラレル・ポート接続の「Byte Blaster MV」相当の自作品を使用しています。 「メイン・マシン」の PC にはパラレル・ポートがなく、「サブ・マシン」のノート PC のパラレル・ポートに…

FPGA 版 FM 音源 (74) -- FPGA 版 EG (18)

OPL3 のスロット・パラメタ・レジスタ・アレイは、アレイひとつ当たり 256 バイトのアドレス空間を占めています。 アレイ 0 とアレイ 1 とのふたつのアレイがあるので、合計では 512 バイトとなります。 これをホスト・プロセッサのアドレス空間にそのまま割…

FPGA 版 FM 音源 (73) -- FPGA 版 EG (17)

デュアル・ポート RAM を使ったレジスタ・アレイ・インターフェース部の Verilog ソースを下に示します。

FPGA 版 FM 音源 (72) -- FPGA 版 EG (16)

前々回の記事で述べたように、スロット・アドレスの割り付けには 8 バイト中に 2 バイトの「穴」(未使用領域) があり、これをどう扱うかで次の 3 つの方法が考えられます。

FPGA 版 FM 音源 (71) -- FPGA 版 EG (15)

Altera の内蔵メモリ・ブロック「M4K」では、名称に「4K」が含まれることから分かるように、ひとつのブロックで 4 K = 4096 ビットの容量を持ち、 1 ビット × 4096 ワード 2 ビット × 2048 ワード 4 ビット × 1024 ワード 8 ビット × 512 ワード 16 ビット ×…

FPGA 版 FM 音源 (70) -- FPGA 版 EG (14)

今回はスロット・パラメタ・レジスタ・アレイのホスト・インターフェース部についてです。 各スロットの発音パラメタは、継続的に該当タイム・スロットで「タイムリー」に供給される必要があります。 その一方で、ホスト側からのアクセスについてはなるべく…

FPGA 版 FM 音源 (69) -- FPGA 版 EG (13)

EG の本体回路だけでなく、周辺回路も含んで (無印) Cyclone にインプリメントした「op3_EG_cyc()」の Verilog ソースを下に示します。 モジュール名、ファイル名に含まれる「cyc」は「Cyclone」を意味しています。

FPGA 版 FM 音源 (68) -- FPGA 版 EG (12)

ステレオ 16 ビット・シリアル入力 DA 用送信モジュール「i2s_tx()」の Verilog ソースを下に示します。

FPGA 版 FM 音源 (67) -- FPGA 版 EG (11)

16 ビット入力 1 次シグマ・デルタ型 1 ビット DA モジュール「sdm1_16()」の Verilog ソースを下に示します。

FPGA 版 FM 音源 (66) -- FPGA 版 EG (10)

S/PDIF 送信モジュール「spdif_tx()」の Verilog ソースを下に示します。

FPGA 版 FM 音源 (65) -- FPGA 版 EG (9)

今回は対数 — リニア値変換モジュール「opl3_lb2lin()」についてです。 OPL3 では、サイン波 ROM や EG の出力は「真数」(リニア値) ではなく、 2 を底とする「対数」で表現されていて、対数値同士の加算後に対数 — リニア変換を行なうことによりハードウェ…

FPGA 版 FM 音源 (64) -- FPGA 版 EG (8)

2017 年 1 月 28 日付けの記事 (→こちら) の「周辺回路」部分の Verilog ソースを記載していきます。 まず、EG クロック・ジェネレータ・モジュール「opl3_EG_clk()」の Verilog ソースを下に示します。

FPGA 版 FM 音源 (63) -- FPGA 版 EG (7)

EG モジュールのトップレベル回路図「opl3_EG_top.bdf」を下に示します。 (図をクリックすると拡大します)

FPGA 版 FM 音源 (62) -- FPGA 版 EG (6)

EG スロット・メモリ・モジュール「opl3_EG_mem()」を回路図で表現したものを下に示します。

FPGA 版 FM 音源 (61) -- FPGA 版 EG (5)

EG コントロール・モジュール「opl3_EG_ctrl()」を回路図で表現したものを下に示します。

FPGA 版 FM 音源 (60) -- FPGA 版 EG (4)

EG アキュムレータ・モジュール「opl3_EG_acc()」を回路図で表現したものを下に示します。

FPGA 版 FM 音源 (59) -- FPGA 版 EG (3)

EG クロック・プリスケーラ・モジュール「opl3_EG_psc()」を回路図で表現したものを下に示します。

FPGA 版 FM 音源 (58) -- FPGA 版 EG (2)

もうずいぶんの間、YMF297 の測定の話からは離れており、この先しばらくは触れることもないので、今回から「YMF297 測定」をタイトルから外しました。 前回の回路では、EG モジュール内部の信号も引出していたのでピン数が 75 本と多く、100 ピンパッケージ…

FPGA 版 FM 音源 (57) -- YMF297 (OPN3/OPL3) 測定 (23) -- FPGA 版 EG (1)

EG 部分を Verilog HDL で記述し、Altera (無印) Cyclone (EP1C3T100C8) 上にインプリメントしました。 (具体的には CQ 出版「デザインウェーブマガジン」 2003 年 10 月号付属基板) 開発環境としては、 Quartus II Version 11.0 sp1 Web Edition ModelSim-A…

FPGA 版 FM 音源 (56) -- YMF297 (OPN3/OPL3) 測定 (22) -- EG シミュレーション・プログラム (2)

エンベロープ計算関数の「EG_module()」の宣言部分を下に示します。 int EG_module(uint16_t *eg_mem_p, int fs_en, int kon_rise, int kon_fall, int egt, int ar, int dr, int sl, int rr, int rof) 複数タイム・スロット対応になっており、時分割で複数の…