2016年8月29日月曜日

PSN SSB Generaor

 CYTECから「9MHz・SSB-PSNジェネレータ PSN-Gear07」組み立てキットが限定再販されるとのアナウンスがあった。SSB黎明期、メカニカルフィルタが高価でなかなか購入できない頃、自作派ではこのPSN方式のSSB発生器に盛んにチャレンジされていた。まだAM中心で無線をしていた私としては、SSBへの憧れから作ってみたいと思っていたがその機会がないまま今に至ってしまった。そんなことから今回の再販で迷わず購入を決めた。
 PSNは位相差からSSB信号を作り出すもので、この位相差をうまく作り出すことが重要な要素となっている。うまくできたPSNSSB送信機はフィルタ式よりも音質がいいと言われている。実際使ったことがないので今回のキットで楽しんでみたいと思う。
 PSNにも色々作り方があるようで、今回のナガード型AFPSN以外にPPSN,メリゴ式等あるようである。今回のキットの詳細についてはCYTECで資料が見られるので、興味のある方はそちらを参照願いたい。(現時点でまだ少しキットはあるようだ。2016.08.29)

 キットには詳細な説明書とCDがついており、非常に詳しく開設されている。キット成功の秘訣は、最初にこれら説明書等にしっかり目を通しておくことである。近道をしようとすると思わぬ落とし穴にはまるものである。
















 まず最初に基板にハトメを取り付ける。これには金槌、ポンチ、金床(固いもの)を用意し取り付ける。我々の世代では当たり前の作業であるが、最近お人は経験がないかもしれません。
ここでマニュアルには書いてないが、 取り付けたハトメはきっちりパタンにはんだ付けを行っておくこと。これを忘れると当初動作しても、後々接触不良が発生する。
いよいよ部品の取り付けである。私は最初に小さなものから取り付けることにしている。今回は抵抗からスタート。
 抵抗はカラーコード(茶赤橙黄緑青紫灰白黒これが1234567890に対応)と言われる色で定数を現している。詳しくはネットで調べてください。
CYTECのマニュアルには色がきちんと書かれており親切である。
 ここで注意事項であるが、赤と橙とか判別を間違えそうなこともある。特に私のような老人には。(笑) できればテスターで確認の上作業すれば間違いない。
「重要」 今回は抵抗やコンデンサーで設計値に標準のものがない場合があり、複数の抵抗コンデンサーを組み合わせて使用するところがある。そしてこの値が性能を左右する重要なポイントとなる。それらはAFで2組の抵抗合成がされている。これら2組はバランスが重要であることから、できれば多くの抵抗から選別したいところであるが、そうもいかない。そこで4本で2本ずつ2組作る場合、テスターで抵抗値を計り最大と最小で1組、中2個で1組とする。これで2組の差が少なくなる。
あまり神経質になってもしょうがないが、できることはしておいたほうがいいと思う。

次にコンデンサーを取り付ける。電解コンデンサーの極性に注意。パタンにシルク印刷(白い部分が-側)があるのでわかりやすい。 あとは定数と種類(積層セラミックとマイラー)を間違えないように取り付ける。
 これらもパーツリストに部品番号と種類が明記されているので確認しながら取り付けるとよい。
次に大物(半固定抵抗、トリマ、水晶、コイル)を付け、最後に半導体(トランジスタ、IC)を付ける。今回は定電圧IC1個だけで、あとは汎用トランジスタのみである。向きもシルク印刷で容易に判別できる。
 これで取り付け終了であるが、慌てて電源を繋がないように。
マニュアルに改良の情報が入っている。これに従い改造を行う。
1つはAF振幅バランスをよりきっちり合わせられるように固定抵抗1個を半固定に変更
 もう一つは、CW時にマイク回路を止めるための改造(ダイオード1個追加)である。
これで取り付け終了。

