ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

導通チェッカー

2022年08月23日 | 日記

導通チェッカーを作りました。

Attiny13Aを使ったものですが、結構優れものです。

詳しくは、http://elm-chan.org/he.html を参照してください。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

AD9850,DDS OSC

2022年08月12日 | 日記

ADS9850,DDS OSC 何とかうまく動作していますので、何時ものように木のケースに入れました。今回は塗装も施しました。

中身は下記の様になっています。

配線はお世辞にも良いとは言えません。無理やり押し込んだ感じですね。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

AD9850 DDS (2)

2022年08月08日 | 日記

インターネットアマチュア無線でCWQSOをするオーデイオ発振器をDDSで作ってみました。

トーン周波数は400Hz~850Hzまで50Hzステップで選択できるようにしました。

選んだ周波数はLCDに表示させています。

DDS本来の使い方としては?ですが。

DDSのいいところはサイン波出力、周波数可変、出力レベルがほぼ一定。

プログラムはいささか怪しげなのですが、取り敢えず動作するの良しとしましょう。

   

ATMega168P、16MHzXtal使用

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

DDS, AD9850実験

2022年08月03日 | 日記

AD9850はDDSとしては古いものです。サイン波と方形波の出力機能を持っています。

先ず動作をさせるプログラムを作る必要があります。おなじみのArduino IDE(Ver. 1.8.19)を使うことにしました。

Arduino uno とか nanoを持っていませんので ATMega168Pを16MHz(Xtal)で動作させることにします。

https://microcontrollerslab.com/interface-ad9850-dds-signal-generator-module-with-arduino-pinout-features/を参考にしました。

プログラムは下記です。このプログラムは100KHzのサイン波と矩形波を出力します。

#include
#include

const int DATA_PIN = 11;   //8;
const int W_CLK_PIN = 13;   //9;
const int FQ_UD_PIN = 8;   //10;
const int RESET_PIN = 9;   //11;

double freq = 100000;
double trimFreq = 124999000;

int phase = 50;

void setup(){
  DDS.begin( W_CLK_PIN, FQ_UD_PIN, RESET_PIN);
  DDS.calibrate(trimFreq);
}

void loop(){
   while(1){
  DDS.setfreq(freq, phase);
  //delay(10000);
  //DDS.down();
 // delay(3000);
  DDS.up();
  //delay(2000);
  DDS.setfreq(freq + 500, phase);
  delay(5000);
  DDS.down();
   };
}

問題点:

自作のATMega168Pでは動作しないことです。適当なBoardを選んでコンパイルはパスしますが、書き込み後、動作しません。昔のAruduino IDEでは自前のテキスト ファイルを作ると出来たのですが、新しいIDEではできません。

boardはArduino Nano を選択してプロセッサはATMega168を選びました。これだけでは動作しません。

次の問題点は以下の設定です。自前の基板ですので最初は右のコメントアウトしてあるピン番号を指定しました。

でも、動きません。

const int DATA_PIN = 11;   //8;
const int W_CLK_PIN = 13;   //9;
const int FQ_UD_PIN = 8;   //10;
const int RESET_PIN = 9;   //11;

https://github.com/F4GOJ/AD9850SPIを確認してみました。下記の文言がありました。

  • W_CLK -> D13 arduino UNO/NANO, D52 MEGA
  • FQ_UD -> any pin except 10 and 12 UNO/NANO, 50 and 53 MEGA
  • DATA/D7 -> D11 arduino UNO/NANO, D51 MEGA
  • RESET -> any pin except 10 and 12 UNO/NANO, 50 and 53 MEGA

配線を直して無事動作しました。

ところが矩形波が出ません。ちょっとしたコツ(注意)が有りました。AD9850基板上のVR(duty cycle)をゆっくり回します。クリチカルです。ある点で矩形波が出てきます。矩形波が出たらDuty cycleを50%に合わせればOKです。

矩形波についてはあまり説明が有りません。あるURLにそんなことが書いてありました。

phase = 0, 100,1000と変化させてみましたが、矩形波には変化は出ませんでした。

新しいAD9833なんかを使う方がいいかもですね。

 

 

 

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする