YM2151 のシリアルデジタル出力を、ファーム内シミュレーション(PWM)ではなく 本物の YM3012 DAC でアナログ化するための部品まとめ。 定数は Yamaha 純正データシート(LSI-2130123, 1992.4)の 「EXAMPLE OF BASIC CIRCUIT」準拠。YM3012 本体は入手済み前提 (秋月では売っていない。eBay/AliExpress 等)。
- プロジェクト: https://github.com/GOROman/nes-rom-reader/tree/feature/ym2151
- データシート: http://bitsavers.org/components/yamaha/YM3012_199204.pdf
オペアンプは 4回路(=デュアル×2個)使う:
YM2151 YM3012(DIP16)
φ1 (23) ──────────→ 2 CLOCK
SO (21) ──────────→ 4 SD
SH1(20) ──────────→ 6 SAM1
SH2(19) ──────────→ 5 SAM2
(+5V) ──────────→ 7 /ICL ※YM2151の/ICと共通にすると消音も連動
+5V ────┬─0.1µF─┐→ 1 VDD
GND ────┴───────┴→ 3,8,16 VSS(DIG/ANALOG GND)
15 RB ──┬── 10µF → GND (内部1/2VDD基準の平滑)
└──(+)op1(-)─┐ op1: 基準電圧バッファ
14 BC ──────────────┤←ここに Cc(位相補償 ~100pF)
13 MP ──────────────┘
12 ToBUFF ──(+)op2 ──[Rcom 270Ω]──→ 11 COM op2: DACバッファ
9 CH1 ──┬─ Csh 1500pF → GND ──(+)op3 ──→ 出力R ┐
10 CH2 ──┬─ Csh 1500pF → GND ──(+)op4 ──→ 出力L ┘→ 1µF DCカット → アンプ
データシート指定値: Csh = 560〜3300pF(推奨1500pF)、Rcom = 100〜1000Ω(推奨270Ω)。 オペアンプは「NJM4560 相当(スルーレート 4V/µs 以上)」。
| # | 品名 | 数量 | 用途 | 目安 |
|---|---|---|---|---|
| 1 | NJM4580DD(2回路オペアンプ, SR=5V/µs) | 2 | op1-op4(基準バッファ/DACバッファ/CH1/CH2) | ¥50前後/個 |
| 2 | 丸ピンICソケット 16P | 1 | YM3012 用(直付け厳禁、貴重品) | ¥数十円 |
| 3 | 丸ピンICソケット 8P | 2 | オペアンプ差し替え実験用 | ¥数十円 |
| 4 | フィルムコンデンサ 1500pF(152) | 2 | Csh サンプルホールド(CH1/CH2) | ¥数十円 |
| 5 | セラミックコンデンサ 100pF(101) | 1 | Cc 位相補償(BC-MP間) | ¥数十円 |
| 6 | カーボン抵抗 270Ω 1/4W | 1 | Rcom(袋100本入りでOK) | ¥100/100本 |
| 7 | 電解コンデンサ 10µF/16V | 1 | RB(1/2VDD基準)平滑 | ¥10 |
| 8 | 積層セラミック 0.1µF | 2-3 | VDD パスコン(YM3012+オペアンプ) | ¥10前後 |
| 9 | 電解コンデンサ 100µF/16V | 1 | 5V ライン バルク | ¥数十円 |
| 10 | 電解コンデンサ 1µF/50V | 2 | 出力 DC カット(出力は1/2VDD中心なので必須) | ¥10 |
| 11 | カーボン抵抗 10kΩ 1/4W | 2 | 出力負荷/DCカット後のバイアス落とし | (#6と同袋可) |
| 12 | 3.5mmステレオミニジャック(基板取付用) | 1 | L/R 出力 | ¥数十円 |
| 13 | ユニバーサル基板(C基板等) | 1 | 実装用 | ¥100前後 |
| 14 | ピンヘッダ+ジャンパピン | 適量 | シミュレーション/実DAC切替、/ICL選択 | ¥数十円 |
合計 1,000円前後(袋物抵抗を含めても)。
- NJM4580DD … 推奨。SR=5V/µs でデータシート要求(4V/µs)を満たす。安い
- NJM2114DD … 低ノイズ版。差し替えて音の違いを楽しむ枠
- MCP6002 … 単電源レールツーレールだが SR=0.6V/µs で要求未達(音は出るが高域が鈍る)
- LM358/NJM4558 … SR 0.5〜1V/µs で同上。非常用
- ソケット化しておけば DIP-8 デュアルオペアンプは全部差し替え可能
- クロック範囲: YM3012 の CLOCK(φ1=φM/2)は 0.65〜3.2MHz。 φM=4MHz なら φ1=2MHz で余裕で範囲内。ただし本機の K コマンドで φM を 1.3MHz 未満に下げると規格外になる(シミュレーションは動くが実DACは保証外)
- /ICL の扱い: +5V 固定でも動くが、YM2151 の /IC ライン(CPU A10)に 繋ぐとリセット時に DAC 出力も無音化されて都合が良い
- GND は3本全部(pin3, 8, 16)。DIG と ANALOG が分かれているので ベタ GND か太めの配線で1点に落とす
- 既存のファーム内シミュレーションと共存できる: YM3012 への 4信号 (φ1/SO/SH1/SH2)は ESP32 の取り込みと並列に分岐すればよい(入力容量5pFで 負荷は無視できる)。ジャンパで「実DAC出力 / PWM出力」をアンプ手前で 切り替えられるようにしておくと聴き比べができる
- 出力振幅は最大 1/2 VDD(2.5Vpp)中心 2.5V — DC カットは必須。 アンプ直結前提なら追加のポスト LPF は不要(DAC 出力は階段状だが 62.5kHz 成分なので可聴域外。気になるなら 2.2kΩ+4.7nF を追加)
- ダイナミックレンジ 16bit 相当(10bit 仮数+3bit 指数の浮動小数点)
- THD 0.05%(0dB)、ノイズ -92dBm、クロストーク -72dB、セトリング 2.5µs
- ファームの PWM シミュレーション(9bit+ノイズシェーピング)より S/N・分離とも一段上がるはず。届いたら聴き比べ推奨