部品取り付けには、1個つけたら回路図にチェックを入れていく。これによりより間違いなく取り付けができる。
 「急がば回れ」である。


いよいよ調整である電源を繋ぎ異常電流が流れないことを確認し、十分エージングしてから調整をスタートする。
 最初にAFPSN部分である。マイク入力に1KHzを入力しリサージュ波形を見て、正円に近づける。
詳しくはマニュアルに書かれているので、その通りに行う。


 次にキャリアサプレッションの調整である。これについてもマニュアルに詳しく書かれている。
 写真では41.7dB程度であるが、基板むき出し状態なのでこんなところ。ケースにきっちり入れ十分エージングすれば-50dB位には追い込める。実際調整中でも55dB位になることもあった。この調整はなかなかクリティカルである。
サイドバンドサプレッションであるが、上記調整後で33dB以上取れていた。マニュアルでは25dB~35dB程度とあるのでまずまずである。














 以上でジェネレータの完成である。このSSB信号をミキサーで目的周波数に変換し、リアニアアンプで増幅すれば送信機の完成となる。さてミクサーを作らねば。VFOはもちろんarduino DDS TFTLCD VFOである。

 感想であるが、結構簡単にSSBができたという感じである。もちろん諸性能ではフィルタ式には負けるし、DSPに至ってはその比ではないだろう。しかし今回の製作でPSNでも十分使えるものが出来るという感触を得た。
 実際にマイク入力に音声を入力し、ゼネラルカバレージ受信機で9MHzを聞いてみた。問題ないレベルと思う。YouTubeにアップしたので、興味のある方は聞いてみてください。

https://www.youtube.com/watch?v=jtH3dBAwfrE


2016年8月27日土曜日

Arduino [どこでもいーの] [Docodemoino]

 Arduinoはなかなか優れものである。専用書き込み器等不要であり、USB電源で駆動できる。IDEがインストールされたPCがあれば場所を選ばない。まさに「どこでもいーの」である。
 そこで持ち運びが便利なようにケースに組み込んでみた。ケースは秋月で販売しているABS樹脂(蝶番式・中)112-TSというものを使用した。これにちょうど入るユニバーサル基板に
・Arduino nano
・スイッチ 4個
・LED 4個
・1.8inch TFT LCD
あとはボリューム(10KΩ)とジャンパ線を入れることができる。


これだけあればそこそこスケッチが作れると思う。必要に応じでエンコーダーや各種センサーを入れればさらに色々できそうだ。
くれぐれも仕事先でやらないように (笑)




[Docodemoino] is Japanease. Its meaning is at everywhere ok.
Arduino is compact, so when there is a PC, everywhere can play.
Don't do during work. Hi !!



2016年8月22日月曜日

Arduino DDS VFO Controller Bug FIX(2)

 今回はスケッチのBugではなくTFT-LCDに関してである。
新たに2.2inchTFT-LCDを入手したので動作試験をしたところ写真のような表示となった。
上段周波数表示の白枠右端が表示されないのだ。同じスケッチを使っているので、ソフトウェアの問題ではない。ハードウェアの問題である。詳細のTESTはしていないが、個体差があるということだ。困ったものである。


周波数表示白枠の右端が切れている。













周波数表示白枠の右端は表示されている。














 取り敢えずスケッチを修正し、Download SiteにUPした。
 

2016年8月11日木曜日

Arduino DDS Controller Bug Fix

 Arduino DDS controllerにバグが見つかった。これは、1.4,1.8,2.2総てのTFTタイプのものに共通である。
内容は、送信時の周波数シフトがうまく制御されないと言うものである。
 今回試作試験をしてくださったSさんからの情報である。感謝。
一応総ての動作確認を行い、問題ないと思われるので、FIX版としてDownloadサイトに掲載した。
 掲載にあたり、過去バージョン等混乱しそうなことと、ファイル名が今一分かりにくいこと、更にこれを基に改良をされている方もあることから、今回のBugFix版をマスターとしてファイル名を変更しUPした。基本型として以下の3種である。


 The bug was found in Arduino DDS controller. This is common to something of 1.4,1.8,2.2 all TFT type.
