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

ソフト S/PDIF トランスミッタ (5)

前回の BMC 変調までの話で S/PDIF の光送信モジュールへ出力する「信号波形」に対する「ビットマップ」が準備できたことになります。 あとは、メモリに展開されたこのビットマップを実際の連続したシリアル・ビット列に変換するのは SPI/I2S モジュールおよ…

ソフト S/PDIF トランスミッタ (4)

オーディオ・データに前回説明したような制御/情報ビットを加え、サブフレーム/フレーム/ブロック構造を実現した段階では、サンプリング周波数 fs の 2 ch オーディオ・データに対し 1 フレームあたり 64 ビットで構成されるので、ビット・レートとしては (6…

ソフト S/PDIF トランスミッタ (3)

S/PDIF のブロック/フレーム/サブフレーム構造の図を下に示します。 図の左側が時間的に先に、右側が時間的に後に送信されます。 これは伝送すべきオーディオ・データと、それに付加する制御/情報ビットについて表したもので、実際に光ファイバなどを通じて…

ソフト S/PDIF トランスミッタ (2)

S/PDIF では、後述するようなブロック/フレーム/サブフレーム構成と BMC (Biphase Mark Code) 変調により、48 kHz のサンプリング周波数に対しては、ビット・レート 128 × fs = 128 × 48 [kHz] = 6.144 [Mbps] のビット・ストリームとして送信されます。 こ…

ソフト S/PDIF トランスミッタ (1)

ハードウェア S/PDIF 送信チップを使わずに、マイコン内蔵の SPI/I2S, DMA モジュールとソフトウェアのみで S/PDIF トランスミッタ (fs = 48 kHz) の機能を実現するプログラムを作りました。 現在のところ、対象のマイコンは Nucleo F401RE/F411RE で、プロ…

FPGA 版 FM 音源 (39) -- YMF297 (OPN3/OPL3) 測定 (4)

YMF297 を OPL3 モードで動作させると、1 オーディオ・フレームあたりのビット・クロック数が 68 に変化するので、DAC 出力のサンプリング周波数を 48 kHz に保つためには、YMF297 に供給するマスタークロック自体の周波数を変化させなければなりません。 そ…

FPGA 版 FM 音源 (38) -- YMF297 (OPN3/OPL3) 測定 (3)

古い MUSE-NTSC コンバータの基板から外してきた S/PDIF トランスミッタ (SONY CXD1211P) をつないで 48 kHz S/PDIF にデータを流せるようになりました。 OPNA モードでは LRCK のデューティーが 50 % ぴったりにはならないのですが、特に問題はなく、左右チ…

FPGA 版 FM 音源 (37) -- YMF297 (OPN3/OPL3) 測定 (2)

Nucleo F401RE と YMF297 との間の配線を完了させ、レジスタ・アクセスできるようにしました。 (リセット信号は 8 番ピンのみに接続しています) いろいろと探っていくうちに、OPN モードと OPL3 モードとの切り替え方法も判明しました。 N/L# (32 番ピン) は…

FPGA 版 FM 音源 (36) -- YMF297 (OPN3/OPL3) 測定 (1)

今回は、「FM音源ガチャ」で入手した YMF297 についての話題です。 このチップは、 YM2203(OPN),YM2608(OPNA),YMF288(OPN3) などの「OPN」系のモードと、 YMF262(OPL3),YMF289(OPL3-L) などの「OPL3」系のモードとの、 どちらかに切り替えて動作させること…

Nucleo-F401RE 用FM音源プログラム -- TGF401RE (1)

6 月 24 日付けの記事では、STM32F4-Discovery 用のFM音源プログラム TGSTM32F4 に手を入れて Nucleo-F401RE にも対応させるつもりでしたが、方針を変更して、Nucleo 用のプログラムは独立させることにしました。 周辺モジュールの操作部分は STM32Cube を…

STM32F4-Discovery/Nucleo-F401RE 用FM音源プログラム -- TGSTM32F4 (15)

STM32 の内蔵モジュールを利用するためのライブラリとして、これまで STMicroelectroics 社は「StdPeriph_Driver」を提供してきましたが、現在は後継の「STM32Cube」(総称) に移行が始まっており、「StdPeriph_Driver」は新規開発には推奨されないものとなっ…

STM32F4-Discovery/Nucleo-F401RE 用FM音源プログラム -- TGSTM32F4 (14)

久しぶりに秋葉原へ出かけて、 9.216 MHz 水晶振動子 (秋月) Nucleo-F401 (秋月) FM 音源チップ YMF297、YM2610 (FM 音源ガチャ) PIC32MX250F128B (秋月) などを買ってきました。 FM 音源チップや、PIC32MX については別の記事で触れることにして、今回は ST…

FPGA 版 FM 音源 (35) -- YM2151 (OPM) 測定 (3)

2011 年 2 月 11 日付けの記事 (→こちら) での YMF262 (OPL3) のアタック計算回路と同様の回路を、YM2151 (OPM) に対して書いてみました。 原理を示すもので、細かいコントロール等については表現してありません。

FPGA 版 FM 音源 (34) -- TX7 (OPS) 測定 (1)

今回は、どこのご家庭にもある TX7 のオーディオ出力を S/PDIF でキャプチャできるようにする改造の話です。 といっても、まだ初期の段階です。 TX7 は、 DX7 の音源部のみを取り出したものに相当し、YM2128 (OPS: Operator Type-S) と YM2129 (EGS: Envelop…

FPGA 版 FM 音源 (33) -- YM2151 (OPM) 測定 (2)

YM2151 (OPM) の EG の測定で、 EG の更新頻度はサンプリング周波数 fsの 1/3 (3 サンプルごとに更新) (キー・レート・スケーリング適用後の) レートの上位 4 ビット (R′) の表現で「12」が ロー・レートとハイ・レートの境界になっている ロー・レートでの…

FPGA 版 FM 音源 (32) -- YM2151 (OPM) 測定 (1)

YMF262 (OPL3) ではオペレータ出力波形に正弦波だけでなく、各種の波形を選べるので、 WS = 6 として「フルスケール矩形波」を選択 F-NUMBER = 0 (オペレータ周波数 = 0) として、フェーズ・アキュムレータを 0 に固定 することにより、波形出力としてフルス…

FPGA 版 FM 音源 (31) -- YM2151 (OPM) インターフェース回路 (1)

Nuvoton NUC120 基板上に YM2151 (OPM) のインターフェース回路を作りました。 YM2151 チップは手持ちの MSX 用 FM 音源モジュール YAMAHA SFG-01 の基板から外してきたものです。 YM2151 自身および周辺の回路の IC の「デート・コード」を見ると 1984 年製…

FPGA 版 FM 音源 (30) -- 49 kHz → 44.1 kHz サンプリング・レート・コンバータ (3)

4 月 16 日付けの記事の構成をソフトウェアで実現した C プログラムの断片を下に示します。

FPGA 版 FM 音源 (29) -- 49 kHz → 44.1 kHz サンプリング・レート・コンバータ (2)

サンプリング周波数を 49.5158 kHz から 44.1 kHz へ変換する回路は、次の 2 点、 信号レベルの約 1 dB の低下 (およびそれにともなう S/N 比の悪化) 加減算回路のビット幅が 6 ビット増加 (16 ビット幅から 22 ビット幅へ) を許容できれば、44.1 kHz レート…

FPGA 版 FM 音源 (28) -- 49 kHz → 44.1 kHz サンプリング・レート・コンバータ (1)

YMF262 (OPL3) などの、マスタークロックに NTSC 色副搬送波周波数 (の 4 倍) の 14.31818 MHz を使う FM 音源チップ (以降「14 MHz 系 OPL3」と略記) では出力サンプリング周波数はマスタークロックの 1/288 の 14.31813 [MHz] / 288 = 49.7159 [kHz] にな…

FPGA 版 FM 音源 (27) -- YMF262 インターフェース回路 (1)

久しぶりに YMF262 (OPL3) の挙動を観察しようと、以前に作成した SH-2A とのインターフェース回路 (→こちらの記事) を取り出してきたら、うまく動かなくなっていました。 SH-2A ベースボード上は YMF262 専用ではなく、AC97 コーデックなどの他の回路も載っ…

LPC11U35/トラ技 ARM ライタ (4) -- FM音源プログラム TG11U35 (4)

トランジスタ技術 2014 年 3 月号付録の「トラ技 ARM ライタ」用のFM音源プログラム「TG11U35」USB-MIDI サポート版のソース・パッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。 (2014/12/06 追記: パッケージ…

LPC11U35/トラ技 ARM ライタ (3) -- FM音源プログラム TG11U35 (3)

LPC11U35 基板用のFM音源プログラム「TG11U35」に USB-MIDI 機能を追加しました。 近日中にソース・パッケージを公開します。 USB に関しては VID/PID の問題 (基本的に VID は「誰か」の所有物) があるので、パッケージに同梱するオブジェクト・ファイル…

LPC11U35/トラ技 ARM ライタ (2) -- FM音源プログラム TG11U35 (2)

トランジスタ技術 2014 年 3 月号付録の「トラ技 ARM ライタ」用のFM音源プログラム「TG11U35」ソース・パッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。

LPC11U35/トラ技 ARM ライタ (1) -- FM音源プログラム TG11U35 (1)

トランジスタ技術 2014 年 3 月号付録の「トラ技 ARM ライタ」用のFM音源プログラム「TG11U35」ができました。 フラッシュ上の (プログラム + テーブル) のサイズは約 52 kバイト、サンプリング周波数 15.625 kHz で同時発音数 9 音となりました。 CPU ク…

LPC810M021FN8 (20) -- トラ技 ARM ライタ (1)

トランジスタ技術 2014 年 3 月号付録の「トラ技 ARM ライタ」で LPC810 と LPC1114FN28/102 に書き込めることを一応確認しました。 これは、LPC1114FN28、LPC810 両対応の LPC800-MAX 用ファームウェアを書き込んで、トラ技 ARM ライタを mbed インターフェ…

LPC810M021FN8 (19) -- アナログ・コンパレータ (4)

LPC800 ユーザ・マニュアル (UM10601) に掲載されているアナログ・コンパレータの図を簡略化したものを下に示します。 ハードウェア信号が直接に受け渡しされる系統に限り表示してあり、割り込みやレジスタ経由での信号出力の系統については省略してあります…

LPC810M021FN8 (18) -- アナログ・コンパレータ (3)

1 月 29 日付けの記事で使用した LPC810 プログラムのソース・リストと、コンパイル結果のオブジェクトの HEX ファイルを掲載します。 今回はリストの掲載だけで、詳しい説明については次回以降に回します。 LPC810M021FN8 を「単体」コンパレータとして使う…

LPC810M021FN8 (17) -- アナログ・コンパレータ (2)

前回はグラウンド・レベルから電源レイルまでスイングする、「大振幅」のロジック出力をコンパレータ入力に与えて伝達遅延時間を測定しました。 今回は「小振幅」(±50 mV) の信号をコンパレータ入力に与えた場合の伝達遅延時間を測定します。 測定に使用した…

LPC810M021FN8 (16) -- アナログ・コンパレータ (1)

LPC810 では、アナログ・コンパレータの入出力をピンに出すことができ、 電源電圧 3.6 V 〜 1.8 V 入出力レイル・ツー・レイル ハイ・インピーダンス CMOS 入力 の「単体」のコンパレータとして扱えます。 出力に関してはスイッチ・マトリクスで任意のピンに…