製作モジュール一覧

2016年7月5日火曜日

LME49600を使ったヘッドホン・アンプをLTSpiceでシミュレーション

LME49600のDATASHEETのApplication Noteに載っているヘッドホン・アンプの回路をシミュレーションしてみた。


U1-Aは非反転増幅回路、U3はLME49600自身のバッファで全体として負帰還がかかっている。

U1-Bは負帰還の途中に入っていて意味がわからなかったが、DATASHEETの説明を読むと、出力のDCオフセットをキャンセルするサーボ回路らしい。R10とC5でLPF(fc=0.16Hz)を構成し、LME49600の出力とGNDを比較してU1-Aに負帰還をかけているようだ。

U1-Bの負帰還にはC5しか入っていないので直流の増幅率は無限大になる。(と思う(^q^;

LME49600のLTSpiceのモデル


spiceモデルはTIのWebサイトから入手出来るが、そのままではLTSpiceのコンポーネントとして使えない。ググっても某知恵袋のいじわるな?回答ぐらいしか出てこない(^q^;

少し調べてLME49600のシンボル(asy)ファイルを作ってみた。

LME49600.asy

Version 4
SymbolType CELL
LINE Normal -32 32 32 64
LINE Normal -32 96 32 64
LINE Normal -32 32 -32 96
LINE Normal 0 32 0 48
LINE Normal 0 96 0 80
LINE Normal 4 44 12 44
LINE Normal 8 40 8 48
LINE Normal 4 84 12 84
WINDOW 0 16 32 Left 2
WINDOW 3 16 96 Left 2
SYMATTR Value LME49600
SYMATTR Prefix X
SYMATTR Description LME49600 High-Performance, High-Fidelity, High-Current Headphone Buffer
SYMATTR ModelFile mylib\LME49600.lib
PIN -32 80 TOP 0
PINATTR PinName BW
PINATTR SpiceOrder 5
PIN -32 48 BOTTOM 0
PINATTR PinName In+
PINATTR SpiceOrder 2
PIN 0 32 NONE 0
PINATTR PinName V+
PINATTR SpiceOrder 3
PIN 0 96 NONE 0
PINATTR PinName V-
PINATTR SpiceOrder 4
PIN 32 64 NONE 0
PINATTR PinName OUT
PINATTR SpiceOrder 1

LME49600.asyをLTC\LTspiceIV\lib\sym以下のフォルダに置けば普通のコンポーネントの様に使えるようになる。

モデル・ファイルのLME49600.libをLTC\LTspiceIV\lib\sub\mylibに置いてい使っているが、他のフォルダに置くなら
SYMATTR ModelFile mylib\LME49600.lib
のパスの指定を変えれば使えると思う。

LME49600のシミュレーション



BWはVEE(V-)につなぐとBandWidthが大きくなるので、R1(Rbw)を、ステップ解析で1fΩと1MΩに切り替えて、V-につないだ場合とフロートにした場合のシミュレーションをしてみた。

AC解析

DATASHEETの特性グラフと似た感じなのでちゃんと使えてると思う。

Application Noteのヘッドホン・アンプのシミュレーション



電源系のデカップリングコンデンサは省略した。U2、U3のオペアンプはUniversalOpamp2。

過渡解析

V(n001):入力波形

入力はDCオフセットをプラス側に偏らせてみたが、出力はDC成分が除去されてGNDレベルを中心に振れている。ACカップリングしていないのに不思議なものだ。こういう回路を考えられるのはすごいなぁ。

AC解析

DC成分をカットするために低域(10Hz以下)が減衰している。

サーボ回路を外した場合もシミュレーションしてみた。


低域の減衰は見られず、増幅率も小さくなっている。

OPAMPを交換


アプリケーション・ノートはLME49720を使うようになっているが、Spiceモデルが見つからなかった。他のOPAMPでも大丈夫だと思うのでOPA2134とOPA2604でシミュレーションしてみた。

OPA2134

OPA2604

高域(と言っても100kHz以上)が多少変化している。

ステップ応答

ステップ応答も一応シミュレーション。

UniversalOpamp2

V(n001):入力

OPA2134

OPA2604

以前、実際にOPAMPのステップ応答を比較したときと傾向は似ている。

参考:「OPAMPのステップ応答の比較してみた」(GND→5Vのステップ波形で実験している)

メモ:

そろそろ何か作りたい気もするので、作ってみる方向で考えようか。

LME49600はバッファICとしては相当優秀なので出力にOPAMPの特徴が現れることを期待。

PCM2704の出力部として、サイズは気にせず据え置き型?オーディオグレードの電解コンデンサの買い置きを全然使ってないので消化したいという目論見もある(^q^;

電池だとヘタりが早そうなので、いずれはAC100V電源を使うつもりでまずは電池駆動かな。

2016年7月4日月曜日

USB DACのPCM2704基板を使ってみる。

CQ出版から出ている「ヘッドホン・アンプ製作実例集」に付属のDAC基板を使ってみた。


この基板はPCM2704と必要な部品があらかた実装されていて、出力のACカップリング用のCR類を繋いですぐ使える。



配線図

<追記:2016.07.10> ↑配線図が間違ってたので修正。VOUTRを10Pin→11Pin </追記>

付属基板のピン・アウト

Cは100uFの電解コンデンサ、Rは1kΩ(ポップノイズ防止用)。電源はUSBから供給される。

ドライバは標準のものを使っているようで基板を繋げばそのまま使えた。デバイス名は「スピーカー(2-USB Audio DAC)」となっている。(Windows10)


出力のようす


WaveGeneで1kHzのSin派を生成して出力した。


負荷1kΩ(ポップノイズ防止用)

ch1:Lch ch2:Rch

拡大

ノイズ(おそらくほとんどが環境ノイズ)は乗っているが、1kHzだと拡大してもデジタルのガタガタはほとんど見えない。

負荷47Ω(ヘッドホンの代用)

高負荷にしても出力レベルの低下はほとんどない。

拡大

WaveSpectraで測定


PCM2704の出力をUSB Audio I/FのTASCAM US-144MKIIに入力してWaveSpectraでみてみた。

負荷1kΩ

負荷47Ω

負荷をかけると若干歪む。偶数倍で歪んでいるようだ。

S/PDIF


18PinのDOUTからS/PDIFの信号が出力されているのでこれもオシロで見てみた。


波形の間隔をカーソルで調べると、細いところで2.8MHz程度、太いところで1.4MHz程度だった。

16bit/48kHzだと、
48kHz * 16bit * 2ch = 1.536MHz
なのでこの倍のRateで出力されているんだろうか?S/PDIFの仕様はそのうち調べる(^q^;

メモ:


ブレッドボードでの実験なのでちゃんと聴きこんでないが、お手軽なのにかなり良い感じ。

できればスマホ(Andoroid)につないで使ってみたい。→OTGケーブルが必要?

iPad3で使うにはiPad Camera Connection Kitが必要なようで(結構高い)当分パス。

PCM2704の出力そのままだと音量が足りないので、増幅用のOPAMPとバッファICのLME49600の組み合わせでヘッドホン・アンプを作ってみる?

同じシリーズのPCM2706はS/PDIFの他にI2Sの信号も出力出来るようなので、単にUSB→I2S変換して他のDACを使うならPCM2706の方が良さそう。PCM2704だとS/PDIF→I2Sの変換が必要になる。(DIR9001等)

ただしどちらにしても16bit/48kHzなのでハイレゾ音源はちゃんとは聴けない。

ハイレゾ音源再生用にはラズパイ上で再生してそのままI2S出力したほうが良さそうだが、消費電力がでかいのでポータブル利用はちょっとムリそう。

Cortex-MのPSoC 5LPやNucleoを使ってPC/スマホからUSB経由ならポータブル用途も行けるかも。

と思ったが、普通のUSB Audioの規格だとハイレゾの転送はムリらしく、USB Audio Class 2.0でないとダメっぽくて対応待ちか(^q^;

ハイレゾはおいおい。。。

う~ん、そろそろラズパイ買うかなあ。

R-2RラダーDACのシミュレーション

Google+の電子工作部で以前R-2RラダーというDAコンバートの回路を教えてもらったのでシミュレーションしてみた。

スイッチを並べた鍵盤からアナログ値を取り出すような用途を想定。

またR-2Rラダーの回路には電圧出力型と電流出力型があるようだ。

電圧出力型

回路図

LTSpiceのswコンポーネントは単投しか使えないので、ノーマルONとノーマルOFFの2つのswを並列にして双投として使った。(この使い方もGoogle+で教えてもらいました。感謝です(^q^/)
.model SW1 SW(Ron=1 Roff=10Meg Vt=1)
.model SW2 SW(Ron=10Meg Roff=1 Vt=1)
として、SW1がノーマルOFF、SW2がノーマルONになるようにした。Ron/Roffの値は0が指定できないので1Ω。(デフォルトでも1Ωになっているようだ)

S1/S2などの組み合わせが単極双投のスイッチになる。スイッチを押したらVCC、離したらGNDに繋がるようなイメージ。

V2~V5で周期の違う矩形波を出力して4bit相当の組み合わせを作った。

過渡解析

一番下のV(out)が出力電圧。

最大値は10Vではなく9.375V。いちいち抵抗の分圧を計算していくのはめんどくさいが、4bitなら2^4=16なので
Vcc * (15 / 16)
で求まる。

電流出力型

回路図

電流出力型の回路もGoogle+で教えてもらった。電圧出力型と似てるが微妙に違う。出力は電流なのでRconv=1kΩに流してシミュレーションした。

過渡解析

一番下のI(Rconv)が出力電流。

電流は各bitごとに1/2されていくのでVCCから流れ出す電流をIとするとR1にI/2、R3にはI/4、R5にはI/8、R7とR2にはI/16というふうに電流が流れる。(Rconvは無視)
I = 2 * (VCC / R1) =  2 * (10V / 100kΩ) = 200uA
スイッチがすべてOnのとき、Rconvに流れ込む電流Irconvは、R2に流れ込む電流をIr2とすると

Irconv = I - Ir2 = 200uA - (200uA * (1 / 16)) = 187.5uA

Rconv自体に抵抗があるのでシミュレーションでは少し減っている。