The contents say that the frequency shift when trancemit_mode, isn't controlled well.
 Information from Mr. H who did an experimental production test this time. Thanks Mr.S.
I checked the operation of everything just in case, and it seemed no problem, so it was carried in a Download site as FIX edition.
File name is changed as a [master]. It's the following 3 kinds type.

 
1.44inch TFT Type (NKDVFO14.master.ino)

1.8inch TFT Type (NKDVFO18master.ino)

2.2inch TFT Type (NKDVFO22master.ino)


 

2016年8月9日火曜日

Arduino DDS Controller with TFT LCD

 Peterさん(GW4ZUA)から嬉しいメールを頂いた。2.2inchTFT DDS VFOを作られたのだ。自分の作ったVFOコントローラーを実際に作ってくれているHAMがいるというのは、本当に嬉しい。
 しかも非常に丁寧な作りである。実際に機器に組み込んで使用するのは、私よりも早いかもしれない。頑張らねば。
 ルーマニアの Nic(yo6qcm)さんに続きイギリスからもこのような報告があるということは、自作が更に楽しくなる。今後も世界の友達と楽しく自作を続けて行きたいものだ。
Peterさん有難う。

  I received a wonderful mail from Mr. Peter (GW4ZUA). He made 2.2inchTFT DDS VFO.
 He may make a transceiver using this VFO earlier than me.
 I'll exert myself, too.
 I'm really happy to have got a report from Mr.Peter(GW4ZUA) following Mr.Nick(YO6QCM).
 I'd like also to continue the making happily with a friend of the world wide.
 Thank you very much for Mr. Peter.






2016年8月6日土曜日

Arduino LCD Interface

 Arduinoに使用されているLCDは、かなりの種類がある。これらのLCDは、携帯電話等に使用されたもののようであるが、その仕様についてはあまり詳しい情報がない。
 いままでのVFO製作に使用したLCDは、ILIと言う記号のついたドライバーICを採用したものだ。これを使った製作例が多くあることと、ライブラリーが容易に入手できたから使っている。そこで、これらLCDについての備忘録として端子記号とインターフェースについて記録しておく。

 使用してきたLCDの外観を示す。同様なイメージでもバージョンが違う等幾つか存在する。総てを使用したわけではないので、どれも同じとは言えない。販売者が掲示している情報を注視して選択するしかない。


 これらLCDとarduinoを接続し、スケッチにライブラリーを設定し使用することになるわけであるが、これがまた、LCD,ライブラリー、arduinoとそれぞれ記号が違う。誤配線やスケッチで毎回混乱する。そこで早見表を作ってみた。この接続は、ハードウェアSPIという通信方式で、arduinoに標準的に組み込まれているライブラリーで使用する方式だ。これ以外にもソフトSPIといって汎用DI/Oを使用しても可能であるが、SPIの方がスピードが圧倒的に早い。その代わりDI/Oが固定されている。ILI系以外にも使用例の多いST系LCDも参考に入れてある。
 見方としては一例として、
ILI系のLCDでSCK端子は、UCGライブラリーを使用してarduinoに接続する場合は、SCK端子をインターフェース(後で説明)を経由してD13に接続する。スケッチではSCLKとして設定する(されている)。
 

