目次

降圧型DCDCコンバータ

 DCDCコンバータは、次の2種類があります。

 利用する電源電圧よりも、低い電圧を出力する
 場合が、降圧型です。その反対が昇圧型。

 電源電圧を下げて、所望の電圧にする回路には
 3端子レギュレータを利用して、お手軽に実現
 しますが、3端子レギュレータ利用の場合には
 降圧型DCDCコンバータとは呼びません。

 定電圧電源から、特定の安定化した電圧を得る
 場合、OPアンプとパワートランジスタを利用
 する回路が使えます。



 この回路の設計は、次のようにします。
  1. トランジスタのエミッタから出力する電圧は、3.3V
  2. トランジスタのベース・エミッタ間電圧を0.6Vとしてベース電圧は、3.9V
  3. 右のOPアンプの出力電圧は、3.9Vとする
  4. 右のOPアンプは、電圧フォロワとして利用
  5. 左のOPアンプの出力電圧は、3.9Vとする
  6. 左のOPアンプは、出力電圧を指定する
  7. 出力電圧4.0Vと近似し、12Vx1/3となるように抵抗を選ぶ
  8. 抵抗はE24系列から、100kΩと51kΩを選ぶ
 パワーエレクトロニクスでの、DCDCコンバータは  発振回路、能動素子(トランジスタ、MOSFET等)、  インダクタ、キャパシタンスを利用して実現します。  変換効率を上げるために、発振回路を利用して  直流→交流→直流と変換します。  チョッパー回路を利用しなければ、DCDCコンバータ  と呼びません。  降圧型DCDCコンバータは、次の回路で実現します。  負荷に抵抗を利用していますが、発振回路の出力を  トランジスタのベースに接続して、直流→交流変換  します。  トランジスタが導通している間に、インダクタL1に  電力を磁気エネルギーとして蓄え、同時に負荷にも  電力を供給します。  トランジスタが直流電力の供給を停止すると、インダクタ  は逆起電力を発生させ、時間とともに電圧が変化する電池  として働きます。  インダクタが電池と等価な動作をするので、負荷に電力を  供給すると同時に、ダイオードD1によりキャパシタに電荷  を蓄えます。  トランジスタのスイッチング操作で、エネルギーはインダクタ  キャパシタの中に往復し、同時に負荷に供給されます。  インダクタ、キャパシタには、抵抗成分も含まれている  のでエネルギーの一部は、熱となって失われます。  しかし、3端子レギュレータや上に示した回路に比べて  エネルギー伝達効率は、よくなっています。  実回路を組む前に、LTSpiceを利用して  シミュレーションしてみます。  上図において、V2に発振器をおいて次のように  パラメータを設定しました。  実際に利用するトランジスタ、インダクタ、キャパシタ  ダイオードは、LTSpiceに用意されているライブラリを  みて、日本国内入手可能デバイスと似た、オブジェクト  を使っています。  キャパシタは、より実機に近づけるには  内部直列抵抗値を指定します。  上記パラメータで、どのような電圧が抵抗に  与えられるのかをシミュレーションします。  緑線が電圧で、青線がダイオードに流れる電流です。  電源投入直後は、電圧が上昇するに従いダイオードに  パルス状の電流が流れています。この間にインダクタ  とキャパシタに磁気、静電エネルギーが蓄積され定常  状態に収束していきます。  抵抗R1の値を、100Ωにした場合は、次のような  波形になります。  定常状態になる時間が、1kΩに比べて遅くなっています。  また、与えられる電圧値が低くなっています。  抵抗R1の値が、10Ωの場合  定常状態になる時間が、100Ωに比べて早くなっています。  また、与えられる電圧値が低くなっています。  シミュレーションから、負荷が要求する電力が変化すると  電圧が変化していることがわかります。  実用になるレベルにするには、電圧安定化が必要です。  電圧の安定化は、スイッチング半導体に与える  パルスのDUTY比に関係すると、書籍で確認して  います。  DUTY比を変化させることで、どのくらい出力電圧が  変化するかを、確認してみます。  LTSpiceでシミュレーションした回路を  基板上に半田付けし、CPLDで生成した  PWM波形を与えることにします。  半田付けした基板は、みの虫クリップで電源、インダクタ  PWM波形生成器を接続できるようにしました。また、半導体  を交換できるようにソケット対応です。  回路を構成する部品の中で、キャパシタはESRが小さい  方がよいので、SANYOの有名な低ESRキャパシタを使い  ました。  DUTY比を10%ごとに切り替えて  出力電圧を確認すると、次の  ようになました。  出力電圧を維持するためには、出力電圧を  フィードバックして、誤差電圧からDUTY比  を最適値に制御しなければなりません。  利用したCPLDは、XilinxのXC9572です。  (右にあるコネクタにDIPスイッチ   降圧回路を接続。)  VHDLコードとピンアサインは、以下  としました。 -- adutyx library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity adutyx is port ( -- system nRESET : in std_logic ; CLOCK : in std_logic ; -- 4MHz -- duty ratio input DUTY : in std_logic_vector(6 downto 0) ; -- OE control ENB : in std_logic ; -- PWM POUT : out std_logic -- ; ); end adutyx; architecture Behavioral of adutyx is -- constant values constant PCNTMAX : integer := 39 ; constant LCNTMAX : integer := 999 ; constant PMAX : integer := 99 ; -- clock (500kHz) signal iPCLK : std_logic ; signal iLCLK : std_logic ; signal iCNT : integer range 0 to PCNTMAX ; signal iLCNT : integer range 0 to LCNTMAX ; -- input signal iDUTY : std_logic_vector(6 downto 0) ; signal iENB : std_logic ; -- buffer register signal iREGX : integer range 0 to PMAX ; -- PWM handling signal iPCNT : integer range 0 to PMAX ; signal iDUTYX : integer range 0 to PMAX ; signal iPOUT : std_logic ; begin -- output POUT <= iPOUT when ( iENB = '1' ) else '0' ; -- input iDUTY <= not DUTY ; iENB <= not ENB ; -- divider (generate 100kHz) process (nRESET,CLOCK) begin if ( nRESET = '0' ) then iCNT <= 0 ; elsif rising_edge( CLOCK ) then if ( iCNT = PCNTMAX ) then iCNT <= 0 ; else iCNT <= iCNT + 1 ; end if ; end if ; end process ; iPCLK <= '1' when ( iCNT = 0 ) else '0' ; -- divider (generate 100Hz) process (nRESET,iPCLK) begin if ( nRESET = '0' ) then iLCNT <= 0 ; elsif rising_edge( iPCLK ) then if ( iCNT = LCNTMAX ) then iLCNT <= 0 ; else iLCNT <= iLCNT + 1 ; end if ; end if ; end process ; iLCLK <= '1' when ( iLCNT = 0 ) else '0' ; -- get duty ratio process (nRESET,iLCLK) begin if ( nRESET = '0' ) then iREGX <= 0 ; elsif rising_edge( iLCLK ) then iREGX <= conv_integer(iDUTY) ; end if ; end process ; -- PWM handling process (nRESET,iPCLK) begin if ( nRESET = '0' ) then iPCNT <= 0 ; iDUTYX <= 0 ; elsif rising_edge( iPCLK ) then if ( iPCNT = PMAX ) then iPCNT <= 0 ; iDUTYX <= iREGX ; else iPCNT <= iPCNT + 1 ; end if ; end if ; end process ; iPOUT <= '1' when ( iPCNT < iDUTYX ) else '0' ; end Behavioral; # system NET "CLOCK" LOC = "P5" ; NET "nRESET" LOC = "P39" ; # select NET "POUT" LOC = "P1" ; # data output NET "DUTY<0>" LOC = "P11" ; NET "DUTY<1>" LOC = "P12" ; NET "DUTY<2>" LOC = "P13" ; NET "DUTY<3>" LOC = "P14" ; NET "DUTY<4>" LOC = "P18" ; NET "DUTY<5>" LOC = "P19" ; NET "DUTY<6>" LOC = "P20" ; NET "ENB" LOC = "P22" ;  マイクロコンピュータATtiny2313でも  PWM波形を生成してみました。 #include <avr/io.h> #include <avr/interrupt.h> typedef unsigned char UBYTE ; typedef unsigned short UWORD ; #define OFF 0 #define ON OFF+1 #define MASKFF 0xff #define MASK7F 0x7f #define MASK80 0x80 #define INTERVAL 399 #define PWM_MAX 100 /* variables */ UBYTE pcnt ; UBYTE duty ; UBYTE dutyx ; UBYTE state ; void user_initialize(void); /*------*/ /* main */ /*------*/ int main(void) { /* */ user_initialize(); /* enable interrupt */ sei(); /* loop */ while ( ON ) { /* get duty ratio */ state = PIND ; state ^= MASKFF ; /* separate */ duty = state & MASK7F ; } /* dummy */ return 0 ; } /*-----------------------*/ /* Insert user functions */ /*-----------------------*/ void user_initialize(void) { /* PORT B */ PORTB = 0b00000000 ; /* 00000000 */ DDRB = 0b11111111 ; /* oooooooo */ /* PORT D */ PORTD = 0b00000000 ; /* 00000000 */ DDRD = 0b00000000 ; /* iiiiiiii */ /* initialize timer1 */ { /* compare match (1/1) -> 250ns */ TCCR1B = (1 << WGM12) | (1 << CS10) ; TCNT1 = 0 ; OCR1A = INTERVAL ; /* 250ns x 400 => 100kHz */ OCR1B = 1024 ; } /* enable TIMER1 interrupt */ TIMSK = (1 << OCIE1A) ; /* initialize duty ratio */ pcnt = 0 ; duty = 0 ; dutyx = 0 ; } /* timer1 interrupt */ ISR(SIG_OUTPUT_COMPARE1A) { volatile UBYTE bport ; /* judge */ bport = OFF ; if ( pcnt < dutyx ) { bport = ON ; } /* impress */ PORTB = bport ; /* increment */ pcnt++ ; /* judge */ if ( pcnt == PWM_MAX ) { pcnt = 0 ; dutyx = duty ; } }  市販の降圧DCDCコンバータの内容を見てみます。  銘盤がついた状態です。  銘盤を外すと、MOSFET、制御用ICが実装された基板が出てきます。  利用ICは、富士通のMB3759でTL494の上位互換でした。  (MB3759は、2015年8月からCypress社の製造に変更)  データシートを見ると、出力電圧を監視し、指定電圧を  維持するため、PWMによるFETのゲート制御をしています。  換骨奪胎した内部等価回路は、下図の赤線で囲んだ部分  となります。  内部FETで、外部接続したLCの充放電をしています。  指定された電圧になるように、出力電圧をフィード  バックしてFETのスイッチングで、PWM波形のDUTY比  を制御しています。  外付けLC回路は、積分回路とみることもできます。  積分回路であれば、常時供給される電荷を一定に  すると、電荷QからV=Q/Cで電圧Vが一定になると  わかります。  負荷が電力消費するので、電圧Vを一定に保持するため  フィードバックで監視し、減ったなら供給する電荷量を  増やし、電圧Vが増えたなら供給電荷量を減らすように  制御します。  供給電荷量制御には、FETのゲートに加えるPWM波形の  DUTY比を利用します。  DUTY比の制御に鋸歯波を使っています。鋸歯波があれば  キャパシタ電圧を、コンパレータの比較電圧に使えます。  制御がコンパレータひとつで実現できることに注目します。  FETがNchかPchで、PWM波形の反転が必要になりますが  鋸歯波の生成ができれば、降圧DCDCコンバータの実現  は、難しくはないと理解できます。  鋸歯波は、OPアンプを利用すると簡単に生成できます。  左の2OPアンプで、右上がりの波形を生成します。  右下がりの波形が欲しいので、反転器を使います。  1パッケージに4回路入りOPアンプがあるので  制御用コンパレータまで含め、1パッケージに  入ります。  波形生成と反転を1パッケージで実現することは  装置を小型にまとめるため、必要なこと。  最近は表面実装タイプのパッケージを使い、更なる  小型化を目指しています。

目次

inserted by FC2 system