DDS方式の2相パルス発生回路、周波数スキャン機能を付ける
あれこれ悩みながらこしらえてきたDDS方式の2パルス発生回路。
ざっと完成形に持ち込めました。
割り込み処理の時間はギリギリで動いていますが、
メインループはヒマ。
ということで、周波数スキャン(sweep)機能を付加しました。
設定するのは、
Lo側周波数 1~9999Hz f1
Hi側周波数 1~9999Hz f2
Rise時間 0.0~600.0秒 t1
Fall時間 0.0~600.0秒 t2
Hi待ち時間 0.0~600.0秒 w1
Lo待ち時間 0.0~600.0秒 w2
スイープは
(1) f1周波数で2相パルス出力
(2) t1時間をかけてf2までパルス周波数を上昇
(3) f2周波数をw1時間保持
(4) f2周波数からf1まで周波数を下降
(5) f1周波数をw2時間保持
(6) (1)に戻る
を繰り返します。
「100Hz~400Hz」をスイープすると、こんな波形が出てきます。
変化点を拡大
一番下の波形は「F-Vコンバータ」 で見た、
A相パルスの周波数変化。
まだ「main loopはヒマ」だからと、LOG SWEEPの処理も
書き加えてみました。
A相周波数がこんな具合に変化します。
Arduino UNO R3のATmega328P(16MHzクロック)、
8bitマイコンなのに、意外と浮動小数点処理を頑張って
くれます。
10msごとに経過時間から周波数を計算しています。
※関連
・2024年9月24日:秋月のI2C接続液晶 AQM1602XAを基板に直付け
・2024年9月27日:1クロックでも速くしたい DDS方式の2相パルス発生器
・2024年9月30日:1クロックでも速くしたい 割込を「ISR_NAKED」で
※回路図
元のでは無しにしていたSW4にsweepの操作を割り当てています。
| 固定リンク
「電子回路工作」カテゴリの記事
- 宮内 悠介 著『ラウリ・クースクを探して』(2025.04.09)
- EEPROMを使ったシリアル受信バッファ 512kバイトに増設(2024.12.26)
- 考察:提灯配線短絡箇所の発見方法(2024.11.14)
- AD620を使った計装アンプ+ノッチフィルタ(2024.11.08)
- ステッピングモータ駆動回路を24Vだけで #2(2024.10.31)
「ツール」カテゴリの記事
- マイコン型導通チェッカーの部品(2025.02.21)
- ピンセット、危うし!(2025.01.09)
- EEPROMを使ったシリアル受信バッファ 512kバイトに増設(2024.12.26)
- 充電器用AC100V電源電流モニター回路(2024.12.13)
- DDS方式の2相パルス発生回路、周波数スキャン機能を付ける(2024.10.05)
「Arduino」カテゴリの記事
- Arduino UNO R3で周波数を計る(2025.05.16)
- Arduino UNO R3のクロック精度を1MHzパルスで確かめる(2025.04.28)
- Arduino、analogWriteは捨てちゃえ。ちゃんとしたPWMの例(2025.03.22)
- パルスジェネレータをI2C液晶で動かす(2025.01.28)
- EEPROMを使ったシリアル受信バッファ 512kバイトに増設(2024.12.26)
コメント