- AVRのPWMで出力した矩形波を可変抵抗でレベル調節する。
- GNDレベルをGNDとVCC/2の仮想グランドに切り替えられるようにする。
という方針で、出力部を作り直した。
プロジェクトはGithubで公開しています。
https://github.com/ryood/SQR_FG
回路図
基板図
VCC/2の生成にはTLE2426を使っているのでかなりシンプルだ。
元の出力部(バッファリング+MOS-FETによるGNDレベル切り替え)との比較
すっかり小さくなった(^q^;
ケース内配線図
ケースに組み込み
外観
ファームウェアの改修
ついでにファームウェアも変更した。
PWMのプリスケーラを変更して4MHzから0.15625Hz(6.4秒周期)まで出力できるようにした。
元のソースがいきあたりばったりでかなり汚かったので、機能を関数に分離して多少わかりやすいようにした。
<出力周波数表>
Pre-scaler | cycle | 出力周波数(Hz) |
---|---|---|
1 | 2 | 4000000 |
5 | 1600000 | |
10 | 800000 | |
20 | 400000 | |
50 | 160000 | |
100 | 80000 | |
200 | 40000 | |
500 | 16000 | |
1000 | 8000 | |
2000 | 4000 | |
5000 | 1600 | |
10000 | 800 | |
20000 | 400 | |
50000 | 160 | |
8 | 2 | 500000 |
5 | 200000 | |
10 | 100000 | |
20 | 50000 | |
50 | 20000 | |
100 | 10000 | |
200 | 5000 | |
500 | 2000 | |
1000 | 1000 | |
2000 | 500 | |
5000 | 200 | |
10000 | 100 | |
20000 | 50 | |
50000 | 20 | |
64 | 2 | 62500 |
5 | 25000 | |
10 | 12500 | |
20 | 6250 | |
50 | 2500 | |
100 | 1250 | |
200 | 625 | |
500 | 250 | |
1000 | 125 | |
2000 | 62.5 | |
5000 | 25 | |
10000 | 12.5 | |
20000 | 6.25 | |
50000 | 2.5 | |
256 | 2 | 15625 |
5 | 6250 | |
10 | 3125 | |
20 | 1562.5 | |
50 | 625 | |
100 | 312.5 | |
200 | 156.25 | |
500 | 62.5 | |
1000 | 31.25 | |
2000 | 15.625 | |
5000 | 6.25 | |
10000 | 3.125 | |
20000 | 1.5625 | |
50000 | 0.625 | |
1024 | 2 | 3906.25 |
5 | 1562.5 | |
10 | 781.25 | |
20 | 390.625 | |
50 | 156.25 | |
100 | 78.125 | |
200 | 39.0625 | |
500 | 15.625 | |
1000 | 7.8125 | |
2000 | 3.90625 | |
5000 | 1.5625 | |
10000 | 0.78125 | |
20000 | 0.390625 | |
50000 | 0.15625 |
プログラムの動作
状態遷移周波数設定・デューティー設定モードのLCD表示
プリスケーラ設定モードのLCD表示
出力波形
周波数:1kHz 振幅:5V GNDレベル:GND周波数:1kHz 振幅:5V GNDレベル:VCC/2
周波数:1kHz 振幅:1V GNDレベル:GND
周波数:1kHz 振幅:1V GNDレベル:VCC/2
周波数:4MHz 振幅:5V GNDレベル:GND
周波数:4MHz 振幅:5V GNDレベル:VCC/2
立ち上がり
周波数:1kHz 振幅:5V GNDレベル:GNDOverShoot: 48.1%
PreShoot: 1.9%
Rise Time: 6.000ns
周波数:1kHz 振幅:1.5V GNDレベル:GND
OverShoot: 2.7%
PreShoot: 1.4%
Rise Time: 123.000ns
立ち下がり
周波数:1kHz 振幅:5V GNDレベル:GNDOverShoot: 2.7%
PreShoot: 1.4%
Fall Time: 123.000ns -> Slew Rate: 12.2V/us
周波数:1kHz 振幅:1.5V GNDレベル:GND
OverShoot: 0.0%
PreShoot: 1.3%
Fall Time: 136.000ns -> Slew Rate: 11.0V/us
メモ:
出力レベルを下げるために10kΩのPOTで分圧すると、波形がなまる。どこかの容量成分が影響していると思うけど理由はわからない。同時にクロックノイズのレベルも下がるようだ。←LPF的な現象。
0 件のコメント:
コメントを投稿