インターフェースについて
 LCDは3.3V動作である。Arduino UNO,NANOは5V動作である。従って直接接続することは出来ない。Arduinoから0-5Vのデジタル信号が出てくるので、これを0-3.3Vのデジタル信号に変換してLCDに接続するわけである。
 そのインターフェースには幾つか方法がある。その一つがCD4050やCD4010といったコンバーター用のICである。これらは、TTLとCMOSICを接続するためのバッファ用ICである。その使い方は以下の回路図を参照にしてほしい。注意点は片方向通信となるので、ArduinoからLCDへの一方通行である。表示するだけであればこれで問題ない。将来SDカードやタッチパネルが付いた物を使用する場合は、逆方向も必要となるので注意。
 次にVFOでも仕様しているが、FXMA108という8bit双方向ロジックレベル変換ICである。これは、8bitの双方向が可能で入出力も左右対称になっているので、結線や、P板パタンが簡単となる優れものである。幸いDIP基板化したものが秋月で販売されている。
          http://akizukidenshi.com/catalog/g/gM-04522/
 これを使用しておけばひょっとして逆方向に使うときも気にすることが無くなる。
 最後に抵抗分割で接続する方法で、arduinoの端子から3.3KΩを直列に接続し、LCDに接続する。その端子から6.8Kオームでアース(GND)に接続する。これで5Vから3.3Vくらいに分圧されて接続できるはずである。実際の使用例も幾つか見られる。試しに実際にやってみたが動作した。まあ、緊急避難方法と考えたほうが良いと思う。
 お勧めはFZMA108である。

LCD電源について
 LCDの内部は3.3V動作である。上記LCDは5V供給、3.3V供給どちらにも対応できるようになっている。標準は5V供給であるが、基板上のJ1をジャンパすれば、3.3V供給が可能である。
LCDのバックライトとLCD本体の電源をどうするかであるが、本体の消費電流は20mA以下のようなので、私は、arduinoから3.3Vを供給し、バックライトLEDは別電源としている。

LEDバックライトについて
 LCDバックライトにはLEDが使用されている。電圧は3.3Vである。実際に測定してみると
 1.44inch-30mA 1.8inch-40mA 2.2inch-70mAであった。
使用例を幾つか見ると3.3Vをarduinoから供給している場合が多い。そこでaruduinoの仕様を調べてみたが、どうも50mAくらいらしい。本家では明確な記述が見つからなかった。
LCD本体の電源等を考えた場合LEDの電源は別に用意したほうが良さそうである。少なくとも2.2inchはオーバーする。そこで別に用意した5Vから抵抗を介して接続するようにしている。抵抗値は回路図に記しておいた。(但し私の持っているものの測定)


以上 自分自身の備忘録としてのUPです。お気づきの点があればコメントをお願いします。

2016年8月3日水曜日

Arduino about library

 Arduinoを始めて3ヶ月になったが、色々なトラブルに遭遇した。特にライブラリーについてのトラブルが目立つ。そこで経験したライブラリーに関してまとめておくこととした。
尚、以下のことはArduinoIDE1.6.5においての内容である。

【ライブラリーのインストール】
 以前のバージョンでは手動のようであったが、現バージョンでは、IDEの中でインストールが出来るようになっている。標準の手順は以下の通り。
  1.  必要なライブラリーZIPをダウンロードし、適当なフォルダーに保存
  2. メニューバーの「スケッチ」をクリック
  3. 「Include Library」をクリック
  4. 「Add ZIP Libraly」をクリック
  5.  表示されたダイアログで、保存したフォルダーに移動し、該当のライブラリーZIPを選択
  6.  ArduinoIDEを一旦終了し、立ち上げなおす。
 以上でライブラリーリストに表示されます。
 然しながらこれで旨くいかない場合がある。登録時にエラーが出るときもあれば、インストールされ、リストに出るが、コンパイル時にエラーとなることがある。
 又、Windowsのバージョンによっても挙動が違う。
 どうもライブラリーの作り方、特にZIPの作り方で問題があるような気がする。
 そこで私は、以下の手順としている。
  1. 必要なライブラリーZIPをダウンロードし、適当なフォルダーに保存
  2. ZIPファイルを解凍する。
  3. 解凍されたライブラリーフォルダーをドキュメント→arduinoフォルダー→Library内に移動
  4. ArduinoIDEを立上ライブラリーがリストにあることを確認する。
 Arduinoのライブラリーは、ドキュメントのarduinoフォルダー内のLibraryフォルダーに入れるのであるが、arduinoIDEのフォルダー内にもLibraryフォルダーがある。ここにおいても同様に使用できる。ここにはarduino標準のライブラリーがあるので、ユーザーが登録するライブラリーはドキュメントのほうに入れるほうが、将来IDEのバージョンアップの再にも楽である。

