&size(24){&color(darkgreen){''波形発生器''};};
//#navi
~''CONTENTS''
#contents
----
~''REFERENCES''
-http://www.niigata-power.com/indexj.html

----
**概略仕様 [#q7208feb]
-ネクストプランニング(025-256-5868渋谷)の引き合い
-20Vpp(-10Vp〜10Vp, 0〜20kHzの正弦波を発生させる。
-電源はDC24V
-7セグ5桁とテンキー12個くらい

-ひずみ率は1%以下
-周波数設定は0.005%以下 (20000Hzと20001Hzとが区別可能なこと)

**主要部品 [#zda8ff29]
|~ITEM|~MANI.|~PARTS|~UNIT|~QTY|~REMARK|
|CPU|AKIZUKI|AKI-H8|3,800|1||
|BOARD|OLIMEX|DDS|7,000|3||
|SW|ALPUS|SKECAF|90|12|336-7788(5)|
|SW-TOP|ALPUS|SK2AA00180|150|12|441-8124(5)|
|PS|COSEL|ZUW1R52415|1,330|1|464-3522(1)|
|7SEG|Agilent|HDSP-F151|410|5|赤色|
|SCF|LT|LTC1062CN8|1,200|1||
|RAM|Cypress|CY62128-70SC|390|1||
|OP|NS|LM358N|75|1||



**キーボードの選定 [#zdd32d98]
-DMC社製PCMK-DTK-12, ミスミ扱い, 1,700円
-In2Tec製4234A1, RS扱い, 3,400円
-いずれも自由度が低いし高価なので、普通のSWにすることを検討。
-7セグと高さを合わせるなら、13mm

**7セグの選定 [#y63293bd]
-10mmのものだと、厚みが13mmくらい

**ケースへの取り付け [#ged97530]
#ref(casing.jpg)

**システム設計 [#u9d519e4]
***I/O本数について [#j061e845]

***D/A変換速度について [#m3b4395a]
-変換時間最大10us(負荷容量20pF時)
-最大周波数が20kHzだから、周期は50us。
-最大周波数付近では3角波になる

***周波数の可変範囲と分解能 [#j1db1297]
-ITUでDMAを起動してメモリ内のデータをDACに送る
-ITUのクロックは、内部クロックの1/1=62.5usから1/8=0.5us。
-DACの最大変換速度の10usを出すには、ITUを1/1クロックでカウントして、カウント値は160に設定。
-DACの分解能は8ビット。
-DMA転送するデータ長を4, 8, 16, 32, 64, 128, 512, 1024バイトとして、DACの最大変換速度で変換すると
|~データ長|~周期|~最高周波数|~最低周波数|~0.5%分解能の下限(カウンタ値200以上)|~ひずみ率|
|4|40us|25kHz|61.035Hz|20kHz|42.87%|
|8|80us|12.5kHz|30.518Hz|10kHz|14.78%|
|16|160us|6.25kHz|15.259Hz|5kHz|1.113%|
|32|320us|3.152kHz|7.629Hz|2.5kHz|0.8113%|
|64|640us|1.5625kHz|3.815Hz|1.25kHz|0.7531%|
|128|1280us|781.25Hz|1.907Hz|625Hz|0.7531%|
|256|2560us|390.6251Hz|0.9537Hz|312.6Hz|0.1413%|
|512|5120us|195.3125Hz|0.4768Hz|156.25Hz||
|1024|10240us|97.65625Hz|0.2384Hz|78.125Hz||
-設定例
--10Hzに設定するには
--データ長1024を使う
--10Hzの周期=100msを1024で割ると、97.656us。
--ITUで97.656usを設定するには、1/1クロックで、カウンタ値は1562とする。
--カウンタ値を1563とすると、ITU起動は97.625usになる。
--97.625usで1024バイトをDMA転送すると、99.968msの周期になる。
--周期99.968msは、10.003Hzになるので、10Hz, 11Hz, 12Hzも設定可能といえる。

--20kHzに設定するには
--データ長4を使う
--20kHzの周期=50usを4で割ると、12.5us。
--ITUで12.5usを設定するには、1/1クロックで、カウンタ値は200となる。
--カウンタ値を201とすると、ITU起動は12.5625usになる。
--12.5625usで4バイトをDMA転送すると、50.25usの周期になる。
--周期50.25usは、19900Hzなので、周波数の設定間隔は100Hz程度になる。

-ひずみ率のシミュレーション
--データ長8の場合
#ref(wav-sim.JPG)
--データ長128の場合
#ref(wav-sim2.JPG)

**システム設計2 [#n71bab24]
-矩形波発生回路と遮断周波数可変LPF(SCF:Switched Capaciter Filter)とで構成

***SCFの選定 [#e778cf41]
-UAF42AP
--BB, DIP14, 6-18V, 0-100MHz, 311-580, 1, 4200
-LTC1062CN8
--LT, DIP8, 3-18V, 0-20MHz, 633-880, 1, 1200

***ひずみ率 [#hd389359]
-LTC1062とすると、-30dB/Octなので、ひずみ率3%
-シミュレーション
--シミュレーション用に設計した、5次バタワースフィルタの特性
#ref(sp-scf.JPG)
--矩形波を入れたときの波形
#ref(wv-scf.JPG)

***矩形波の分解能 [#lb0be3dc]
-システムクロック16MHz(T=62.5ns)をITUで分周する。
|~クロック分周比|~最大周波数|~最小周波数|~20kHz分解能|
|1|8MHz|122Hz||
|2|8MHz|61Hz||
|4|8MHz|30.5Hz||
|8|8MHz|15.3Hz||

-ITUのカウンタ値20000のとき20kHzになるようにして、ITUをカスケードで接続する。
--2段目のクロックが1.25nsになり、800MHzになる。→不可能

-現実的な周波数分解能
--20kHz発振時のカウンタ値は、1/2周期ずつカウントするので25us。
--もっとも細かくカウントするには、システムクロックの周期0.0625usでカウントする。
--このときのカウント値は、25/0.0625 = 400
--ここで、カウント値399のときの発振周波数を求める。
--1/2周期は、399*0.0625 = 24.9375なので、周波数は20050Hzになる。
--すなわち、発振周波数20kHz付近では、50Hz単位の設定となる。

-PLDを外付けにした場合
--クロックは80MHzが楽
--クロックの周期が0.0125usになるので、20kHz時のカウント値は4000になる。
--ここで、カウント値3999のときの発振周波数を求めると、20005Hz。
--すなわち、発振周波数20kHz付近では、5Hz単位の設定となる。

**システム設計3 [#e530ed11]
-%%44kHzあたりでDACに正弦波データを送り続ける。%%→88.2kHzは必要
-後段にはSCFを入れる
***サンプリング周波数 [#l1e69dd1]
-ITUで作れる44kHzあたり
-システムクロックは16MHz。すなわち62.5ns。
-44kHzは周期で22.727us。
-ITUのカウントとしては22.727 / 0.0625 = 363.632
-ITUのカウンタに363を設定すると。
-周期は363 * 0.0625 = 22.6875。すなわち44.0771kHzになる。

***メモリ長 [#c9638c48]
-44kHzで1Hzを出すには。1/(1/44000) = 44000バイト必要。
-20000Hzと20001Hzとの差を出すためには?
#mimetex(6$, \sin{(2\pi f_1 t)}-\sin{(2\pi f_2 t)} \ge \frac{1}{256})
-これをtで解けば良いんだけど。どうするんだろう?
-周期で行くか?
-20000Hzと20001Hzとの差を出すためには?
-DACのサンプリング周波数を88.2kHzとすると
#mimetex(6$, \frac{1}{20000}N-\frac{1}{20001}N \ge \frac{1}{88200})
-Nについて解くと
#mimetex(6$, N \ge 4535.37)
-すなわち、4536個以上のデータを送ると、1サンプル以上の差が出る。
-従って、DACのサンプリング周波数が88.2kHzの場合は、1200h以上のデータ長が必要となる。
-最初と最後の連続性を保つデータの生成方法
++波形データをcos波にする
++1200h相当分作成する
++後ろから最大値を求め、データの最後とする。

***ひずみ率 [#a6566725]
-20kHz時のシミュレーション
-DACレート88.2kHz、LPF30kHzでシミュレーション
-上から正弦波、DAC出力波形、出力波形、DAC出力トリガ
-出力のひずみ率は0.428%
#ref(sim-sys3.JPG)
-1kHz時のシミュレーション
-出力のひずみ率は0.00002544%
#ref(sim-sys3-1k.JPG)

**システム設計4 [#s4d092b1]
-DDSは1Hzステップの設定が可能だった。
-http://akizukidenshi.com/catalog/items2.php?q=DDS&s=score&p=1&r=1&page=#K-00059
-出力を20VppにするアンプがあればOK
-DDSとPIC16F84Aを組み合わせて、シリアルで周波数を設定するようにする。
-キーボード側はどうしよう?キットも利用可能?ダイアルで設定するようになる


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS