Multi-band DDS VFO 2

Multi-band DDS VFOのArduinoへの書き込みが出来ましたが、

v14-6-5

WARNING: Spurious .github folder in ‘Adafruit MCP23017 Arduino Library’ library
WARNING: Spurious .github folder in ‘Adafruit RGB LCD Shield Library’ library
WARNING: Spurious .github folder in ‘Adafruit ILI9340’ library
WARNING: Spurious .github folder in ‘Adafruit ILI9341’ library
WARNING: Spurious .github folder in ‘Adafruit STMPE610’ library
WARNING: Spurious .github folder in ‘Adafruit MCP23017 Arduino Library’ library
WARNING: Spurious .github folder in ‘Adafruit RGB LCD Shield Library’ library
WARNING: Spurious .github folder in ‘Adafruit ILI9340’ library
WARNING: Spurious .github folder in ‘Adafruit ILI9341’ library
WARNING: Spurious .github folder in ‘Adafruit STMPE610’ library

Spurious(あやしい)WARNINGがたくさんあります。

コンパイルは出来ているのにこれは何でしょう?

Multi-band DDS VFO 1

しばらくお休みしていたDDS VFOですが、JA2NKDさんのブログを久しぶりに見たところ、

DDS VFO controller version up ( Ver3.1 Multi-band ) を発表されました。

オールバンド究極のVFOの登場です。

早速ファイルをダウンロード、コンパイルするとエラーがずらっと出てしまいます。

v1-6-10

かなり悩んだすえArduinoのバージョン1.6.5をダウンロードしてコンパイル。

すんなりコンパイル完了。

バージョンアップしても良いことばかりではなさそうです。

AD9834 TFT DDS VFO(2)

なんとなく上手くいってるようなAD9834 TFT DDS VFOですが周波数の誤差があるようです。

周波数カウンターは100Hzまでしか測れません。STEP10Hzでロータリーエンコーダーを回すと表示が不安定です。

オシロスコープを引っ張り出し調べると、こちらは10Hzまで表示しますがパラパラ動いています。

const unsigned long  DDS_CLK = 56001207L;

DSCN3051

でも多少動きます。

これ以上は精度の高い周波数カウンターがなければ確認が出来ませんしLPFを入れないときれいな波形にはなりません。

AD9834 TFT DDS VFO

早速スケッチの修正

Arduino AD9834 DDS VFOより、

const unsigned long  DDS_CLK = 56000000L;  // AD9834 Clock 56Mhz
const unsigned long  TWO_E28 = 268435456L; // 2^28

//———-  Function DDS set  —————

void Fnc_Dds(double frquency){
unsigned long wrk = frquency * TWO_E28 / DDS_CLK;
unsigned int wrk1,wrk2,wrk3;

wrk1 = 0x2000;
wrk2 = wrk & 0x3fff;
wrk2 = wrk2 | 0x4000;
wrk3 = wrk >> 14;
wrk3 = wrk3 & 0x3fff;
wrk3 = wrk3 | 0x4000;

digitalWrite(SCLK,HIGH);
digitalWrite(FSYNC,LOW);

shiftOut(SDATA,SCLK,MSBFIRST,(wrk1 >> 8));
shiftOut(SDATA,SCLK,MSBFIRST,wrk1);

shiftOut(SDATA,SCLK,MSBFIRST,(wrk2 >> 8));
shiftOut(SDATA,SCLK,MSBFIRST,wrk2);

shiftOut(SDATA,SCLK,MSBFIRST,(wrk3 >> 8));
shiftOut(SDATA,SCLK,MSBFIRST,wrk3);

digitalWrite(FSYNC,HIGH);
}

以上を該当部分を削除しコピーします。

そして、

W_CLK  →  SCLK
FQ_UD  →  FSYNC
DATA    →  SDATA

に置換します。

以前実験したAD9834を使います。

ad9834

これでOKだと思うのですが、

周波数カウンターをつなぎロータリーエンコーダーを回してもカウンターは変化しません。

やはり切り貼りで上手くいくはずがありません。

ところがSTEPを100Hzにするとカウンターはアップダウンをしています!!

AD9834 TFT DDS VFOがなんとか出来上がったようです。

si5351a TFT VFO

AD9850 TFT DDS VFOは手持ちのAD9851モジュールを使う予定でしたが、どうもAD9851を壊したようで動作しません。

新しくAD9850を購入しなくては完成しません。それならJA2GQPさんが新しくsi5351a TFT VFOを公開されました。

早速試してみましたが、

DSCN3048

どうも上手くいきません。ライブラリーをたくさん入れているので干渉しているのかもしれません。

AD9850 TFT DDS VFOでもロータリーエンコーダーが動作しない原因がこれでした。

そこで、AD9834なら4個も持っています。ならこれを使えばDDSの購入はしなくて済みます。

AD9834 TFT VFOに挑戦してみます。といってもひと様のプログラムの継ぎ接ぎしかできませんが。