【ライブラリーについて】
 ライブラリーには色々なものがある。どれを選択するかが難しい。使用例などを見て選択するといいと思う。同じライブラリーでも、arduino用とそうでないものがある。注意を要する。
 スケッチを作る場合、これら使用ライブラリーの入手先を明示することが親切である。私もスケッチ内に記述するよう心がけることとした。
 また、該当ライブラリーでコンパイル時にエラーとなることがある。
 以下にいままで使用したライブラリーでの注意点をまとめておく。
  • ロータリーエンコーダ用ライブラリー
     「rotary.h」と「Rotary.h」と2種類ある。内容は同じであるが「r」と「R」の違いである。使用するときに大文字小文字を間違えないようにする。Arduinoは大文字小文字を明確に判定する。
  • DDS AD9851用ライブラリー「EF_9851.h」と「AD9851.h」と2種類ある。命令の書き方も違うのでサンプルファイルで確認のこと。 いままでのVFOでは「EF_AD9851.h」を使用してきた。このライブラリーにも注意事項がある。そのままでは、コンパイル時にエラーが出る。以下の対応が必要である。ライブラリー内のEF_AD9850.hをテキストエディター等で開き以下のように修正する。
    27行目 #include "WProgra.h" →#include "Arduino.h"
  • TFT LCD用ライブラリー(ILI9163C)
     「TFT_ILIILI9163C.h」という1.44inchTFT LCD用ライブラリーであるが、1.44inch (128x128)LCDにおいて、そのまま使用すると画面が32dotずれて表示される。これは、(128x160)のTFT LCDと(128x128)との違いと思われる詳しくは分からない。対応としては以下のように変更を行う。

    TFT-ILI9163CLibrary内の「-settings」フォルダー内の「TFT_ILI9163C_settings.h」ファイルをワードパット等TEXTエディタで開き下記赤字32を0にする。

    #define _TFTWIDTH 128//the REAL W resolution of the TFT
    #define _TFTHEIGHT 128//the REAL H resolution of the TFT
    #define _GRAMWIDTH 128
    #define _GRAMHEIGH 160//160
    #define _GRAMSIZE _GRAMWIDTH * _GRAMHEIGH//*see note 1
    #define __COLORSPC 1// 1:GBR - 0:RGB    
    #define __GAMMASET3 //uncomment for another gamma
    #define __OFFSET 0 32//*see note 2   //32を0 にする
  • TFT LCD用ライブラリー(Ucglib.h)
    2.2inchTFT VFOで採用したucglib.hというライブラリーであるが、ILI9163Cと同様1.44inchTFTで使用すると、32dotのずれが発生する為、やはりライブラリーの中のファイルを一部修正する必要がある。修正箇所は以下の通り

    Ucglib_Arduino-master → src → clib → 「ucg_dev_ic_ili9163.c」ファイルをワードパット等TEXTエディターで開き 32を0に変更する。

    134行目
    ucg->arg.pixel.pos.y +=0 32;
    ucg_com_SendCmdSeq(ucg, ucg_ili9163_set_pos_dir0_seq);
    ucg->arg.pixel.pos.y -=0 32;
    以下同様の32とある部分を総て0に変更する(14箇所ある)
    もし分からなければ、変更したものをメールで送ることも可
以上いままでに遭遇したライブラリーでのトラブルである。これらのことをまとめておくフォーラム(海外はフォーラムが沢山ある)が期待される。またご存知の方があればお教えいただきたい。