目次
前
次
降圧回路
電源電圧を下げて利用するときは、3端子レギュレータと
いう選択肢があります。3端子レギュレータの場合、必要
とする電圧から3V程度高くないと、まともに動かない時
もあります。また、使われなかった電力は、レギュレータ
ICで消費されることになり、効率が悪くなります。
降圧回路を、チャージポンプ式に、電荷の充放電
による電圧変換で実現します。
次の回路で動作を確認してみます。
チャージポンプ回路は、スイッチにダイオード
キャパシタをつけるだけですが、実際の回路は
トランジスタで、スイッチングします。
ダイオードは、ショットキーバリアーダイオード
キャパシタにはESRの小さいデバイスを利用します。
nQin、Qinに、デッドタイムのあるクロックを
入力して、キャパシタに充放電させます。
デットタイムを用意するのは、ダイオードのもつ
逆回復時間を確保して、完全に電流の流れを遮断
するため。
デッドタイムのあるクロックを生成するのは
コンパレータとマルチプレクサを利用します。
動作は非常に簡単で、カウンタで0〜32を生成し
カウンタ値で、Qin、nQinの出力値を次のように
変えていきます。
0 : Qin=1 nQin=0
1 : Qin=1 nQin=0
2 : Qin=1 nQin=0
3 : Qin=1 nQin=0
4 : Qin=1 nQin=0
5 : Qin=1 nQin=0
6 : Qin=1 nQin=0
7 : Qin=1 nQin=0
8 : Qin=1 nQin=0
9 : Qin=1 nQin=0
10 : Qin=1 nQin=0
11 : Qin=1 nQin=0
12 : Qin=1 nQin=0
13 : Qin=1 nQin=0
14 : Qin=1 nQin=0
15 : Qin=0 nQin=0
16 : Qin=0 nQin=1
17 : Qin=0 nQin=1
18 : Qin=0 nQin=1
19 : Qin=0 nQin=1
20 : Qin=0 nQin=1
21 : Qin=0 nQin=1
22 : Qin=0 nQin=1
23 : Qin=0 nQin=1
24 : Qin=0 nQin=1
25 : Qin=0 nQin=1
26 : Qin=0 nQin=1
27 : Qin=0 nQin=1
28 : Qin=0 nQin=1
29 : Qin=0 nQin=1
30 : Qin=0 nQin=1
31 : Qin=0 nQin=0
カウンタ値0〜14のときは、キャパシタC1、C2に充電
15のときは、キャパシタC1、C2から放電します。
74HC4040を利用し、0〜31を生成し、0〜15、16〜31
で、マグニチュードコンパレータの出力を切替えます。
逆回復時間は、1周期の中の2/32=6.5%になります。
5%程度がよい言われていますが、多少長いです。
実験にはよいと判断しました。
信号生成のVHDLコードは、以下のようになります。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity adec is
port (
-- system
nRESET : in std_logic ;
CLOCK : in std_logic ;
-- enable
ENA : in std_logic ;
-- latch out
QOUT : out std_logic_vector(1 downto 0) --;
);
end adec;
architecture behavioral of adec is
-- input
signal iENA : std_logic ;
-- output
signal iQOUT : std_logic_vector(1 downto 0) ;
-- registers
signal iCNT : integer range 0 to 31 ;
begin
-- input
iENA <= ENA ;
-- output
QOUT <= iQOUT when ( iENA = '1' ) else "00" ;
-- send pulse with dead time
iQOUT(0) <= '1' when ( iCNT < 15 ) else '0' ;
iQOUT(1) <= '1' when ( iCNT > 15 and iCNT < 31 ) else '0' ;
-- counter
process (nRESET,CLOCK)
begin
if ( nRESET = '0' ) then
iCNT <= 0 ;
elsif rising_edge(CLOCK) then
iCNT <= iCNT + 1 ;
end if ;
end process ;
end behavioral;
ブロック図で示すと、次の構成となります。
フリーランニングカウンタで、0〜31を生成し
その値により、出力値を確定します。
カウンタに与えるクロックは、次のように可変
できるような発振器を利用します。
実際には、VCO(Voltage Controlled Oscillator)で
周波数を可変できるようにしておきます。
VCOであれば、D/Aコンバータで周波数を制御できる
ようになるからです。
(under construction)
目次
前
次