2015年9月20日日曜日

矩形波だけのファンクションジェネレーター 改良案

使ってみて思ったのは下手に加工するよりも、AVRからの5Vp-pの出力を単純にPOTである程度減衰して出力できるようにしたほうが良さそうな気がしてきた。

「もともと30MHzあたりのノイズが乗っているもんだ」と思って使えばこのクロックノイズも使いみちがあるかもしれない。

LME49600の特性」で見てみたが、矩形波の立ち上がりとか入力インピーダンスの影響を見るためにはAVRの出力をそのままの方がわかりやすい。

いろいろ調べたが、OPAMPやロジックICの特性も結局AVRの出力との比較してということになる。

もうあきらめて出力部は単に「AVRのPWM出力+POTによる降圧」でやってみることにする。

機能仕様


インパルス応答: 
普通のOPAMPではインパルスの幅が狭すぎるとまともな応答をしないので、矩形波のDuty比を狭めることで擬似的に行う

ステップ応答:
これもオシロのトリガーで引っ掛ければ矩形波で見れる

GNDレベル: 
必要かどうかわからないが基板に余裕があればTLE2426でやることも想定

AVRのPWM


ATMega328PのTimer/CounterのPWMのモードをもう少し調べてみた。

「FastPWM」は「Frequency & Phase Correct PWM」モードの倍の周波数の波形を生成できるみたいだが、Duty比の設定がよくわからない。

なので、「Frequency & Phase Correct PWM」モードで考えた。

ソース・コードはGithubで公開した。
https://github.com/ryood/Timer_Counter_Test/blob/master/FastPWM_Test/FastPWM_Test.c

Frequency and Phase Correct PWM 出力周波数


Clock(Hz) Clock(kHz)
CPU Clock 16000000 16000
Prescaler 1 Clock 16000000
cycle 出力周波数(Hz) 出力周波数(kHz) サイクル(秒) サイクル(m秒)
2 4000000 4000 0.00000025 0.00025
5 1600000 1600 0.000000625 0.000625
10 800000 800 0.00000125 0.00125
20 400000 400 0.0000025 0.0025
50 160000 160 0.00000625 0.00625
100 80000 80 0.0000125 0.0125
200 40000 40 0.000025 0.025
500 16000 16 0.0000625 0.0625
1000 8000 8 0.000125 0.125
2000 4000 4 0.00025 0.25
5000 1600 1.6 0.000625 0.625
10000 800 0.8 0.00125 1.25
20000 400 0.4 0.0025 2.5
50000 160 0.16 0.00625 6.25
Prescaler 8 Clock 2000000
cycle 出力周波数(Hz) 出力周波数(kHz) サイクル(秒) サイクル(m秒)
2 500000 500 0.000002 0.002
5 200000 200 0.000005 0.005
10 100000 100 0.00001 0.01
20 50000 50 0.00002 0.02
50 20000 20 0.00005 0.05
100 10000 10 0.0001 0.1
200 5000 5 0.0002 0.2
500 2000 2 0.0005 0.5
1000 1000 1 0.001 1
2000 500 0.5 0.002 2
5000 200 0.2 0.005 5
10000 100 0.1 0.01 10
20000 50 0.05 0.02 20
50000 20 0.02 0.05 50
Prescaler 64 Clock 250000
cycle 出力周波数(Hz) 出力周波数(kHz) サイクル(秒) サイクル(m秒)
2 62500 62.5 0.000016 0.016
5 25000 25 0.00004 0.04
10 12500 12.5 0.00008 0.08
20 6250 6.25 0.00016 0.16
50 2500 2.5 0.0004 0.4
100 1250 1.25 0.0008 0.8
200 625 0.625 0.0016 1.6
500 250 0.25 0.004 4
1000 125 0.125 0.008 8
2000 62.5 0.0625 0.016 16
5000 25 0.025 0.04 40
10000 12.5 0.0125 0.08 80
20000 6.25 0.00625 0.16 160
50000 2.5 0.0025 0.4 400
Prescaler 256 Clock 62500
cycle 出力周波数(Hz) 出力周波数(kHz) サイクル(秒) サイクル(m秒)
2 15625 15.625 0.000064 0.064
5 6250 6.25 0.00016 0.16
10 3125 3.125 0.00032 0.32
20 1562.5 1.5625 0.00064 0.64
50 625 0.625 0.0016 1.6
100 312.5 0.3125 0.0032 3.2
200 156.25 0.15625 0.0064 6.4
500 62.5 0.0625 0.016 16
1000 31.25 0.03125 0.032 32
2000 15.625 0.015625 0.064 64
5000 6.25 0.00625 0.16 160
10000 3.125 0.003125 0.32 320
20000 1.5625 0.0015625 0.64 640
50000 0.625 0.000625 1.6 1600
Prescaler 1024 Clock 15625
cycle 出力周波数(Hz) 出力周波数(kHz) サイクル(秒) サイクル(m秒)
2 3906.25 3.90625 0.000256 0.256
5 1562.5 1.5625 0.00064 0.64
10 781.25 0.78125 0.00128 1.28
20 390.625 0.390625 0.00256 2.56
50 156.25 0.15625 0.0064 6.4
100 78.125 0.078125 0.0128 12.8
200 39.0625 0.0390625 0.0256 25.6
500 15.625 0.015625 0.064 64
1000 7.8125 0.0078125 0.128 128
2000 3.90625 0.00390625 0.256 256
5000 1.5625 0.0015625 0.64 640
10000 0.78125 0.00078125 1.28 1280
20000 0.390625 0.000390625 2.56 2560
50000 0.15625 0.00015625 6.4 6400