AD9833 DDSモジュールを試す(10) ロータリーエンコーダの変更
2018-05-13
先の記事の続きです。
スケッチに手を入れたので多少ですが操作性がよくなりました。
百均でスチロール樹脂製のクリアケース見つけたのでこれに組み込んでみることにしました。外寸 155×101×54mm。
これならLCDの角穴を開けずにすみますから^^;;
ついでにロータリーエンコーダを変更することにしました。
ロータリーエンコーダ二つとプッシュスイッチ二つが必要なのですが、以前にデジットでスイッチ付きのロータリーエンコーダを買っていたので、これを使うことにしました。
ところが念のため試してみると、2クリックごとに設定値がアップ/ダウンするようになってしまいました。今までは1クリックごとだったのですが。
今までのロータリーエンコーダは秋月のこれで
クリック数:24
パルス数:24
です。
デジットのロータリーエンコーダの説明書を見ると
デテントポジション:30step
15パルス/1回転
となっています。1回転のパルス数がデテントポジションの半分です。
このままではかえって使いにくくなります。
どうしたものかとあれこれやっているうちに「パチッ」っと音がしてArduino NANO互換機とAD9833DDSモジュールのLEDが一瞬消えてしまいました、どうやらVCCとGNDをショートさせてしまったようです。
LCDの表示が消えたままです、輝度調整ボリュームをまわし切るとかろうじて表示されてます。
この状態でも一応スケッチの書き込みはできるし、DDS出力も正常です。
まさかと思って調べるとVCCが約3.3Vしかありません。どうやらNANO互換機の電源周りをおかしくしたようです。
でも約3.3Vはどこから?
Arduino NANO の回路図を読んでもどこをどうしてしまったのかわかりません。
もっとも私のはNANO互換機でUSBシリアルチップがFT232ではなくCH340ですが。
リセッタブルフューズがおかしくなったのか?
今のところ外部から5V電源をつないで動作しているとはいえ、交換したほうがよさそうですね。
さて先の2クリック問題ですが。
ロータリーエンコーダを使うためにRotary Encoder Arduino Libraryを使っているのですが、よく読むと解決方法が載ってました。
引用します。
書いてあるとおりに rotary.h の #define HALF_STEP をアンコメントすると1クリックごとに設定値がアップ/ダウンするようになりました。
思わぬ回り道をしてしまいました、一晩棒に振りました(涙
スケッチに手を入れたので多少ですが操作性がよくなりました。
百均でスチロール樹脂製のクリアケース見つけたのでこれに組み込んでみることにしました。外寸 155×101×54mm。
これならLCDの角穴を開けずにすみますから^^;;
ついでにロータリーエンコーダを変更することにしました。
ロータリーエンコーダ二つとプッシュスイッチ二つが必要なのですが、以前にデジットでスイッチ付きのロータリーエンコーダを買っていたので、これを使うことにしました。
ところが念のため試してみると、2クリックごとに設定値がアップ/ダウンするようになってしまいました。今までは1クリックごとだったのですが。

クリック数:24
パルス数:24
です。
デジットのロータリーエンコーダの説明書を見ると
デテントポジション:30step
15パルス/1回転
となっています。1回転のパルス数がデテントポジションの半分です。
このままではかえって使いにくくなります。
どうしたものかとあれこれやっているうちに「パチッ」っと音がしてArduino NANO互換機とAD9833DDSモジュールのLEDが一瞬消えてしまいました、どうやらVCCとGNDをショートさせてしまったようです。
LCDの表示が消えたままです、輝度調整ボリュームをまわし切るとかろうじて表示されてます。
この状態でも一応スケッチの書き込みはできるし、DDS出力も正常です。
まさかと思って調べるとVCCが約3.3Vしかありません。どうやらNANO互換機の電源周りをおかしくしたようです。
でも約3.3Vはどこから?
Arduino NANO の回路図を読んでもどこをどうしてしまったのかわかりません。
もっとも私のはNANO互換機でUSBシリアルチップがFT232ではなくCH340ですが。
リセッタブルフューズがおかしくなったのか?
今のところ外部から5V電源をつないで動作しているとはいえ、交換したほうがよさそうですね。
さて先の2クリック問題ですが。
ロータリーエンコーダを使うためにRotary Encoder Arduino Libraryを使っているのですが、よく読むと解決方法が載ってました。
引用します。
It's also possible to use 'half-step' mode. This just emits an event at both the 0-0 and 1-1 positions. This might be useful for some encoders where you want to detect all positions. In rotary.h, uncomment #define HALF_STEP to enable half-step mode.
書いてあるとおりに rotary.h の #define HALF_STEP をアンコメントすると1クリックごとに設定値がアップ/ダウンするようになりました。
思わぬ回り道をしてしまいました、一晩棒に振りました(涙
スポンサーサイト
AD9833 DDSモジュールを試す(4)出力フィルタをつける(2)
2016-11-03
LPFについてはπ型LPFの計算を参考にさせていただきました。引用します。
式を整理すると
L=Zo/2πfc
C=1/2πfcZo
で求まります。
インダクタは抵抗やキャパシタと比べて値をあまり自由に選べません。自分で巻ければ別ですが^^;;
ここでは10μHと3.9μHのインダクタを共立電子で入手して実験しました。
C1、C2は計算上は250pFですが220pFで代用しました。
フィルタ2は二段にしてますが、カットオフ周波数が高いので一段ではAD9833のクロックである25MHzの減衰量が不足すると考えたからです。

まずフィルタ1で実験してみるとなぜかカットオフ周波数が低い。10μHのインダクタは二つ買ったので使っていないのを測ったらちゃんと10μHあります。
ところが実験基盤上のを見たら、巻き線の太さが違うし、巻き数も違う。
外して比べた写真です。明らかに違うのが分かりますが、買った時には全く気付きませんでした。
測ってみると100μHでした。

LTSpiceによるシミュレーションです。
共立電子の10μHのインダクタは自己共振周波数が20MHzとあります。それより上はインダクティブではなくキャパシティブになるということです。
10μHで20MHzですからストレー容量は6.3pFと計算できます。それを踏まえてシミュレーションしてみました。
ともに25MHzでは50dB程の減衰があります。ただし通過帯域でも6dBの減衰があります。

終端抵抗を大きくすると減衰は少なくなりますが、通過帯域で特性が暴れてしまいます。

フィルタを入れた時の振幅特性です。

公式は、以下になります。
Zo = 1/(2πfcC) = 2πfcL
ここで、
Zo:伝送路インピーダンス
fc:カットオフ周波数
式を整理すると
L=Zo/2πfc
C=1/2πfcZo
で求まります。
インダクタは抵抗やキャパシタと比べて値をあまり自由に選べません。自分で巻ければ別ですが^^;;
ここでは10μHと3.9μHのインダクタを共立電子で入手して実験しました。
C1、C2は計算上は250pFですが220pFで代用しました。
フィルタ2は二段にしてますが、カットオフ周波数が高いので一段ではAD9833のクロックである25MHzの減衰量が不足すると考えたからです。

まずフィルタ1で実験してみるとなぜかカットオフ周波数が低い。10μHのインダクタは二つ買ったので使っていないのを測ったらちゃんと10μHあります。
ところが実験基盤上のを見たら、巻き線の太さが違うし、巻き数も違う。
外して比べた写真です。明らかに違うのが分かりますが、買った時には全く気付きませんでした。
測ってみると100μHでした。

LTSpiceによるシミュレーションです。
共立電子の10μHのインダクタは自己共振周波数が20MHzとあります。それより上はインダクティブではなくキャパシティブになるということです。
10μHで20MHzですからストレー容量は6.3pFと計算できます。それを踏まえてシミュレーションしてみました。
ともに25MHzでは50dB程の減衰があります。ただし通過帯域でも6dBの減衰があります。

終端抵抗を大きくすると減衰は少なくなりますが、通過帯域で特性が暴れてしまいます。

フィルタを入れた時の振幅特性です。

AD9833 DDSモジュールを試す(3)出力フィルタをつける(1)
2016-11-01
AD9833DDSモジュールの出力特性を調べました。
出力にオシロのプローブをつないで目視によって振幅を測定しました。なおオシロの帯域は40MHzです。
カットオフ周波数が数MHzのLPFみたいです。

入手したモジュールには下の写真の赤矢印で示したようにコンデンサがついてますが、容量は不明です。

AD9833日本語データシートによるとAD9833の出力抵抗は200Ωのようです。
仮にコンデンサが200pFだとすると、カットオフ周波数は4MHzになるので辻褄があいます。
実は出力にLCによるπ型LPFをつけるつもりなので、このコンデンサは不要です。

思い切って外しました。そうたら動作しなくなりました。
よく見るとAD9833に半田くずがついています(下の写真)。コンデンサを外した時についたのでしょう。
取り除いたら無事動作しました。

π型LPFフィルタを二つ作って実験中。

長くなりそうなので、取りあえずここまで。
出力にオシロのプローブをつないで目視によって振幅を測定しました。なおオシロの帯域は40MHzです。
カットオフ周波数が数MHzのLPFみたいです。

入手したモジュールには下の写真の赤矢印で示したようにコンデンサがついてますが、容量は不明です。

AD9833日本語データシートによるとAD9833の出力抵抗は200Ωのようです。
仮にコンデンサが200pFだとすると、カットオフ周波数は4MHzになるので辻褄があいます。
実は出力にLCによるπ型LPFをつけるつもりなので、このコンデンサは不要です。

思い切って外しました。そうたら動作しなくなりました。
よく見るとAD9833に半田くずがついています(下の写真)。コンデンサを外した時についたのでしょう。
取り除いたら無事動作しました。

π型LPFフィルタを二つ作って実験中。

長くなりそうなので、取りあえずここまで。