So-net無料ブログ作成
  • ブログをはじめる
  • ログイン

Arduino で Softeare DDS を動かす (その5) [Arduino]

 Arduino で Softeare DDS を動かす、その5です。

DDS の発生周波数と LPF を通った後のスプリアスを比較してみました。
比較したのは LPF のカットオフ周波数が 2kHz で発生周波数が 1kHz と 2kHz の場合のスプリアスです。
〔発生周波数 1kHz〕
2.jpg
〔発生周波数 2kHz〕
3.jpg
比較するとカットオフ周波数と発生周波数が同じ場合の方がスプリアスのレベルは下がります。
ただし、PWM 後の波形に DC 成分が残ってしまい、結合を AC カップリングにしないといけませんでした。
それと両方のグラフで 8.7kHz くらいにピークがあります。これの原因が良く分かりません。
それでも3次のスプリアスがかなり抑えられているので、高いところの不要な信号をどう抑えるかを考えたいと思います。この辺りが 8bit PWM の限界かもしれません。
〔APB-3 での測定結果〕
参考までに APB-3 で 1kHz の信号とスプリアスを測った結果も載せておきます。
1.jpg
同時に表示できてよいのですが、入力のアッテネータと結合の切り替えがないのが痛いところです。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かす (その4、LPF による全高調波歪の違い) [Arduino]

 Arduino で Softeare DDS を動かす、その4です。

LPF による全高調波歪の違いに関して考えてみました。
LTspice でのシミュレーション結果を見てみると
4.jpg
LC 1段ではカットオフ周波数が 1kHz よりも低くなっています。この違いが全高調波歪の違いになっているのかもしれません。
そこでバターワース・フィルターのカットオフ周波数を 1kHz に近づけたものを作って再度確認してみたいと思います。
でも、0.16% とか、0.13% をデシベル表示すると、-55.9dB や -57.7dB とかの値になります。
全スプリアスがこの値なら、取り敢えず SSB のリニアリティ確認には問題ないと思います。
次は、実際に「あちゃんでいいの」を2個使って、Two Tone Generator を組んでみようと思います。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かす (その3) [Arduino]

 Arduino で Softeare DDS を動かす、その3です。

インダクタとコンデンサを買ってきてブレッドボードにフィルターを作って波形を見てみました。
〔オリジナルのフィルター〕
オリジナルはチェビシェフ・フィルターですが、使っているインダクタの 4.7mH が手に入らず 4.0mH に変更しています。
これが組んだところ
DSC06735.JPG
これが波形
1.jpg
全高調波歪(THD)が約 0.5% に収まっています。
〔カットオフ周波数を下げたフィルター〕
今度はカットオフ周波数を約 2kHz にしたバターワース・フィルターの場合です。
これが組んだところ
DSC06736.JPG
これが波形
2.jpg
全高調波歪(THD)が約 0.16% に収まっています。
でも、前回の 0.13% より若干悪くなっています。LC 1段から2段になっているのにと、ちょっとがっかりでした。
ついでに入力の PWM 波形とフィルター出力の波形です。
3.jpg
フィルターでの信号遅延が結構あるのが分かります。

全高調波歪(THD)をもっと下げるにはサイン・テーブルの解像度を 8bit から 10~12bit に上げる必要があると思います。
それか出力に入れるフィルターのカットオフ周波数を下げるのと、段数を増やして減衰域の減衰量を増やすしかないですね。
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かす (その2) (市販部品に変更) [Arduino]

 Arduino で Softeare DDS を動かす、その2です。

※ サトー電気で買える市販部品に変更したものを追加

Arduino の PWM 出力に付ける LPF を考えてみました。
元記事では 12kHz でカットオフするチェビシェフ・フィルターを標準的な値の LC パーツで実現しています。LTspice でシミュレーションするとなかなかの特性が出ています。
dds_lowpass1251.jpg
しかし、実際に作ろうとしている出力は Two Tone Generator なので、1000Hz と 1700Hz の2信号が候補です。これには少しカットオフ周波数が高いように思います。
それでカットオフ周波数がもう少し低い LC フィルターを考えてみようと思います。
参考にした本はこれ、CQ 出版社から出ている「LC フィルタの設計&製作」森 栄二 著 です。
これを参考にバターワース型の5次 LPF を考えてみます。
カットオフ周波数を 2000Hz、インピーダンスを 300Ω で各素子の値を計算すると
周波数比 M が 2000x2π
インピーダンス比 K が 300 なので
L1, L2 = 38.63mH
C1 = C3 = 0.164μF
C2 = 0.531μF
となり、LTspice でシミュレーションすると
5th_butter.jpg
2kHz 前後を拡大すると
5th_butter-2.jpg
設計カットオフ周波数の 2kHz で -9dB(信号源の 300Ω で半分になるので -6dB-3dB = -9dB)とおよそ一致しています。
しかし、これでは市販のパーツを使えないので市販のパーツで適当なものを当てはめてみます。
サトー電気に 30mH のインダクタがあるのでそれを使い、コンデンサを適当に合成してみると
5th_butter-mod.jpg
こんな感じです。
で、2kHz 前後を見ると、若干減衰量が減っていますが、そこそこです。
5th_butter-mod-2.jpg
この辺りでフィルターを試作してみます。
最終的に部品選定はこうなりました。
5th_butter-mod-36mH.jpg



nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かしてみました [Arduino]

 SSB の測定の為に、低歪率の Two Tone Generator を用意しようと考えています。

まず、FCZ の1石 CR 発振回路のものは歪率が酷く、PC ソフトの WaveGene はそれなりに良いのですが、PC が必須となってしまいます。RF の回り込みとかで誤動作が心配です。
で、Arduino で DDS を実現しようかと思い、ググったらそのものずばりの物がこちらにありました。
これを動かしてみたところ、PWM 出力が出ているので、出力に簡単な LC Low Pass Filter を付けて波形を見てみました。なかなか良い結果です。
〔実験風景〕
DSC06734.JPG

〔LC Low Pass Filter〕
3.jpg
手持ちの部品で有り合わせで作ったものです。

〔測定結果〕
2.jpg
1.jpg
1000Hz でプログラムしているのでちゃんと1サイクル1mSec で出ています。
歪率もいきなり 0.13% が出ています。
元記事では -50dB と出ていました。換算するとだいたい同じような値です。
ちゃんとした Low Pass Filter を付けて、ケースに組み込んでみようと思います。
「あちゃんでいいの」を2個用意し、それぞれ 1000Hz、1700Hz でプログラムしてケースに入れてみるつもりです。

スケッチの動作はかなり ATmega328 のタイマー機能を理解していないとその動作が分かりにくいです。理解できたらメモ書きを残してみようと思います。
概要は Timer2 を使い、サイン波の値でオン・タイムを変える PWM 出力を作っており、出力する周波数で Software DDS のモジュローを計算して出力しています。Timer2 で割り込みもかけているのですが、割り込みと PWM 出力設定の辺りが今一つ、理解できていません。(´;ω;`)
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

ゲルマダイオード SD34 が届く [Arduino]

 SNS の売ります・買いますグループで NEC のゲルマニウム・ダイオード SD34 が出ていたので買ってみました。

何に使うかというと、W8TEE OM のアンテナ・アナライザー基板でも使えますし、ゲルマ・ラジオにも使えるので買ってしまいました。
届いたのがこれです。
SD34.jpg
昭和のダイオードですが、パッケージが綺麗です。(フェイク品?)
そのうちに使ってみましょう。
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす (その4) [Arduino]

 RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす、その4です。

前回は Arduino Mega 2560 からコマンドを送って、受信した結果をシリアル通信で PC へ書き出していましたが、今回は Arduino Mega 2560 に取り付けたグラフィック・ディスプレイに表示しています。
最初はシリアル・モニターからコマンドを入力した場合です。
DSC06611.JPG
次は自動実行した場合です。
DSC06613.JPG
レスポンスの関係で表示の順番が入れ替わっているところがあります。
最後に接続した状態です。
DSC06614.JPG
ここまで来たので、次は SWR のグラフ表示と動作コマンド入力のタッチパネル機能の追加を進めたいと思います。
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす (その3) [Arduino]

 RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす、その3です。

前回は Arduino Mega 2560 からコマンドを送って、受信した結果をシリアル通信で PC へ書き出していましたが、通信で取りこぼしがありました。
そこでスケッチを全面的に書き直して、シーケンシャルな処理からイベント・ドリブンな形に書き換えました。
今回の実行結果です。
1.jpg
取りこぼしが無くなっています。
これで基本的な AA-30.ZERO との通信部分はできたので、
これからグラフィック・ディスプレイに通信結果を表示できるように機能を追加していきます。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす (その2) [Arduino]

 RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす、その2です。

前回は単純に PC と AA-30.ZERO とのシリアル通信ブリッジでしたが、今回は Arduino Mega 2560 からコマンドを送って、受信した結果をシリアル通信で PC へ書き出しています。
Arduino.jpg
ただ、今回は通信のデータがそろうまでの時間を delay で作っているので、タイミングを合わせる部分をちゃんと作らないとダメなようです。
そのため、タイミングが合わずに一部のデータで欠落が発生しています。
その辺りを Arduino のサンプル・スケッチなどで調べてみようと思います。
まだ先は長いなぁ。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

Teensy を使った The $19 DIY DSP audio filter [Arduino]

 ネットでこんなものを見つけました。

Teensy という 72 MHz Cortex-M4 を使った microcontroller board で DSP を実装し、Audio Filter を作って FT-817 に組み込んでいます。特徴は価格で $19.80 です。それと開発環境に Arduino IDE を使っています。
GI1MIC The $19 DIY DSP audio filter
https://gi1mic.github.io/

Teensy についてはこちら
「3.3V signals, 5V tolerant Teensy USB Development Board」
The Teensy is a complete USB-based microcontroller development system, in a very small footprint, capable of implementing many types of projects. All programming is done via the USB port.
https://www.pjrc.com/teensy/
teensy32.jpg
ソフトだけでオーディオ帯の DSP を作っています。
これを他の QRP リグでも使えるようにしたら面白いと思います。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

Sony から Arduino IDE で開発できるマイコン・ボードが出るようです (写真を入れ替えました) [Arduino]

 今日は SEMICON Japan に来ています。

そしたら Sony から SPRITZER の展示がされていました。
来年には出荷し、色々なチャネルで販売を計画しているそうです。価格もラズパイと同等以下を考えているそうです。
展示にはライントレーサーとロボット2体が展示されていました。
基板の設計情報も公開し、互換基板を作りたいメーカーにはチップも外販するとの事。
GNSS のアンテナまで入っているので位置情報を使うアプリが作りやすくなってます。
ちょっと期待したいです。
IMG_0001.jpg
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

RigExpert AA-30.ZERO サンプル・スケッチを Arduino Mega 2560 で動かす [Arduino]

 RigExpert AA-30.ZERO サンプル・スケッチを Arduino Mega 2560 で動かせました。

スケッチの Serial オブジェクトをソフトウェア・シリアルでなくて Serial1 オブジェクトに変えたらば動きました。
これは取得した結果を Excel でグラフにしたものです。
AA-30-7M.jpg
実際には測定した値から SWR を計算してグラフにしないといけません。
nice!(3)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino Mega 2560 にグラフィック表示器を付ける [Arduino]

 AA-30.ZERO の表示装置として Arduino Mega 2560 にグラフィック表示器を付けてテストしてみました。

文字表示
DSC06601.JPG
電話機表示
DSC06602.JPG
グラフ表示
DSC06604.JPG
これを元にスケッチを書いて AA-30.ZERO のグラフィック表示をさせてみようと思います。
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

RigExpert AA-30.ZERO サンプル・スケッチの不思議 [Arduino]

 RigExpert AA-30.ZERO サンプル・スケッチで不思議な現象に遭遇しています。

それはサンプル・スケッチが Arduino Uno では動くのですが、Arduino Mega 2560 では動かないのです。
それも簡単なスケッチです。
これです。
// UART bridge for data exchange between 
// RigExpert AA-30 ZERO antenna & cable analyzer and Arduino Uno
//
// Receives from the Arduino, sends to AA-30 ZERO.
// Receives from AA-30 ZERO, sends to the Arduino.
//
// 26 June 2017, Rig Expert Ukraine Ltd.
//
#include <SoftwareSerial.h>

SoftwareSerial ZERO(4, 7);  // RX, TX

void setup() {
  ZERO.begin(38400);        // init AA side UART
  ZERO.flush();
  Serial.begin(38400);      // init PC side UART
  Serial.flush();
}

void loop() {
  if (ZERO.available()) Serial.write(ZERO.read());    // data stream from AA to PC
  if (Serial.available()) ZERO.write(Serial.read());  // data stream from PC to AA
}



Arduino Mega 2560 ではソフトシリアルのサポートで Uno と異なるところや制限がどうなっているのかを調べてみようと思います。
接続の様子
DSC06606.JPG
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

QST 11月号に QRPguys から基板を買って作っている Antenna Analyzer の記事が載りました [Arduino]

 QST 11月号に QRPguys から基板を買って作っている Antenna Analyzer の記事が載りました。

これです。
Arduino-AA.jpg
途中で止まっていますが、再開しないといけないですね。
あ~、課題がふえてしまった。
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

アンテナ・アナライザー基板の組立 (残件) [Arduino]

 暫らく手を付けられないので、アンテナ・アナライザー基板の組立で残件になっているものを備忘録で書いておきます。

1. MMIC のバイアス抵抗を付け替える
今回取り付けた MMIC の仕様書では電源電圧 7V までしか推奨値が書かれていません。
使う電圧は 5V なのでそれを参考にバイアス抵抗の値を考えてみます。
デバイス電圧の仕様は、Min. 4.6V、Typ. 4.9V、Max. 5.4V です。
電源電流は Typ. 80mA となっています。
7V でのバイアス抵抗は 33Ω です。
これで考えると 7V では実際にデバイスにかかる電圧は 7V - ( 33 x 0.08 ) = 4.36V です。
で、今の実装されている抵抗が 10Ω で、電源は 5V のラインに接続されています。
この電源電圧 5V で実際にデバイスにかかる電圧は 5V - ( 10 x 0.08) = 4.2V です。
動作電圧の Min. を割り込んでいますが、取り敢えずこれで使ってみます。
DDS を動かしたら MMIC の出力を見てちゃんと動作しているのかを確かめてみます。
電源電圧の仕様を見ると、バイアス抵抗が要るのと思いますが、電流制限の抵抗は不可欠なので小さい値でも付けておく事にします。
根本的には、この MMIC は要るのと思ってしまいますけど、まぁ、付けておきます。

2. 電源コネクタ、電源スイッチのコネクタを付け替える
今のピンヘッダーでは曲げないと付けられないので、普通の基板コネクタに付け替えます。
ここは部品表と組立説明で内容が異なっており、「ありゃりゃ」といった感じです。
他にも似たようなところが散見されるので、この基板を組み立てる際に注意が要るところですね。
まぁ、だからキットではなくて基板だけの販売なのかもしれません。

アンテナ・アナライザー基板の組立 [Arduino]

 アンテナ・アナライザー基板の組立が完了しました。

ただし、DDS からの出力を MMIC で受けているのですが、同じ MMIC が手に入らなかったので代用品を使っています。 そのせいで使う抵抗とチョーク・コイルの定数が変わっており、部品の変更が必要そうです。
基板にはスイッチング・タイプのバック・コンバーターが使われており、実装する前に電圧調整をしておくように指示されています。
〔バック・コンバーターの電圧調整〕
DSC06458.JPG
6.6V に設定します。
DSC06456.JPG
〔完成写真〕
DSC06459.JPG
DSC06460.JPG
組立説明書には Arduino 2560 Pro Mini の端子を全部使うわけではないので、必要なピンだけを半田付けすると書かれていますが、その説明写真の内容が写真によって異なります。
あとで回路図と実際の基板実装内容のダブル・チェックが必要そうです。
まずは何もつけずにバック・コンバーターで作った電圧から 5V、3.3V がちゃんと出てくるかの確認からですね。
あ~、道は遠いなぁ。

アンテナ・アナライザーで使うダイオードの特性測定(その2) [Arduino]

 アンテナ・アナライザーで使うダイオードの特性測定、その2です。

残りのダイオードも測定してみました。
結果です。
VF.jpg
1N60(Ge)と1N60(SB)でグラフに屈曲点が出来ていますが、これは電流制限抵抗を切り替えたところで、ブレッドボードの接触抵抗が影響したのではと見ています。 まぁ、ここで見たい特性に影響があるところではないので、データのとり直しはしないつもりです。
W8TEE OM の書かれた部品表では 1N34A を指定しています。
特性を見ると低い電流域で順方向電圧降下の低い 1SS108 の方が高感度に作れると思いますが、ここではオリジナルに忠実に 1N34A を使ってみようと思います。
ただし、同じ基板が2枚あるので、1枚は 1N34A で組み立て、あと1枚は 1SS108 で組み立ててみて、その違いを見てみようと思います。

<おまけで、忘れていたダイオードの写真>
〔買ったのを忘れていた 1SS108〕
DSC06452.JPG
〔40年ちょっと前に亜土電子で買った 1N60〕
DSC06450.JPG
DSC06453.JPG

アンテナ・アナライザーで使うダイオードの特性測定(その1) [Arduino]

 アンテナ・アナライザーで使うダイオードの特性測定、その1です。

事情があって先日から部品棚をひっくり返して部品を探していたら、だいぶ昔に秋月で買っていた 1SS108 が出てきました。
なんだ、持ってたんだと思い、その順方向電圧降下を低電圧電源とデジタル・マルチメータ 2台を使って測定してみました。
結果はこれです。
1SS108.jpg
今日は時間が無いので、あとで 1N60(Ge)、1N60(SB)、1N34A をそれぞれ測定して採用するダイオードを決めようと思います。

アンテナ・アナライザー用に eBay で買った 1N34A が届きました [Arduino]

 アンテナ・アナライザー用に eBay で買った 1N34A が香港から届きました。

これです。
DSC06449.JPG
http://www.ebay.com/itm/10PCS-GERMANIUM-DIODE-1N34A-DO-7-1N34-IN34A-/142062770873?hash=item211399dab9:g:kkUAAMXQ74JTT9r9
PEAK atlas DCA55 で測ってみると、けっこう順方向電圧降下が低いです。
でも、実物を見ると、どう見てもポイント・コンタクト型のダイオードに見えません。
これで準備したゲルマ・ダイオードとショットキーバリア・ダイオードが揃ったので、簡易的に特性測定を実施して使うダイオードの決定をしようと思います。