±12Vの両電源をLM2596で作る
Aliexpress で購入したLM2596モジュールを使って、モジュラーシンセ用に電源を作ろうと思います。安価なスイッチング電源なのでスイッチングノイズが発生しますが、これもモジュラーシンセにはある種の味なのかとの思い込みで進めます。モジュラーシンセの電源構成は±12Vと5V なので、LM2596でマイナス電源を作る必要があります。
データシートにはマイナス電源の推奨回路が載っていますし、2つを並列に繋いだ正負電源の作り方を紹介した Youtube動画もありますので、それらを参考にして作ってみようと思います。

スペック
基本構成
- ACアダプター:Nintendo Wii用 15V、5A (WUP-002 )
- 降圧モジュール:LM2596 (Aliexpress)x3個
- 参考 Official specifications:
- モジュール特性:非絶縁降圧
- 整流モード:非同期整流器
- 入力電圧: 3V-40V
- 出力電圧:1.5V-35V
- 出力電流:定格電流は2A、最大3A(追加のヒートシンクが必要です)
- 変換効率:92%(最高)
- スイッチング周波数:150KHz
- 出力リップル:30mV (最大)
- ロードレギュレーション:±0.5%
- 電圧レギュレーション:±2.5%
- 作業温度:-40 °C ~ +85 °C
- 寸法:43mm*21mm*14mm (長さ*幅*奥行き)
電圧、電流
気になるのはLM2596のスイッチングノイズです。特に、アリエクLM2596はまず偽物で、スイッチング周波数は正規品の150kHzに比べて50kHzと低く、その分スイッチングノイズがより大きくなることが予想されます。
機能とサイズ
両電源回路
考慮すべき要件は
- 遅延スタートアップ
- 反転レギュレータ
- 入力および出力コンデンサ
- ノイズ/リップルフィルタ
1.遅延スタートアップ
遅延スタートアップ機能は、入力電源の電流に限界がある状況で役立ちます。この機能によって、入力電圧が十分に高くなってから、レギュレータの動作を開始することができます。図8-5の回路は、ON/OFF ピン5 を使用して、入力電圧が印加されてから出力電圧が上昇するまでの時間を遅延させます。入力電圧が上昇すると、コンデンサ C1 が充電されることによって ON/OFF ピン5 が High になり、レギュレータは OFF のままに維持されます。入力電圧が閾値1.3V に達するとON/OFF ピン5 が Low になり、コンデンサの充電が停止した後で抵抗 R2 によって回路のスイッチングが可能になります。
2.反転レギュレータ
図 8-5 の回路は、正の入力電圧を、共通のグランドを持つ負の出力電圧に変換します。この回路は、レギュレータのグランド・ピンを負の出力電圧にブートストラップしてから、フィードバック・ピンを接地することで動作し、レギュレータは反転出力電圧を検出してレギュレートします。
レギュレータの両端に発生する最大電圧は、入力電圧と出力電圧の絶対和で、これを最大 40V に制限する必要があります。たとえば、 +20V を -12V に変換する場合、レギュレータの入力ピンとグランド・ピンの間に 32V が発生します。LM2596 の最高入力電圧仕様は 40V です。
このレギュレータ構成では、追加のダイオードが必要です。ダイオード D1 は、軽負荷または無負荷の状況で、入力電圧のリップルやノイズが $C_{IN}$ コンデンサを経由して出力と結合することを防止するために使用されます。また、このダイオード絶縁により、トポロジが降圧構成とよく似たものに変化するため、閉ループの安定性が向上します。入力電圧が低い場合はショットキー・ダイオードの使用を推奨しますが (電圧降下が小さいため)、入力電圧が高い場合は高速リカバリダイオードを使用できます。ダイオード D3 を使用しないと、入力電圧が最初に印加されたとき、$C_{IN}$ の充電電流により、出力が短い時間だけ正の方向に数ボルトだけシフトする可能性があります。D3 を追加すると、出力がダイオードの電圧を超えて正になることを防止できます。
3.入力および出力コンデンサ
入力ピンとグランド・ピンの間には、 低 ESR のアルミまたはタンタルのバイパス・コンデンサが必要です。このコンデンサは、入力で大きな電圧過渡が発生することを防止し、スイッチが ON になるたびに必要になる瞬間的な電流を供給します。入力コンデンサの重要なパラメータは、電圧定格と RMS 電流定格です。降圧コンバータの入力コンデンサに流れる RMS 電流は比較的大きいため、このコンデンサは容量や電圧定格ではなく RMS 電流定格で選択する必要があります。ただし、容量の値と電圧定格は RMS 電流定格に直接関係します。
電解コンデンサの値、電圧定格、定格 RMS 電流の相互の関係を、図 9-1 に示します。
出力をフィルタリングし、レギュレータのループ安定性を実現するには、出力コンデンサが必要です。スイッチング・レギュレータ・アプリケーション用に設計された、低インピーダンスまたは低 ESR の電解またはソリッド・タンタル・コンデンサを使用する必要があります。出力コンデンサを選択するとき、重要なパラメータは 100kHz の ESR、RMS リップル電流定格、電圧定格、容量値です。出力コンデンサでは、ESR の値が最も重要なパラメータです。出力コンデンサには、上限および下限を持つ ESR 値が必要です。出力リップル電圧が低い場合は、ESR 値が低い必要があります。この値は、許容される最大出力リップル電圧、通常は出力電圧の 1%~2% によって決定されます。
アルミ電解コンデンサの ESR 値は、容量値とその電圧定格に関係します。ほとんどの場合、高電圧の電解コンデンサほど ESR 値が低くなります (図 9-2 を参照)。
4.ノイズ/リップルフィルタ
連続モードで動作するスイッチング電源の出力電圧には、スイッチャ周波数ののこぎり波のリップル電圧が含まれ、のこぎり波のピークにおける短い電圧スパイクも含まれることがあります。
出力リップル電圧は、インダクタののこぎり波リップル電流と、出力コンデンサの ESR の関数です。出力リップル電圧の標準値は、出力電圧の約 0.5%~3% の範囲内です。リップル電圧を低くするには、出力コンデンサの ESR を低くする必要があります。ただし、ESR が非常に低いコンデンサを使用すると、ループの安定性に影響し、発振の問題が起きる可能性があることに注意してください。
極めて低い出力リップル電圧 (20mV 未満) が要求される場合は、ポスト・リップル・フィルタをお勧めします (図 9-10 を参照)。
シミュレーション
回路
使用するLM2596はスイッチング周波数が50kHzの偽物なので、シミュレーションはスイッチング周波数が50kHzのLM2576のモデルを使います。ともに、 TIのサイトから入手できました。
スタートアップ特性とリップルノイズ
正電圧(pos) は50msで+12V に立ち上がり、負電圧(neg) は16msの遅延時間を待って、その後 60msまでに -12V に立ち上がっています。
負電圧の遅延の詳細を観察すると、C1コンデンサのチャージとともにON/OFF ピン(5) に働くs3点での電圧が下がっていきます。そして、閾値の1.3Vになるとスイッチングを開始しています。
前項のデータシートで説明されてますが、負電源に供給される電圧とそこで生成される負電圧の電位差は、15V - ( -12V) = 27V になるので注意すべきポイントです。
LM2596の起動時にはPos側で15A、Neg側で5A の瞬間電流が流れています。この瞬間電流に対応するためアリエクのLM2596モジュールには、50V 100uFのOSコンらしきコンデンサが入力側に設けられています。
リップルフィルタ前後の出力電圧をFFTで見たものが下図です。偽物LM2596を踏襲するためLM2576のSpice Modelを使ったので、50kHzにスイッチング周波数が表れています。フィルタ後に出ている 3.2kHzはLCリップルフィルタの共振です。
実機特性
起動できない問題と対策
正電圧回路と負電圧回路のそれぞれ単独では起動しますが、正電圧用と負電圧用のLM2596を前述の回路図の通りに、2つ組み合わせると起動できません。実験電源を使ってCVモードの15Vを印加しているにも関わらず、CCモードのショート状態になります。無負荷でも起動しません。起動したときにはLEDが点灯するのですが、負電源用のLM2596は下図のようにLEDが点灯しません。このとき実験電源の電圧は下図のように4.5V弱を示します。また、負電源の入力電圧は2Vでした。
ここや ここの情報を読み取ると、LM2596の刻印番号(ロット?)によって起動できるものと、できないものがあるようです。(使用したものはJM87RP、JM98RP でした。そもそも偽物なので、そのせいかもしれません。)さらに、正規品の起動には瞬間的に5Aの電流が必要だとも書いてありました。
遅延スタートの動作を疑いC1コンデンサやR1/R2抵抗を変更したり、あれこれ起動実験を繰り返しているうちに、正電源が起動した後に負電源側をつなぐと、CC1Aの制限の下でも起動できることがわかりました。そこで、npnトランジスタとフォトカプラでONディレイ回路(次項)を構成して、負電源側LM2596の起動を遅らせることで正負両電源の起動ができるようになりました。下図の右側小さなユニバーサル基板がONディレイ回路です。
検証できていませんが、起動には実験電源の供給電流(CC電流制限)も影響するようです。負荷を付けて定常値 2A 流れる条件で、CC 3.0A では起動できず、CC 4.0A で起動できました。
最初はフォトカプラではなくメカリレー(OMRON G5V-1)を使いました。起動条件はフォトカプラーよりも緩かった(無負荷、CC 0.2A でも起動可、1次遅れもより少なくて可)のですが、最大電流が 1A なので 2A のフォトカプラに変更しました。
正負両電源が起動時したときの入力電圧と出力電圧を下図に載せます。正側から8ms遅れて負側を接続すると、うまく起動することができています。その後、負側の出力には遅延スタートアップが働き、さらに10ms以上遅れて出力が立ち上がる様子が観察できます。
パワーONディレイ回路
下図の緑枠で囲んだ部分が追加した遅れ回路(パワーONディレイ回路)です。
このときのシミュレーションは図のようになります。ONディレイ回路で13ms遅れ、遅延スタートアップでさらに16ms遅れたときから、負電圧の出力が立ち上がっています。実機の方が10ms程度立ち上がりが早いようです。
なお、負側が立ち上がりには5Aの電流が必要なようで、起動の可否は正側との電流との関連があるようなのですが、このシミュレーションで見る限りではONディレイを設けない前項のシミュレーション事例との差異は見られませんでした。(電流は同方向なのですが、見やすくするため正負に分けています。)
LM2596の生成した出力電圧をそのpeak to peak (リップルノイズ)で評価することにします。次項に述べる各種対策を盛り込んだときのリップルノイズを測定すると図のようになります。
下図オシロ波形の下段に自動測定されたpeak to peak電圧(リップルノイズ電圧)を表示しています。リップルノイズ電圧は周期的な?変動があるようで、時間刻みの取り方のよっても多少のバラツキがあります。
サンプリング数の多い 100us/Div の測定条件でのリップルノイズ電圧は次のようになりました。全て、peak to peak電圧です。波形を見ると、+12V と-12V はうり二つに見えます。
リップルノイズ対策
オリジナル特性(無負荷)
何も手を加えていないオリジナルの入力電圧+V と出力電圧+12V は下図の特性でした。入力には 700mVp-p、出力には 440mVp-p のリップルノイズが乗っています。スイッチング周波数は50kHz と思われますが、peak to peak は 13kHzの波が表われています。
偽物LM2596のスイッチング周波数が50kHz なので、スイッチング周波数が50kHz であるLM2576のデータシートに記載されている出力コンデンサの値にします。(2200uF/35V を追加します。)
+12V出力でのリップルノイズは、440mV → 152mV と1/3 になりました。また、Normalにあった13kHzの大きな波が入力、出力ともに消えています。
出力リップルフィルタ(1A定電流負荷)
入力に100uF/16V のOSコンを追加しました。
入力でのリップルノイズが340mV に低減し、出力も92mV に低減しています。
Arduinoとリップルノイズ
- 動作電源電圧
- 動作周波数
- 動作温度
実際に動作しているArduinoの5V電源とLM2596生成の5V電圧のリップルノイズを比較してみます。PCとUSB接続したArduino UnoやLeonardoの5Vピン出力のリップルノイズを測定しました。それらを比較すると下表になります。
その結果、Arduino の5V出力よりも今回生成した5Vのリップルノイズが小さく、十分に使えると判断しました。
同一条件で測定したノイズ波形を見ると、下図のようにUnoやLeonardoの5V出力よりも peak to peak が小さく、また振動の収束も良好であることがわかります。
LM2596の5V出力でArduinoを動かす検証
念のために、LM2596の5V出力でArduino Nano を動かして、誤動作なきことを確認しました。
下記はATmega328pのFAST PWMを使いパルス周波数をめいっぱい高めるスケッチです。7.81kHzのPWM信号のデューティ比が5秒周期のサイン波で変化するようにして、波形の動きをオシロでしばらく観察しました。
void setup(){
pinMode(3, OUTPUT);//R2B
pinMode(11, OUTPUT);//R2A
TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20);//TCCR2A = B10100011 WGMが011でfast PWM。COM2A,COM2Bが10で出力AとB に非反転 PWM。
TCCR2B = _BV(CS21);//TCCR2B = B00000010 8分周 周波数:16MHz / 8 / 256 = 7.81kHz
}
void loop(){
unsigned long currentTime = millis();
int dutyCycleA = map(sin(currentTime / 5000.0 * 2 * PI)*100, -100, 100, 0, 255);
int dutyCycleB = map(sin(currentTime / 5000.0 * 2 * PI + PI/2)*100, -100, 100, 0, 255);
OCR2A = dutyCycleA; //D11ピン デューティ比 OCR2A / 256
OCR2B = dutyCycleB; //D3 ピン デューティ比 OCR2B / 256
delay(100);
}
下図はデューティ比がある一瞬における波形です。7.81kHzのPWM信号(Duty比84%)をD/A変換すると、3.84Vのアナログ電圧が出力されました。問題なくArduino Nanoが動作することが確認できました。
最終仕様
構成
追加した部品は手持ち在庫を利用したので部品の統一性はありません。
下図は上から、POS +12V、NEG -12V、5V の順になります。
起動後、30分経過後の発熱部の温度は下表でした。また、ヒートシンクは触ると熱を感じる程度でした。
参考ブログ
2 つの降圧コンバータからのデュアル電源 (LM2596) - ページ 1
Dual power supply from two buck converters (LM2596) - Page 1