ラベル AVR の投稿を表示しています。 すべての投稿を表示
ラベル AVR の投稿を表示しています。 すべての投稿を表示

2022年7月29日金曜日

Making a DDS-VFO

DDS-VFOを作る:私だけの受信機設計

DDSで作る多用途VFO
 今さらですが通信型受信機の3要素(3S)といえば「感度」「選択度」「安定度」です。ただ、昔と今の受信機ではそれぞれのウエイトはかなり違っています。

 例えば最重要視された「感度」は最近のデバイスを使い設計さえ誤らなければ容易に達成できます。まともな設計なら「感度不足」を心配する必要などないのです。

 「選択度」も水晶振動子の進歩でVHF帯に及ぶ周波数範囲で最適なフィルタが製作できます。フィルタの自作に於いても測定器と設計ツールの発展で先人が想像さえできなかったような画期的な状況にあります。 さらに最近はデジタル処理で任意の特性のフィルタが数値演算的に可能になっておりかつての受信機のような課題も無くなってきました。

 その一方で「周波数安定度」は一段と高度なものが求められています。音声(SSB/FM)や無線電信(CW)ならともかくデジタルモード(FT8など)では安定度の良いことが前提になっているからです。 従って簡易な無線機ならともかく様々な用途で普通に使える「通信型受信機」であるためには周波数安定度を「近代化」する必要があるでしょう。

 「私だけの受信機設計」・第8回ではDDSを使ったVFO(可変周波発振器)を製作します。 DDS-VFOの出力を受信機の局発(Local-OSC)としてミキサ回路に加えます。 そのため受信機の周波数安定度に直結しますから周波数安定度に優れた発振器が製作目標です。スプリアスが少ないことも重要です。DDS-VFOで注意した点など製作の過程を辿ります。

                   ☆

 先日、HAMの仲間とアイボールしたとき「ブレッドボード以外でも作るんですねえ!」なんて言われてしまいました。 確かにハンダ付けで「本格的らしく」製作した作品を見るのは珍しいかも知れないです。(笑)

 実験品ならともかく、やはりある程度実用的に使うものはきちんと製作しないとダメです。いくら上手に作ってもブレッドボードのままでは限界があるでしょう。
 今回のDDS-VFOも実験用ではありますが汎用の発振器として様々な目的に使うつもりです。要所はきちんとハンダ付けして作り「箱」にも収めました。バラックのままでは使い難いですからね。(このDDS-VFOはバラックだったものを箱に入れて纏めたもの)

 なるべく手間と費用を掛けず目的に合ったものを作るのが目標です。可能な範囲で手持ちの基板やユニットを活用します。自身の都合に合わせた設計になっていて、文字通り「私だけの受信機設計」です。ほかの人の役には立たない「プログラム・リスト」は省きました。(継ぎ接ぎだらけの『スパゲッティ状態』なのでお見せできません。笑)

 このDDS-VFOはごく簡単な機能だけで出来ています。肝心のDDS-ICの制御方法はAD9833やAD9834を扱う以前のBlogページ(←リンク)に書きました。 マイコンや書き込みツールを扱えるのでしたらニーズにマッチしたVFOの製作は難しくないでしょう。

 差し当たっての目的は受信機の局発(局部発振器:Local oscillator)です。 従って必要な周波数範囲がカバーされ、周波数が安定していればどんな発振器でも良いわけです。良質な部品の手持ちがあり板金工作のウデに覚えがあればLC発振のVFOを製作するのも面白いです。
 デジタルで行くならPICマイコンやarduinoを使った周波数コントローラを作るなり、DDS-ICの代わりにSi5351Aのようなチップを使う方法もあります。

 とりあえず製作中の「通信型受信機」の実験のために必要なのは7440kHz〜7640kHzの発振器です。50Ωの負荷に2Vppくらい(=10dBm)の出力があれば十分です。 もし局発を下側にとるのであれば発振周波数は6560kHz〜6760kHzでも構いません。

DDS Controler:DDSコントローラ回路図
 図はマイコン:ATmega328P-Uを使って、DDSチップ:AD9833の発振周波数をコントロールするための回路です。LCD表示器に受信している周波数がデジタル表示されます。なお、送受信の制御機能があります。送信モードに切替えると「表示周波数=発振周波数」になります。この機能を使えばごく簡単にCWトランシーバが作れます。

 図面左上部分にDDSチップ用のクロック発振器とDDSチップが載ったモジュールの部分回路が書いてあります。コントローラとの接続を明確化するためこの図面に置きました。

 そのクロック発振器とDDSモジュールはコントローラ部とは別体の基板上に搭載されています。(後述)

 マイコンを使ったDDSコントローラは過去のBlog(←一例にリンク)に何度となく登場しています。 DDSモジュール上のDDSチップ:AD9833に発生すべき周波数のデータを送るのが主な機能です。周波数の可変はロータリ・エンコーダを使いアナログチックに行ないます。 これは受信機の受信周波数を操作するとき最もやり易い方法だからです。 数値的にインプットする方法も可能ですが、バンドを隅からワッチして行くと言った扱いにはアナログチックにダイヤル操作する方法が優っているでしょう。テンキーで数字をインプットするなどと言うのではナンセンスです。

 マイコンチップは何でも良いです。ここではAVRマイコンのATmega328P-Uを使っています。以前のBlogではmega8を使っていましたがチップを乗り換えました。 マイコン自身はチップに内蔵のクロックで動作しています。その方が周辺回路に及ぼすクロックの漏れは少なくて済みます。

 表示器には青色のバックに白抜き文字のLCDを使いました。16文字2行のタイプです。制御はパラレルで4ビットのモードで使っています。 最近は同じAVRマイコンでもarduinoを使う人が多くなっています。その場合は同じようなLCD表示器でもシリアルインターフェースのものを使います。自身が使うコントローラに合わせた表示器を調達します。

 なお、arduinoの互換品を作るわけではありませんが、製作には互換基板を自作するために販売されている部品未実装のプリント基板を「単なるマイコンボード」として流用しました。 この図面はマイコン周辺に接続するスイッチやボリウムなどへの配線を明確にするために書いたものです。互換基板の情報は次項に示します。

arduino互換ボードを活用する
 秋月電子通商で安価に販売されているarduino互換ユニット製作用のプリント基板を流用しています。この基板は28ピンのATmegaX8シリーズのAVRマイコンならどれでも使えます。
 たぶんarduinoの互換品を作るならATmega328P-Uが良いでしょう。しかしこのDDSコントローラに使うだけならATmega8やmega48、mega88、mega168でも支障ありません。これらのATmegaチップのピン配置は基本的に互換だからです。意外に幅広く活用できる基板です。(2022年7月現在、基板は単価150円で販売されています)

 マイコン基板とは言っても、電源のレギュレータや幾つかの部品が実装されるだけです。しかしマイコンのI/Oポート(接続端子)は全て引き出されていますし、コネクタが実装できるようになっているので便利に使えます。ぜんぶ手配線するより楽なので流用しているわけです。LCD表示器やDDSチップとの接続にも基板周辺に装着されたコネクタを使います。

 LCD表示基板やDDS発振モジュールとの接続には端部にピンヘッダが付いた既製品のワイヤを多用しています。従って配線替えも簡単にできます。

 左図は以前のBlog(←リンク)で既出ですが一部をアップデートしてあります。この図には各I/Oポートの接続先が具体的に記載されていますのでモジュール/基板間の布線確認用に使いました。

LCDは青色・白抜き文字型
 この写真も既出です。マイコン基板とLCD表示器の接続テストをしているところです。

 DDS-VFOの筐体内部に収めたのも基本的にこれと同じものです。 表示器には写真のような青色バックに白抜き文字のLCD表示器を使っています。 先ほど登場したコントローラ部の回路図もこのLCD表示器を使うように書き換えてあります。

 以前の定番にしていたLCD表示器はバックライトが暗いためたくさん電流を流す必要がありました。明るいところならバックライト無しでも視認できると言ったメリットはあるのですが既に旧式なので使うのはやめています。 最近は写真のような青色バックに白抜き文字のLCD表示器が安価に出回っています。バックライトの白色LEDの発光効率が良いため少ない電流で十分なコントラストが得られます。

 残念ながら、ここで使ったLCDモジュールのバックライト用LED(白)は劣化が早いようです。連続点灯させると半年もせずに変色と輝度低下が見られます。 例えば時計のように連続して点灯させる機器にはもう少し良い表示器が欲しいでしょう。しかし安価なので止むを得ない感じですね。それに時々使うような機器ならほとんど支障は無いと思いますが。

中国製のロータリ・エンコーダ
 DDS-VFOの操作性を決めるロータリ・エンコーダは中国製のNC制御用と称する物を使いました。

 このエンコーダは1回転あたり100ステップです。以前から使っている1回転24ステップのエンコーダよりも早いダイヤル送りが可能なので受信機に使うと操作性が良くなります。 しかもパルスエッジ検出方式で使い1回転あたり400ステップとして使います。

 1ステップあたりの回転角は360/400(度)なのでわずか0.9度になります。 操作がクリチカルにならないか心配しましたが、ツマミの直径がわりあい大きい(約47mm)ので支障はありませんでした。むしろクイックなダイヤル送りが可能になって使い易さがアップしています。(参考:かなり早めに回したとき幅2mS程度のパルス波が出力される。A/Bの2相を使った4倍速なのでマイコンのUP/DOWN処理は500μS以内に行なう必要がある)

 従来使っていた安価なロータリ・エンコーダでは4倍速に改造しても1回転あたり96ステップにしかなりませんでした。そのため周波数を大幅に変えるにはダイヤル・ツマミをたくさん回す必要がありました。基本は10Hz/Stepなのですが、それを補うためダイヤルスピードを100Hz/Step、1kHz/Step、20kHz/Stepに切り替えるスイッチが設けてあります。
 この中国製エンコーダを使ったことで100Hz/Stepの切り替えは不要になったくらいです。バンド幅が狭いHF帯ローバンドの受信機なら実用上スピード切替はなくてもあまり不便に感じません。 送料込みで単価¥1,000-〜¥1,500-ですから中華モノとしては多少高価な部品です。しかし作りもしっかりしているのでメリットは大きいと思っています。このロータリ・エンコーダには+5Vの電源を与えて使います。(6端子型と4端子型の2種類がありますが4端子型を選びました)

                 ー・・・ー

クリックなし改造方法
 購入したままではクリック付きの100ステップ型です。このDDS-VFOに使うにはクリックを外す必要があります。改造方法は以下に示しますが、わかってやれば簡単にできます。

 改造はダイヤル・ツマミの側から行ないます。(黒い裏面には手をつけません)
 まず、突き出ている早送りノブを外します。続いてツマミの表面に接着されている薄いアルミの飾り板を曲げないよう上手にはがします。両面粘着テープで貼ってあるので少々やり難かったです。
 飾り板を取り除くとネジの頭が3つ見えますのでそれを緩めて取ります。ネジでツマミの部分と目盛のある傘状の部品が一緒に止めてあります。ツマミと傘を除くと「クリック機構」を覆っている細い円弧状の薄い金属製のカバー板が見えてきます。

その薄い金属製カバー板は持ち上げるとわりと簡単に取り除けます。 その中にクリック感を作り出す「ピン」と押さえの「板バネ」が見えるでしょう。φ1.4mm長さ3.5mmくらいの小さな「ピン」をピンセットで引き抜いて取り除けばクリックなしへの改造は終了です。
 板バネはそのまま残しておいて支障ありません。「ピン」を除くだけでOKです。また金属製カバー板は外したまま元に戻さなくても大丈夫でしょう。あとは逆の手順で組み立てれば完了です。
 これでクリックなしのロータリ・エンコーダになりました。改造にあたってJA6IRK/1岩永さんにFBな情報をいただききました。有難うございます。

 簡単な改造ですから失敗しないと思いますが自己責任で実行してください。もちろんそのままクリック付き100ステップのダイヤルとして使っても良いのでお好みで改造されてください。(クリック付きダイヤルのまま使うにはマイコン・アプリも関係しますが詳しいことは省きます)

 このロータリ・エンコーダはパネル面にφ42mmの大きな穴を開ける必要があって少したいへんでしたが奥行きが浅いので厚みのないシャシに収容するには最適でした。

                   ☆


出力アンプ部回路図
 DDSチップ:AD9833の出力は-15dBmくらいです。これは50Ωに変換した後の大きさです。(50Ωの両端に110mVppくらい)

 受信機のミキサ回路に与えるには小さいためパワーアップする必要があります。 汎用の発振器として使うにももう少し大きな出力が欲しいところです。 またAD9833の出力そのままでは折り返しスプリアスが含まれているので、必ずLPF(ローパスフィルタ)を補う必要があります。 ここで使用したAD9833:DDSモジュールとその具体的な使いかたについては以前のBlog(←リンク)に情報があります。

 AD9833は基準となるクロック信号が不可欠です。このDDS-VFOでは81MHzの発振器によって得ています。AD9833に外付けでクロック信号を与える話はこちら(←リンク)にあります。
 AD9833のようなDDS-ICでは実用的な上限周波数はおおよそクロック周波数の40%程度までです。 ここでは81MHzのクロックを与えていますから上限は32.4MHzくらいになります。 ローパスフィルタ(LPF)はその周波数に合わせて設計します。クロック周波数に依存するわけです。 実際にはやや内輪の、カットオフ周波数が30MHzのLPFを使いました。 単なるπ型のLPFでは遮断特性が悪いため有極型で帯域外減衰特性の良いフィルタを作ります。 手持ち部品の都合で設計値を幾らか丸めて作りましたが必要とする性能は十分に得られています。

 LPFの後のアンプには「広帯域アンプ」を使います。 アンプ初段にはNECの広帯域アンプ用MMICであるμPC1651Gを使いました。既に旧式ですが手持ちの都合です。 ゲインは十分なのですが小さな入力でも出力に非対称歪みが見られるようです。 従って図の回路定数よりも*1の部分のアッテネータを大きくする方が好ましいでしょう。 現状は3dBのアッテネータですがこれを6〜8dBくらいにして入力を減衰させると良いです。もちろんその分だけ出力のパワーは低下します。
参考:μPC1651Gの代替方法:現在はBGA2851/NXPセミコンダクタ製などがお薦めできます。秋月電子通商で単価20円で買えます。ゲインの違いはATTで加減できます)

 μPC1651Gのままでは出力0dBmくらいが上限です。 さらにパワーアップのために2段目にはfTの高いトランジスタを使って広帯域アンプを作りました。使った2SC2407(NEC)は500MHzにおいて5mW入力で160mWが得られると言うパワフルな小電力用トランジスタです。 他にも適当なトランジスタはたくさんありますがこうした広帯域アンプにはfTの十分高いものを使うのが秘訣です。2SC1815の様な汎用品では目的に合ったものになりません。
 この設計では放熱を考えてセーブした使い方になっています。 コレクタ電圧10Vでコレクタ電流は30mA流しています。これでだいたい出力電力:Po=50mWまでがリニアな動作範囲になっています。

 ゲインはμPC1651Gで17dB、2SC2407のアンプが21dBです。途中には6dBのアッテネータが入っています。 他にLPFなどのロスもあってアンプ全体のゲインは31dBくらいになりました。(@10MHz)
 DDS-VFOの出力は約+16dBmです。(16dBm≒40mW:50Ω負荷に4Vpp) これくらいパワーがあれば受信機のミキサ回路には十分です。 実際には数dBのアッテネータで減衰させてから受信機のDi-DBM:ADE-1に加えることになります。

 この回路図には記載が漏れていますが+10Vの電圧を作るために3端子レギュレータを使っています。これはこのアンプ部に安定した+10Vを供給するためです。3端子レギュレータには500mAタイプの78M10を使っておりシャシ底面に放熱を兼ねてねじ止めしています。もちろん1Aタイプの「7810」でもOKです。 DDS-VFOのメイン電源には外付けのACアダプタを使っていてDC12〜15Vで300mA程度のものが必要です。通信機に使うことを考慮してスイッチング型ではなくトランス式のACアダブタを使いました。

出力アンプ部で使うコイル
 製作を思い立って面倒に感じたのがコイル巻きです。嫌いではないのですがやはり手間に感じます。

 最初は75MHzのクロック発振器を予定していました。写真の7mm角コイル①はその75MHz用に巻いてあります。(使いませんでした) その後、基本波が27MHzのクリスタル(水晶発振子)が見つかったので81MHzに周波数変更しました。(27MHzx3=81MHz)

 写真にありませんが81MHzの発振器に使ったコイルはトロイダルコア:T25-#10に巻きました。1次側10回で2次側が1回巻きです。巻線はφ0.32mm/UEW線(ポリウレタン電線。ウレメット線とも言う。2UEWと称する物でOKです)を使いました。ちなみに1次側のインダクタンスは0.2μHです。 7mm角のコイルからトロイダルコアに変更したのは組み込みの都合です。基板上の部品の高さを抑えたかったからです。7mm角のコイルでは寝かせて実装せねばならず、そうすると調整が厄介です。

 AD9833を使った小型DDSモジュールにローパスフィルタ:LPFは載っていません。必ず外付けして使います。 そのLPFの設計はDDS発振器に与えるクロック周波数が出発点になります。 出来るだけクロック周波数が活かせるような設計にするわけです。

 上述の通りカットオフ周波数が30MHzのLPFを作ります。LPFに使うコイル(3つ)には適当な既製品がないのでトロイダルコアに巻いて自作します。 1.1μHと0.91μH (2つ)のコイルが必要です。 コア材はT25-#10でφ0.32mm/UEW線を巻きました。 L1用の1.1μHが23回巻き、L2、L3用の0.91μHが21回巻きです。 巻線が重ならぬようにして円周全体に均等に巻きます。使用したコア材の#10材は高い周波数向きでVHF帯まで使えるものです。

 メガネコアに巻いてあるもの②は巻数比が2:1のRFトランスです。 BN-43-2402というコア材に1次側が6回で2次側は3回巻きます。φ0.16mm/UEW線を巻きました。フェライトの素材は#43材です。このメガネコアは秋葉原の東京ラジオデパート3F:斎藤電気商会で手に入ります。
 RFトランスのインピーダンス比は巻き数比の2乗になります。従って負荷となる2次側が50Ωですから200Ω:50Ωとなります。DDSチップ(AD9833)の出力インピーダンスが200Ωなので50Ωへのインピーダンス変換に使います。 このトランスはおおよそ100kHz〜30MHzでフラットな周波数特性が得られるでしょう。巻き方はトリファイラ巻きではなく1次と2次が独立です。トリファイラ巻きが理想ですが配線の引き出しを考えて別個に巻きました。

 もしメガネコアが手に入らなければフェライト・ビーズ:FB-801-#43にトリファイラ巻きしたトランスが同じように使えます。φ0.16mm/UEW線を3本よじったトリファイラで6回巻いて作れます。

出力アンプ部は低背に作る
 このDDS-VFOは使用の便を考えてタカチのYM-200型薄型ボックスに組み込みました。平置きして使いやすいようにしたかったのです。

 そのため配線基板を収納するのが厄介になってしまいました。 はじめにパネル面のデザインを考えてスイッチや表示器のレイアウトを決めたので回路基板の配置が難しくなったのです。

 特にDDSモジュールとLPFなどを含むアナログ回路の組込が課題になりました。 検討の結果、シャシの底面側に直接取り付けてなるべく背丈(厚み)を抑えるようにすれば収納可能そうでした。

 写真のように高さが10mmを超えないように作ります。 DDSモジュールはAD9850を使った物も候補でしたがなるべく薄型にということでAD9833を使った小型モジュールになった訳です。 このAD9833のモジュールは写真のように小型で薄くできています。 こうした組み込みにはうってつけでした。

 ただしAD9833のDDSモジュールは購入したままだと25MHzのクロック発振器で動作します。 そのままでは発生周波数の上限は10MHzあたりになってしまいます。 とりあえず7MHzの受信機のテストには使えるのですがDDS-VFOとしての汎用性が損なわれます。なるべく高い周波数まで使えるよう外付けの発振器からクロックを与えることにします。(モジュールに実装済みの25MHzオシレータは除去します。詳細は以前のBlogで。←リンク) 外付けクロック発生用の27MHz水晶発振子(基本波)は寝かせて取り付けてあります。2SK19Yを使ってオーバートーン発振させ81MHzを得ています。

 トランジスタも寝かせて実装をすればより薄く作れます。そこまでの必要はなさそうなので写真のようになっています。 出力部のトランジスタを銅箔に放熱すればより大きなパワーが取り出せますがDDS-VFOとして必要は感じません。この程度で十分でしょう。

DDSクロックは81MHzで
 以前のBlog(←リンク)にも書いていますが専用の水晶発振子でなくてもオーバートーン発振は可能です。 ここで使用した発振子は27.000MHzのものです。なお、27MHzの水晶発振子には3次オーバートーンで27MHzを得る物があって、それは今回の目的には使えませんので注意が必要です。基本波が27MHzの水晶発振子が必要です。(参考:3次オーバートーンの27MHz水晶発振子は9次のオーバートーン発振が可能かもしれません。但し発振はだいぶ弱いでしょう) 27MHzの基本波水晶発振子が入手困難なら25MHzの発振子でも良いです。25MHzの方が入手し易いでしょう。その場合DDSのクロックは75MHzになります。

 27.000MHzの3倍は81.000MHzですがオーバートーン発振させると発振周波数に誤差を生じます。オーバートーン用に作られた発振子ではないためで、写真のように約74kHzの誤差が出ました。(約0.1%の誤差) マイコンをコントローラとして使ったDDS-VFOの場合、周波数の誤差は演算によって数値的に補正してしまいます。従ってDDSクロックに発振周波数の誤差や端数があっても支障はありません。もちろん発振周波数の調整も必要ありません。要は実際の発振周波数がわかっていればOKです。

(参考:実際には初めにクロックに誤差なしとして所定の周波数を発生させます。その発生させた周波数を周波数カウンタで精密に読み取ってクロック発振器の誤差を推定する方法が合理的です。実際にそうしました。さらに周波数を微調整する機能も持っているので少しならアナログ的な補正もできます)

 しかし周波数の変動があると補正するのは容易でないため気になりました。 周波数カウンタを接続してしばらく観察していたら変動は数ppmに収まりそうです。 ちなみに1ppmの変動は1MHzにおいて1Hz、10MHzなら10Hzです。

 なお、このDDS-VFOの刻みは最小で約0.302Hzです。(0.302Hz ≒ 81.074MHz/ 2^28) 従って、最大でその半分の約0.151Hzの設定誤差が起こり得ます。しかし0.151Hzの誤差ならSSB/CWにおいてはまったく問題になりません。それにそんな僅かなズレなどわからないでしょう。更にデジタルモードでも支障はないと思います。(・・と言っても実際にはダイヤルは最小で10Hz/Stepの設定ですから条件によっては±5Hzの同調誤差が出ます・笑) むしろ周波数変動(ドリフト or QRH)の方が問題かも知れませんね。

 DDS-VFOとして7MHzを発生させ観測していると15〜20Hz程度の初期変動がありました。電源ONの直後から30分経過後における変動量です。 その後は数Hz以内の漂動にとどまるようです。 DDS用のクロック発振器(81MHz)は単なる水晶発振器であり、TCXOやOCXOではないのでこの程度の変動はやむを得ません。それでもVFOとしてはLC-VFOや可変範囲を欲張ったVXOとは比較にならないくらい安定です。SSB/CW用通信型受信機の局発と考えれば満足できる周波数安定度でしょう。

 WSPRやFT-8のようなデジタルモードの受信機には少々物足りなさもありますが一般的な発振器(VFO)としては問題ありません。この先実際に使って様子を見たいと思います。 もしもこれ以上を望むなら外部から安定な周波数基準を与えると言った方法があります。 あるいはTCXOやOCXOを内蔵しそれを逓倍してクロックにすると言った方法になります。 それはちょっと大げさで別の意味の製作になってしまいますね。

DDSで作った汎用VFO完成
 一連の受信機の開発・試作では必要のつど既製品の発振器を使っていました。 しかしそれでは大げさですし、IF周波数分の表示オフセットを与えると言った操作はできません。 どうしても不便がありました。

 しかしシャシ加工を行ない回路を組み込んでDDS-VFOを作るには相応の努力を要します。 特に板金加工は苦手です。なかなか腰は重かったのですが他の事情もあって製作に踏み切りました。

 出来上がってみますとやはり便利です。 もともと受信機やトランシーバの局発回路を考えてありますから使いやすいのは当たり前でしょう。用途に応じてプログラムだけで変幻自在なのも便利です。書き込み用コネクタを設けたので「箱」を開けずに書き換えできます。 得られた信号のC/Nもまずまずで妙なスプリアス受信も感じません。今さらながら作って良かったと思います。

 組込み用VFOとしての機能試験も兼ねています。自作の受信機やトランシーバにも適当そうなので次回の製作は違った構造で作ることになるでしょう。 製作例のように平べったく作るには少し工夫が必要でしたね。hi

 以下はDDS-VFOの使い方メモ。
(1)前回Blog(I-F Amp.第3回←リンク)の簡易フロントエンドでの使用を想定。
(2)ミキサーのADE-1には8〜10dBのアッテネータで減衰させて与えること。
(3)受信モードにおいて出力信号の周波数はLCDに表示の周波数+中間周波数(440kHz)である。従って製作中の受信機ではLCD表示周波数=受信周波数。
(4)局発を上側に取った差のヘテロダインゆえSSBはサイドバンドが反転。
(5)送信モードでは「発振周波数=LCDの表示周波数」になる。RITの値=ゼロである。
(6)周波数範囲は100kHz〜30MHz。ソフトウエア的にリミット。Po=約16dBm/50Ω。
     ・・・以上、自身の備忘として。

                   ☆

 どなたかが「受信機はフロントエンドができれば完成のようなもの」と仰ったとか。 昔の話ですから、たぶんその受信機のフロントエンドというのはRF部だけでなく局発を含んだものでしょう。 確かに「そこ」が出来上がればあとはI-F Amp.以降になります。 周波数は固定していますし、ひたすら増幅すれば良いので完成も近づいたでしょう。

 実は「私だけの受信機設計」ではフロントエンド部分の心配はあまりしていませんでした。もちろん、RFアンプなどに課題もあります。ですが少なくとも「局発」の部分はすでに確立しています。昔の受信機において(大いに)問題だった周波数安定度の心配はいりませんからね。

 次回はもう少しVFO(局発用)の話になるかもしれません。RFアンプなど含むフロントエンド部も考えていますが・・・。AFフィルタ付きの低周波部もまだでした。 ではまた。 de JA9TTT/1

つづく)←リンクnm

私だけの受信機設計・バックナンバー】(リンク集)

第1回:(初回)BFO/ビート発振器の回路を検討する→ここ
第2回:BFO/ビート発振器の実際と製作・評価→ここ
第3回:プロダクト検波器の最適デバイスと回路を研究する→ここ
第4回:プロダクト検波器の実際と製作・評価→ここ
第5回:I-F Amp.中間周波増幅器のデバイスと回路の検討→ここ
第6回:エミッタ負帰還型AGCで高性能I-F Amp.を作る→ここ
第7回:I-F Amp.増強とPIN-Di詳細/(含)簡易フロントエンド・IF-フィルタ→ここ
第8回:DDS-IC・AD9833で周波数安定で便利な局発用発振器→いまここ
第9回:高性能フロントエンドで活きる最適デバイスとその活用の実際→ここ
第10回:フロントエンド・Bus-SWとハイレベルDiミキサを比較する→ここ
第11回:古いAM/FMチューナが高性能なプリミクスVFOに大変身→ここ
第12回:音色が良いAF-CWフィルタと低周波アンプを作る(最終回)→ここ

2020年12月15日火曜日

【回路】AD9833 DDS Module Control

DDS:AD9833を使ったDDSモジュールのススメ

abstract
Try the DDS module using the AD9833. I bought this DDS module from a mail order company in China. It is very inexpensive, but the performance is good. The signal obtained by this DDS module has good frequency accuracy and the spectrum of the signal is clean. I would like to explore the basic use of the DDS module first. (2020.12.15 de JA9TTT/1 Takahiro Kato)

AD9833 DDS モジュール
 AD9833を使ったDDSモジュールはお買い得です。写真のこれは昨年(2019年)の2月頃購入したものです。いまでも同じように手に入るでしょう。 DDS-ICのAD9833と25MHzのクロック・オシレータが搭載された切手大の基板モジュールが一つ100円台で手に入ります。 中華通販で購入しますがコロナ禍の影響も徐々に緩和しつつあるようです。最近ではだいたい以前のような日数で手に入ります。

 自作好きでしたら「DDS」はご存知と思いますがDirect Digital Synthesizerの略称です。簡単に言えばデジタル回路の技術を使った発振器です。任意の発振周波数(*1)が得られしかも周波数安定度は極めて良好です。1990年代末に専用のLSIが登場してから一般化しました。HAMの自作では送信機や受信機の周波数とその安定度を決める重要な発振器として使われます。AD9833は米アナログ・デバイセズ社のDDS-ICチップです。

 AD9833のモジュールは手軽なのは良いのですが、自作HAMの人気はいま一つのようです。たぶん高い周波数の発生ができないからでしょう。 通販業者の能書きでは12.5MHzまで可能なように書いてありますが、これは現実的ではありません。だいたいクロック周波数(25MHz)の1/3の約8MHz、あるいは工夫して10MHzあたりが実用的な上限周波数だと思います。 それでも良好な周波数安定度を持った発振器・・・例えばVFOの様な用途には重宝する筈です。

*1:厳密に言うと飛び飛びの周波数なので、完全な「任意の周波数」ではありません。ただし刻みは約0.0931Hzです。感覚的には「連続に任意の周波数が設定できる」と言えます。

                   ☆

 中華通販で良さそうな物が目に止まるとついついポチってしまいます。そんな購入品がだいぶ溜まっています。 いつか役立つとは思いますが開封さえしていないのではもったいないですね。
 たまたま、周波数可変できる発振器が欲しくなったのですが普通に作ったLC発振器では周波数安定度が足りません。 そこで簡単に使えそうなAD9833 DDSモジュールを思い出しました。 着手してはじめは少し迷ったのですがデータシートを良く眺めたら簡単に行けそうなことに気付きました。こんなことならもっと前に・・・届いた時にでもテストしておけば良かったくらいです。
 自作好きには既知のデバイスでしょう。使いこなしている人も多いと思いますが、簡単に纏めておくことにしました。いつものように自家用の纏めです。もし興味でもあればこの先もお読みください。使い方の基本がまとめてあります。

AD9833はどんなDDSチップか?
 AD9833はシンプルで低消費電流のDDSチップです。簡単に言ってしまうと、このBlogではすでにお馴染みになっているAD9834(←リンク)の簡略版(サブセット)と言えます。
 DDSチップとして得られる機能は概ね同等ですが、AD9834の20ピンに対してAD9833は半分の10ピンに削減されているため、ハードウエア的な機能はだいぶ省略されています。また、クロックの上限周波数が半分の25MHzと低いのも大きな違いと言って良いでしょう。そのため発生可能な上限周波数も半分になっています。

 それでも、あまり高い周波数は必要とせず、ハードウエア的な制御機能も要しない簡易なファンクション・ジェネレータのような発振器を作るのでしたらシンプルで良いかもしれません。 HAMの用途を考えたとき、出力波形としては正弦波があれば十分です。その場合はAD9834とまったく同じような使い方になるわけです。古すぎるかも知れませんが、例えばFT-101やTS-520と言ったアナログ名機の周波数安定度を向上させる外付けVFOにも最適でしょう。

 AD9833は上限周波数が低いという欠点はありますが消費電流も少ないため電池動作のRigに適しています。 簡単な無線機のVFOといえば従来は主にVXOが使われてきましたが、それを置き換えられるでしょう。上限周波数が低いとは言っても旨く使えば10MHzあたりまで行けます。コンパクトで消費電流が少なくデジタル読み取りできるVFOを内蔵したポータブルなRigが実現でます。(参考:実際にはもっと高い周波数の発生も可能です。詳しくは続編(←リンク)の参照を)

ごく簡単な使い方
 一言で言うと、AD9834と同じ方法で使えます。様々な機能を使おうとすればそれだけ複雑になります。 しかしHAMがDDSをVFO・・・「周波数が可変できて安定度の良い発振器」・・・のように使いたいだけならAD9834との違いはないのです。

 コントロールの方法ですが、データシートを眺めるとAD9834とは何となく違うように感じました。 しかし、左の説明を良く読んだらAD9834とそっくり同じで良いようです。これに気付くまでは、フローチャートを眺めたり、複雑そうに見える設定表を見てどうしようか・・・と思案してしまいました。 確かに、すべての機能を使いたいなら精読して使いこなさねばなりません。

 ここでは周波数が可変できる簡単な発振器がさしあたっての目標です。従ってその機能に限って使えれば良いので、とても簡単に・・・AD9834と同じに使えば良いわけです。

お試しプログラム
 手に入れたAD9833 DDSモジュールには25MHzのクロック・オシレータが搭載されています。買ったものが正常に動作するか否かは左図のようなプログラムで確かめられます。AD9833を初期化してから7MHzを発生するように数値データを送っているだけです。 とりあえず、これで7MHzの発振器になるので周波数カウンタや受信機で動作確認ができるわけです。

 プログラムはBASCOM AVRで書いてあります。昨今はArduinoの方がポピュラーなようですが、テストに使う手元ツールの都合でBASCOM AVRにしました。 Arduinoだとあらためて作らなくてはなりません。まあ、ブレッドボードなら簡単なんですけれど・・・。なお、 Arduino用には既成の「スケッチ」(プログラムのことをこう呼ぶ)がネット上に出回っているようなので、他に何もない環境でも簡単に試せるようです。興味があれば検索で探してみてはいかが?

 左図リストのもう少し詳しい説明はリンク先(→ここ)にありますので、参照してください。 リンク先のプログラムはクロック周波数が67MHzのAD9834用です。 左図のプログラムは25MHzのクロック発振器が搭載されたAD9833 DDSモジュールで7MHzが得られるように変更してあります。 働きそのものはまったく同じです。

制御はマイコンで
 AD9833 DDSモジュールは単独で通電しても使いものになりません。必ずマイコンやパソコンでで制御します。もっとも、所定のビット列をハードウエア的に与えても動作はしますので、マイコンが絶対に必要というわけでもありません。しかし遥かに苦労が多いでしょう。

 ここではAVRマイコンのATmega 8と言う少々旧式のチップを使いました。 プログラムを書き込む際に初期設定をちょっと変えてやれば、同じMEGA X8シリーズのAVRマイコンならどれでも使えます。 出力ポートの設定を変更すればさらに幅広いAVRマイコンが使えるはずです。 例えばATtiny13Aのような8ピンのチップでも可能でしょう。(ただしLCD表示器は付けられませんけど) 文末にAVRマイコンを使ったテスト回路例があります。上記のお試しプログラムに適したものです。

参考:写真のLCD表示は上記のテストプログラムとは異なっています。これは、各種DDSチップのテストに使うための汎用プログラムをAD9833用に改造して流用しているからです。

簡単に試す
 DDSチップのAD9833はICチップ単独でも売られています。ここでは実装ずみのモジュール状態で入手したので、AD9833は基板に搭載済みです。 さらに基板にはクロック・オシレータほかバイパスコンデンサなど動作に必要な最低限の部品が載っています。従ってすぐに試すことができます。

 なお、ブレッドボードに載せるためのピンヘッダ(10ピンのうち7ピン分使用)が付属してきますのでハンダ付けしておきます。ライトアングルなピンヘッダを付けると、基板などへ垂直に搭載できて扱い易いかもしれません。

 配線は7本です。必要な引き出し線はデータ関係に4本、電源系に2本、出力系に2本です。データと電源のGNDピンは共通です。アナログGNDは出力の引き出しに使うと良いでしょう。

7MHzの出力波形
 さっそく出力波形を観測してみました。だいぶ酷い波形ですが、目的信号以外に非高調波のスプリアス(不要信号)が含まれるためです。ローパス・フィルタ(LPF)なしのDDS出力を観測した際に見られる波形です。
 このDDSモジュールにはきちんとしたLPFが載っていません。 DDS-ICの内部インピーダンス:200Ωと基板に載っている22pFによる気休め程度のRC型ローパス・フィルタがあるだけです。(計算上のカットオフは約36MHz)

 そのため、DDS発振器特有の折り返し信号や他のスプリアス信号もほぼそっくりそのまま出てきます。それで写真のような汚い波形になっています。 実際に何かの機器に使用するには必ずLPFを付けなくてはなりません。 後ほどスペクトラムの観測結果もあるので参照を。
 適切な遮断周波数のLPFを付加すれば、出力はきれいな正弦波になるので心配はありません。 モジュール内部には一切手を付けず、搭載されている25MHzのクロック・オシレータをそのまま使うとすれば、π型2段程度の簡易でなだらかなLPFなら8MHzくらいのカットオフ(遮断周波数)で設計します。もっと良く切れるフィルタ・・・例えば有極型の急峻な遮断特性を持ったフィルタならカットオフ周波数は10MHzが良いでしょう。(後述)

発生周波数の確認
 さっそく出力周波数を確認してみました。プログラムで設定したのは7MHzちょうどです。このように7MHzにたいへん良く合っていますが、実は写真のこれはデータ的に補正してあるからです。

 上記のテスト・プログラムのように25MHzのクロックには誤差がないとして算出したデータをセットしてみたら、約4.8Hzほど高い周波数を発生しました。この周波数誤差の4.8Hzには個体差があって、別のモジュールでは異なった値になります。しかし、3つ調べたら周波数誤差はどれも1ppm以下(±7Hz以下 )でしたから意外に良い精度です。もっとも、中国製の常でロットが変われば様子が違う可能性はありますが。

 たぶん、クロック発振器には温度変動があるので神経質に周波数合わせしても長く維持はできないでしょう。とりあえず初期誤差も少ないので、あまり難しく考えずに使うのが良いのかもしれません。 WSPRの送受信のように高い周波数安定度を要する用途では幾らか心配もありますが、普通のCWやSSBと言ったモードでしたらまったく支障のない安定度です。LC発振のVFOやVXOでは上手に作ってもなかなか得られない性能です。

モジュールの回路は?
 ネット上を丹念に探すと回路図が見つかるようですが、現品をざっと見ただけでメーカーのテスト回路と大差なさそうでした。従って左図のようなものだと思えば良いようです。

 左の回路図にはバスバッファ(U2:74HCT244)が載っていますが、このモジュールには載っていません。これはなくても支障はないでしょう。あとはほぼ同じでしょう。従って、非常にシンプルな回路のように思います。

 左図のC4が簡易なLPFの働きをするコンデンサ(22pF)です。このように、LPFは無いに等しいのですからきちんとしたフィルタの外付けが必要なわけです。外付けのLPFを構成する際には、モジュール上のC4を除去するか、その分だけ補正すると良さそうです。出力インピーダンスは概略200Ωになっています。

 なお、内部にある電流型DAコンバータの負荷抵抗器:200Ωは切り離すことができません。従って出力インピーダンスは200Ωです。AD9834のように外付けで任意に設定できませんが支障はないでしょう。ピン数が少ない関係か平衡出力ではないのが残念なところです。

追記:購入したDDSモジュールの回路図があったので追加しておきます。 基本的にメーカーの推奨回路と同じになっています。回路図の「CON7」というのが引き出されている端子です。
 AVRマイコン基板とのインターフェースでは、ATmega X8のPortC.0をDDS基板のFSYNC(CON7の5番)、PortC.1はSDATA(3番)、PortC.2がSCLK(4番)へ配線されます。GND(2番)とVcc(1番)の配線も忘れないでください。
 DDSモジュールからの出力取り出しは、OUT端子(7番)とAGND(6番)から行ないます。出力インピーダンスは200Ωです。

 モジュールの消費電流は実測で7〜9mAでした。(電源電圧=5V、fo=7MHz、5個測定) データシートによるとAD9833単独の消費電流は約5.5mAです。従ってモジュールに搭載されている25MHzクロック発振器の消費電流は概ね2〜3mAとなります。消費電流の少ない発振器なのは良いことです。

ピン接続についての詳細は後ほど登場するマイコンとLCD表示器を含んだ回路図を参照してください。

100MHzまでのスプリアス
 出力のスペクトラムを観測してみましょう。まず初めは、100MHzまでに含まれている全スペクトラムを示しました。

 上でも書きましたが、このモジュールにはちゃんとしたLPFは載っていません。そのため出力にはたくさんのスプリアスが含まれています。このように比較的大きなスプリアスが含まれていますから、LPFの付加が必須なことがわかります。それぞれのスプリアスには発生している理由があります。周波数を記入しておいたので興味があれば検討してみてください。周波数の設定を変えるとそれぞれ上や下へ動いて行きます。意外に少なかったのは25MHz(クロック周波数)の漏れで、ほとんど見えません。

 ここで問題になるのは目的周波数の直上にある大きなスプリアスで、これは折り返しによるものです。(左図では18MHzのもの) これは目的信号の周波数を上げると逆に下がってきます。目的信号にどんどん接近してきて12.5MHzにセットするとついに一致してしまいまったく分離できなくなるのです。
 例えば、出力を10MHzに設定するとスプリアスの方は15MHzに下がってきます。これを分離しなくてはならず、従ってかなり急峻なローパス・フィルタが必要になる訳です。

7MHz周辺のスプリアスは?
 特に重要なのは目的信号の近傍に発生するスプリアスです。これは簡単なフィルタを付けたくらいでは取り除けないからです。目的信号である7MHz近傍のスプリアスを観測してみました。まずは7MHzを中心に±50kHz、全体で100kHz幅を観測しています。

 このようにスプリアスはまったく観測されません。これなら心配はいらないでしょう。モジュール搭載のクロック・オシレータ(25MHz)が良くないとスプリアスが現れることがあります。このモジュールに載っているオシレータはなかなか良さそうです。
 ノイズ・フロアも低いようですからローノイズなVFOが作れるでしょう。もう少し大きなレベルまで増幅したいなら、なるべく少ない段数のアンプで済むように設計するのが上手いやり方です。何段もアンプを通せばそれだけノイズ・フロアも上昇しますので。

ごく近傍のスプリアスは?
 目的信号の上下5kHzの範囲といった、ごく近傍のスプリアスを観測しています。少しだけスプリアスと思われる信号が見られますが、目的信号の-80dB以下ですから殆ど問題ない筈です。

 受信機の局発(VFO)に使った場合、ごく近傍にノイズやスプリアスがあると、それによって目的信号が変調されてIF帯域に現れることがあります。高性能な受信機の実現にとって厄介な問題になるわけです。

 このAD9833 DDSモジュールはチープなものですから、高級なRigに使う可能性は低いかも知れません。しかしきれいなスペクトラムが得られていますので上手に使えばかなりの高性能リグでも満足できるでしょう。ここまで観測してコスパの良いモジュールだと思いました。

参考:実用的な発振周波数の上限が低めなのは与えているクロック・オシレータの周波数が低いからです。過去に実験したAD9834やAD9850の例にならい「オーバー・クロック」を試みるのも面白いと思います。 おそらく30MHzを超えるようなクロックでも動作するでしょう。もし33.554432MHzまでアップできたらVY-FBですね。
 しかし、このAD9833 DDSモジュールはそのまま使うのがベストではないでしょうか? より高い周波数は別のDDSチップに任せ、これはそのままシンプルに使うのが良さそうです。 すでに搭載されている25MHzのクロック・オシレータはスペクトラムが綺麗で周波数精度もまずまず、更に消費電流も少ないですから。

                 ☆ ☆


10kHzを発生してみる
 これはオマケです。 このDDSモジュールの出力端子はDDSチップ:AD9833の出力ピンに直結です。従って、設定すれば非常に低い周波数まで取り出すことができます。

 25MHzのクロックですから、1ステップが約0.0931Hzです。周波数の設定データを「1」に設定すれば、そこまで出力可能なはずです。無線の用途ではまず必要はありませんが、オーディオや機械制御のような用途には有用かもしれませんね。
 プログラムを変更して試しに10kHzを発生させてみました。データは10進で言えば「107374」で28bitのバイナリ(2進数)で表すと「&B0000 0000 0001 1010 0011 0110 1110」です。これをMSBとLSBに分けて周波数レジスタへ設定すればOKです。(上記プログラム参照)

 他の周波数が必要なら、目的周波数をf(Hz)として設定値をXとすれば、Xは以下の計算から求められます。 X=(f/(25×10^6))×2^28・・・・です。なお、25×10^6というのはクロック周波数:25MHzの意味です。クロックを変更したらそれに合わせます。また2^28と言うのはAD9833のアキュムレータが28ビット長だからです。これはAD9833を使う限り不変です。計算値に小数点以下の端数が付く場合、それが設定の誤差になります。その小数点以下の部分を四捨五入して設定すると周波数精度が上がります。こうして得られたXを周波数レジスタに対して純2進数に変換し設定します。(注:周波数レジスタは2つあって切り替えて使用が可能)


10kHzの波形
 写真は10kHzが出力されるようデータをセットした時の出力波形です。このように10kHzのような低周波では10ビット分解能のDAコンバータの性能がフルに活きるため綺麗な正弦波が出力されます。簡単なローパス・フィルタを付ける程度でも十分実用になるでしょう。

 もし正弦波以外の波形を発生したいならコントロール(制御)レジスタへの設定を変更することで簡単に可能です。

 例えば、三角波を発生するには:「&B0010 0000 0000 0010」をAD9833に送ります。
 矩形波の発生も同じようにできます。 2つの種類があって、設定周波数と同じ周波数の矩形波が得られるのは:「&B0010 0000 0010 1000」です。また、設定の1/2の周波数(周期は2倍)の矩形波は:「&B0010 0000 0010 0000」で得られます。
いずれも再び正弦波に戻すには「&B0010 0000 0000 0000」を送ればOKです。
これらの切り替えを試すにはプログラムリストの行ナンバ:340のところをそれぞれ書き換えて実行すれば良いです。 なお、正弦波と三角波の振幅は写真のように約0.6Vppですが、矩形波は0から約+5Vまで振れる大きな振幅なので注意が必要です。


Aliexpressで買える
 左図は、Aliexpressで販売している例を画面キャプチャしたものです。もっと安価なショップもあったかもしれません。購入前に良く比較検討することをお勧めします。
 まったく同じモジュールをAmazonで転売している人もいるので、海外通販が苦手ならそちらが良いかもしれません。しかし中華通販で直接購入すればずっと経済的です。送料も数10円からあります。

 急がないのでしたらお勧めの購入方法でしょう。遅延気味だった納期も最近は以前に近くなってきました。 国際通販にはリスクもあるので、各自の判断と責任で購入されてください。

参考:AD9833 DDS-VFO回路図
 AD9833 DDSモジュールを使ったVFOの参考回路です。上記のテスト・プログラムを書き込んで購入したモジュールをテストするために使います。 購入したAD9833モジュールのテストには、図のオプション部分を省き必要なところだけをブレッドボード上に製作すれば十分でしょう。(もちろんVFOにはなりませんけれど)

 この回路図にはカットオフ周波数が10MHzのよく切れるローパス・フィルタの回路とその部品定数が記入してあります。 こうしたLPFはAD9833 DDSモジュールを活用する際には必須です。
 少々複雑ですが、なるべく周波数範囲を広くとるためのローパス・フィルタとして適当でしょう。リンク先(←リンク)にはこの設計で作ったLPFの周波数特性グラフがあります。必要に応じて参照してください。
 左記の回路図では出力インピーダンスが50Ωになるようにインピーダンス変換しています。もし200Ωのままで良い場合は、トランス:T2を省いてください。

 なお、目的は上記のテスト・プログラムを走らせるだけなので「OPTION」の囲み部分は不必要です。(OPTION部分を配線しても意味がありません) また、外部から5Vを供給してテストするならU1の3端子レギュレータ:μA7805ACも不要です。

 LCD表示器は以前から秋月電子通商で売られている「SC1602BSLB」を使うようになっています。現在はより消費電流が少なくて、しかも見易いタイプも売っているのでそれを使う方が良いでしょう。 大半のLCD表示器は接続ピンに互換性がありますが、Vcc(1番ピン)とGND(2番ピン)が逆になった物が多いので説明書をよく読んで使います。(実は秋月で売っているこのシリーズのLCD表示器だけが変なのです・笑)

                  ☆ ☆ ☆

 またまたの脱線でした。 ゲルトラの送信機は「コロナ禍がすっかり片付く頃でも良いかな?」なんて思ってしまったら、まったく別の方向へ行ってしまいました。 受信機も何とかしたい・・などと思ったら、今度はVFOも何とか・・・と思い始めて「そう言えばAD9833のモジュールがあったな」などと芋づる式に思い出してしまったような訳です。 挙句は去年のお題を今年の年末に片付けるような情けない話に。趣味に納期はないとは言ってもねえ。(笑)

 紹介したAD9833のモジュールはだいぶ前から出回っていました。 AD9834やAD9850でさえまだ十分には使い切れていないのに更に手を出すのも・・・と思ってペンディングにしていたのです。 しかし、思い立って手を付けて良かったと思います。 これで一通りの使い方がわかり、特徴も掴めたので何かの機会に役立ってくれるのは間違いないでしょう。 ではまた。 de JA9TTT/1

(オーバークロックを試みる続編につづく)←リンクnm

2020年4月8日水曜日

【AVR】Setting up Windows 10 PC for HAM Use

【自作好きHAM用のWindows10 PC】
 < Abstract >
Support for Windows 7 has ended, so I can still enjoy  "Hand making Rigs" with Win 7 PC.  But I decided to move to Windows 10 because of the need to connect to a network environment safely.   Unfortunately, my old PC couldn't update to Win 10.  So I bought a used, updated laptop. Also, I should install some apps for the HAM who loves "Hand making Rigs". After complete that, I also replaced my HDD with an SSD to speed up the boot time. This is the completion of a comfortable Windows 10 computer for the HAM station. (2020.04.08 de JA9TTT/1 Takahiro Kato)

やむなくノートPCを購入する
 久々にパソコンの話をしましょう。 ちょい古めのノートPCをHAM用に(自分好みに)仕立てると言う良くある話です。自身の備忘目的ですから面白くもないでしょう。言うまでもないと思いますが、誰かに『お薦めしたい・・』と言うような意図はありません。

 今ではHAMの活動にパソコンは不可欠な存在になっています。もちろん、無くてもオンジエアは可能です。 いつも決まったローカルさんとラグチューを楽しむだけなら無線機とマイクにアンテナがあれば十分でしょう。 しかし、少し深く楽しもうとすればパソコンはシャックに不可欠な装備になりました。 デジタルモードでのオンジエアはもちろんですが、ログの管理やQSLの発行、そしてDXCC用データのアップロードといった運用全般でフルに活用します。さらに私にとって無線機器の製作や電子工作を楽しむ為のツールとしての役割もかなり重要です。

 無線用には始めWindows XPのノートPC、その後はWindows7がインストールされたノートPCに移行しました。それで十分な性能でしたし、使い勝手も悪くありません。 ところが、最近になって変更申請のために「電子申請Lite」を使おうとしたら問題発生です。 サポートが切れてセキュリティが甘くなったWindows7のPCでは利用条件を満たせないのです。 電子申請でやりたいならWindows10のPCが必要になっていたのでした。(もちろん紙で申請も可ですが・笑)

 真っ先に考えるのはWindows10へのOSアップデートでしょう。 あいにく無料の期間に実施していませんでした。 幸い、調べてみたらあまり費用を掛けずライセンスキーが入手できそうな目処が立ちました。 そこでさっそくアップデートを試みたのです。 ところが時間をかけた作業を3回もやってみたのですが毎回エラーの発生です。 3回とも終盤にインストールを中止して元のWIn 7に戻ってしまいました。 たぶんWindowsに詳しいお方なら解決策を見い出せるのかも知れません。 あいにく私はMac派ですから詳しくないのです。 それとそのノートPCは性能もやや不足そうでした。CPU(celeron)はパワー不足でメモリも足りないみたいです。 そうなるとメモリの追加など含め費用を掛けてWindows10にアップデートしてもじきに不満が出るかも知れません。 Windows7のまま快適に使い続けた方が良いのではないでしょうか。

                   ☆

 だいぶ前置きが長くなってしまいましたが、そのような経緯から中古のノートPC・・・もちろんWindows 10になったもの・・・を購入し、例によってHAMの日常使いのパソコンに仕立てることにしましす。 合わせてHDDのSSD化で起動タイムの短縮を図りましょう。  基本的にサブのパソコンの入れ替えですから費用はあまり掛けられません。 ご予算は総額で¥30k程度(ずいぶん少ない・笑)を見込みますが、これで快適なPCが手に入るのでしょうか?

後で忘れないように行なった作業を箇条書きにしておきます。

(1)購入したノートPCの基本的な確認とWi-Fiに接続などの初期設定の実行
(2)MS-Officeなど標準的なパソコン用アプリのインストール
(3)HAM用のアプリ、例えばTurbo HAM LogやWSJT-Xなどインストール
(4)NET Timeのようなパソコンの時計同期用アプリをインストール
(5) AVRマイコン用のプログラムライタ;HIDaspxの接続と関連アプリの動作確認
(6) BASCOM-AVRのインストール&起動確認と旧パソコンからのデータ移行
(7)互換arduino用USBブリッジ・チップ:CH340のドライバインストール
(8)arduino-IDEのダウンロード&インストールと実際に接続して動作確認
(9)補助記憶装置をHDDからSSDに交換する
(10)そのほか、無線接続のプリンタをセットアップなど細かい設定を行なう

さらに、しばらく使ってみて性能的に十分行けそうならLT-Spiceや基板CADなどもインストールしたいと思っています。 他にも良さげな定番アプリでもあれば教えてください。ただしあまり肥大化させないようにしたいものです。(笑)

 【キーボード周りは使用感なし
 最初の写真のような中古のノートPCです。 少々古いものですから、それなりの使用感があって当然でしょう。 例えば、使用感はキートップやキーボード周りのテカリなどとして現れやすいものです。

 キーボードを交換している可能性もありますが、キートップと合わせて周囲もあまり使用感はありません。 それほど使わなかったPCなのかもしれません。キーの沈み込みもなく感触にへたりも無いようですから良いブツに当たったような気もします。w

 綺麗さとか新品に拘るなら昔流行ったネットブックのようなチープな路線も考えられます。 amazonでWindows10パソコンを検索すれば2万円台から新品があるようです。 しかしYoutubeで該当機のユーザレポートを見ればかなり「悲惨」な状況でした。 筐体はフニャフニャでキーボードもペコペコといった「安かろう・・・」な製品なのです。それらはチープなタブレットにキーボードを付け加えたようなノートPCだそうです。 結局、しっかりしたメーカーの「幾らか古め」な中古品から良さげな物を探すのが適当そうでした。

 狙い目はコアiシリーズのCPUでメモリが十分積まれているものでしょう。 換装しても安価ですからHDDの容量は気にしません。HDDは一種の消耗品とも言えます。 DELL、HP、NEC、dynabookほかVAIOなど色々見たのですが、写真のLenovoのThinkpad L530が良さそうでした。 CPUはCore i5でClockは2.6GHz、メモリは8GB搭載済みです。 OSはWindows 10 professional 64bitの最新版が入っています。 現品を見てキーボードの感触など確かめてからが良いのですが、都会に出掛かけるのもはばかられる御時世ですから通販に賭けてみることにしました。 送料込みで¥26.6kでした。(キャッシュレス決済だったので引き落としの際に5%の還元がありました)

 【管理用のラベルでも?
 開いた状態は結構綺麗でしたが、上蓋の左奥のあたりに管理ラベルを貼っていたらしい痕跡があります。 わかるように画像処理で誇張した写真なので目立ちますが、実際は気にならない程度の跡です。

 少々地味で仕事向きのノートPCのようですから、どこかの会社でまとめて使われていたものを引き取ってきて販売しているのでしょう。

 ポートはUSBが左に3つ、右に1つです。最近のノートPCと比べやや少ない気もしますがなんとかなるでしょう。右側にはCD/DVDマルチドライブが付いています。 付属品は電源アダプタだけです。そのままでも使えますが、別途マウスを買ってきました。 タッチバッドよりもマウスの方がはるかに使い易いと思います。

 起動してさっそくWi-Fiのセットアップを行ない、続けてブラウザなど立ち上げてみました。 十分快適に使えそうです。15.6インチ横長のHD TFT液晶の画面もまずまず綺麗です。
 筐体に厚みがあった時代のノートPCなので、キーには十分なストロークがありカチッとした感触です。もとIBM、LenovoのノートPCですからそれなりに作ってあるのでしょう。

 初出荷は2013年4月らしいので、5〜7年程度経過したモデルのようです。 おそらくまだまだメイン機としてお使いのお方もありそうです。 メーカーのサポートは2018年7月で終了したため安売りになっているのでしょうか。 最近のノートPCのように薄くてスマートじゃありません。厚みがあってちょっと無骨な感じですね。hi 一応、ショップの保証が3年間付いてきました。 向こう5年くらい使えたらかなり嬉しいと思っています。

                   ☆
  
 【MS officeを導入
 このノートPCの主な目的はHAM局のオンジエアと交信管理を目的にしたものです。 パソコンとしてはサブ機の扱いです。たまにプログラムを書くのに使う程度でしょう。 重そうな作業はほとんどありません。 画像処理のようなアプリははなからインストールしませんし、たぶんゲームもやらないでしょう。

 しかし、ちょっと試用してみて意外にメイン・パソコンの補助以上の能力がありそうに感じました。 そうなると、普通のノートPCとして使いそうなアプリとしてはWordとExcelあたりになるでしょうか? 実際にExcelは実験データの整理に使うことがあります。また、手持ち部品の在庫管理にもExcelを使っていますから無いと不便かも知れません。 色々考えてMS Office 2019をインストールすることにしました。

 ちょっと怪しそうだったのですが、amazonにプロダクトキーだけを販売する業者があったので試してみたのです。購入するとメールで連絡が来るだけで現品は何も送ってきません。 仕事で使うパソコンに怪しそうなものをインストールするのはやめた方が良いです。 しかし個人が遊びに使うだけのパソコンなら何かあっても自己責任であり、誰にも迷惑はかけないでしょう。(お薦めするつもりはありません)
 おそらく販売されているプロダクトキーは、社内のPCにまとめてインストールするのが目的のパッケージ品を分売しているのではないでしょうか。確かに正規品には違いないですが、そう言うのはどうなんでしょうかねえ? まあ私が心配することではないです。(笑) プロダクトキーが届いたらなるべく早くインストールを済ませて欲しい旨のコメントが付いてました。

 MS-Office 2019は買取版ですからoffice 365のような毎月課金はありません。  最近はサブスクリプションタイプ(毎月課金型)のサービスが多くなっていますが、使わなくても毎月課金されるのは何となく割り切れないものです。買取版の方が好きです。(笑)

 【支障なくDLできた
 事前に手順を調べておいた通り、マイクロソフト・アカウントを持っていればあとはプロダクトキーさえあればマイクロソフトのサイトからダウンロードでフルバージョンが手に入ります。 マイクロソフト・アカウントもメルアドとパスワードの設定だけですからすぐに作れます。

 amazonで買ったプロダクトキーでMS-Office 2019 Professional Plusが無事ダウンロードできました。

 部品管理にDBは使っていてもアクセスまではいらないし、プレゼンもまずしないのでパワポも使わないでしょう。しかしプロダクトキーのお値段はどれでもあまり違わないのですからProfessionalのフルバージョンをインストールしておきました。 たぶん無駄にHDDの容量を消費しただけかも知れませんけれど。(笑)

インストールが済んだらMS Word等を起動し、ライセンス認証された製品であることを確認して無事に終了しました。

                 ☆   ☆

 【HIDaspxは自動認識
 続いてHAM関係のアプリをインストールして行きます。 最初はプログラムライタの動作から確認しました。

 以前のWindows7への移行の際と同じような確認です。 次の写真の右側にある「HIDaspx」というAVRマイコン用の手作りプログラムライタ基板です。このライタはUSBポートに接続して使います。
 USB接続の機器といえば一般に専用のドライバが必要です。しかし、これは特別なドライバソフトが不要というものでWin7の時もただ装着するだけでうまく使えています。 今回もポートに装着したら直ちに確認が始まり、程なく使用できるようになりました。 これで以前同様うまく使えるはずです。

 【HIDaspxライターを使ってみる
 AVRマイコンが載った基板なら何でも良かったのですが、このあと同じように確認する予定のarduino uno・・・正しくは互換ボードの「びんぼうでいいの」ですが・・・を使ってライターの動作を確認します。

 ライタのHIDaspx(ハードウエアの方)を写真のように接続します。 Arduino unoにはUSBポート以外に直接書き込み用のポートが引き出されているので、それに合わせたケーブルを接続すれば読み書きとベリファイができます。 他のArduinoでやる場合は、ブレッドボードなどに装着してから、書き込み用の足ピンへ1:1に配線してやればまったく同じようにできます。

 【hidspx-GUIもOK!
 コマンド・プロンプトからキーインで操作もできますが、今ではライタのHIDaspxの操作用としてGUIアプリを使います。AVRマイコンの開発ではよく使うアプリとして、hidspx-GUIがあります。 詳しくは前のBlog(←リンク)を参照。 AVRマイコンチップのフューズビットやロックビットの書き換えなどの操作に使用します。

 上の写真のようにArduino uno互換基板とHIDaspxを接続したら操作用にhidspx-GUIを立ち上げます。 ターゲットのarduino unoに電源が行くようライター基板の電源供給スイッチを切り替えておきます。

 写真はReadコマンドでarduino uno上のAVRマイコン:ATmega328Pに書き込まれているプログラムを読み出したあと、続けてDump コマンドを実行した様子です。 うまく読み出せて、ダンプできたのでインターフェース基板もGUIアプリもうまく動作していることがわかりました。 これでBASICコンパイラのBASCOM-AVR(次項)が使えるようになっているでしょう。

 【BASCOM-AVRをDL
 BASCOM-AVRはMCS Electronics社のサイトから新規にフルバージョンをダウンロードしてインストールすることにしました。2020年4月現在、Ver.2.0.8.2でした。

 ユーザーIDとパスワードがあればログインして簡単にダウンロードできます。 ただし、新規にダウンロードしただけではデモ版として起動されます。 もとのパソコンから「bascavrl.DLL」と言うファイルを移植する必要があります。 この辺の詳しくは前のBlog(←リンク)を参照してください。 Windows XPからWindows7への移行の時と同じことをやっているだけです。

  さらに、自身が作成したBASCOM-AVRのプログラムも前のパソコンから移行しておきます。 これは、前のパソコンにあるMCSというフォルダ内にあるBASCOM-AVRというフォルダ内にあります。 USBメモリなどへコピーして持って来ればOKです。 これでWindows10の環境で以前と同じようにAVRマイコンのプログラム開発が継続できます。

CH340 Driverをインストール
 続いてarduinoの開発環境を構築します。 ここでは中華系の互換arduinoを使います。 互換arduinoはUSBインターフェースがCH340というチップになっていますので、チップドライバのインストールが必要になります。  ホンモノのarduinoにはFTDI社のインターフェースチップが載っているようですからホンモノで行くならそれ用のドライバをインストールします。

 これもWindows 7に開発環境を作った時と同じ作業です。 特に支障もなく終了しました。 CH340はarduinoだけでなく、USBシリアル変換モジュールなどにも使われており、無線機のスタンバイ・コントロールを作るときにもドライバのインストールが必要です。HAM用のパソコンには不可欠かも知れませんね。ドライバはネットで簡単に探せます。

 【arduino-IDEを起動
 arduinoの開発環境である、arduino-IDEをダウンロードしてインストールします。 基本的にアプリ関係は別のPCからコピーして来てそのまま移行できることは稀で、再度インストールすることになるはずです。

 arduinoのサイトへ行き、Windows 10にマッチするバージョンをダウンロードして新規インストールしました。 スムースに進んで短時間で終了します。

 さっそくUSBケーブルを接続し、ツールメニューから使いたいarduinoの種類やCOMポートの設定を行ないます。 USBポートを移動するとCOMポートの番号も移動しますから注意します。 私の場合、初めはCOM3でしたが、隣のUSBへ移動したらCOM4になりました。メニューに表示される候補から選べば良いので簡単にわかります。 ここが合わせてないと書き込む時エラーになります。 

 さっそくあらかじめ用意されているサンプルプログラムからLEDチカチカ、通称「Lチカ」をロードして書き込んでみましょう。  メニューバーにある白丸に右矢印のボタンをクリックすればコンパイルされてarduino unoへLチカが書き込まれます。 さっそくLチカが動作するはずです・・・。

 【arduino uno 互換基板でLチカ
 イッパツで成功です。(笑)

 Windows10はユーザーIFの部分など前のWindowsとかなり違いがあるように見えます。 しかし、見かけ表面を覆った部分の下をみるとあまり違っていないのかも知れませんね。 案外すんなりとWIndows7や8のアプリやハードウエアが動作してくれるようです。

 もちろん、あまり古くさいハードにはドライバを始め専用のアプリさえ用意されていないこともあるようです。 しかし過去の資産はかなりうまく移行できそうでした。 この点は優れていると思いますし、いま思うともう少し早くWindows10に移行しても良かったのかも知れませんね。

                   ☆

 以上、HAMが手元に置いてオンジエアの補助や整理に使い、さらにプログラム開発や実験データの整理などに使えるWindows 10パソコンが出来上がったようです。Turbo HAM Logも移行したので、これでWondows7で行なっていたことはほぼすべて移行できたと思います。少し手続きが必要そうなARRLのLoTWもこのあと移行させる予定です。 Windows10の導入部分ではかなりトラブりましたが、インストールずみを購入したあとはたいへんスムースに進みました。

 【SSDを購入
 もともと内蔵していたHDDは320GBでした。 このノートPCが登場した頃はそれくらいのHDDを積んでいればひとまず十分だったのでしょう。

 そのままでももうしばらく使えそうでしたが、起動の迅速さを求めてSSDへの換装を行なうことにしました。 少し前までは高価だったSSDも500GBが8,000円以下まで値下がりしています。 1TBと言いたいところですが、そもそもサブのマシンですし大量のデータを保管する可能性は低いと思います。 今の時点でコスパの良さそうな500GBのSSDを購入しました。

 Crucialというメーカーは聞いたことがありませんでしたが、メモリチップを作っているマイクロン社の子会社のようです。 マイクロン社のメモリチップを積んだSSDと言っても良いでしょう。

 【500GBの2.5インチSSD
  見たところはHDDと同じように見えますね。 I/FはHDDでは標準的なSATAです。

 まずはじめにUSB-SATA I/Fケーブルを用意してノートPCのUSBポートに接続します。 私は手持ちにあった外付けUSB用2.5インチHDDケースを使いました。 その後、フォーマットを行なったら「Easeus Todo Backup Free」というHDDのコピークローンを作るアプリを起動し、SSD上にC:ドライブのコピーを作ります。 Easeus Todo Backup Freeは予めダウンロードしておく必要があります。 こうした作業の手順はネット上にたくさん実例があります。Youtubeにも動画があって参考になりました。

 比較的データ量が多かったのでコピー完了まで45分くらいかかりました。 Officeほか様々なアプリをインストールする前にCopyを作れば短時間で済んだのかも知れません。 しかし、一通りのインストールが済んでからCopyを作ったことになるので、使い始め初期の状態の完全なバックアップ・コピーが(HDDに)自動的に作れたことになる訳です。悪くない手順だったように思っています。 従って元あったHDDは転用せずにそのまま非常用のバックアップとして保管しておきました。

スピードは?
 裏蓋を開けHDDを外してSSDに交換したら作業終了です。 コールドスタートからデスクトップが現れるまでに約16秒、ブラウザを起動して操作できるようになるまでに20〜22秒と言ったところでした。どのアプリの起動も非常に軽快です。 また、シャットダウンに要する時間も5秒くらいなのでじれったさを感じるヒマさえありません。(笑)

 左表は「CrystalDiskMark」というポピュラーなフリーウエアで計測したSSDのRead/Writeスピードです。 数字が大きいほど高速という意味ですが、これらの数字はSATAインターフェースのSSDとしては標準的な値のようでした。 ノートPCで標準的な普通の2.5"ハードディスク(HDD)と比べて、大きなファイルのシーケンシャルな読み書きで5倍以上、小刻みなファイルのランダムなアクセスでは200倍を優に越えます。さすがに早いのですね。 巷で言われている通りでした。(笑)

 たまにしか使わないサブのパソコンにSSDなど勿体無いと思うかも知れません。 しかし、たまにしか使わないからこそ起動とシャットダウンが高速なのは有り難いのです。 チョットだけ使いたいと思ったとき延々とWindowsの起動画面を眺めながらジリジリ待つ必要はありません。 使い終わったらささっとシャットダウンして保管場所に戻すこともできます。 本質的に振動に強いSSDは持ち運ぶことが多いノートPCには安心感があります。 追加の費用は発生しましたがSSDへの交換はなかなか効果的だったと思っています。

 【コンボ・ジャック
 最近の無線機はUSBポートを備えているものが多くなっています。 デジタルモードのインターフェースがUSBケーブルで直接できるようになりました。 しかし、少し古いRigが多い拙宅では、パソコンのAudio入出力端子を使ったインターフェースが必要になります。

 このノートPCのAudio入出力端子はコンボ・ジャックというコンビネーション型になっていました。 3.5mmのイヤフォン・ジャックの発展型のようですが、ヘッドフォン用の左右の出力とマイクロフォン(モノラル)の入力が一本になっているのです。 出力が2、入力が1でGNDを共通にした4極になったものでスマホにも多いタイプです。

コンボ・プラグの結線
 無線機とのインターフェース・アダプタを製作する必要があります。 端子接続がわからないと製作はできません。 さっそく調べてみました。

 意外に見つけるのに苦労しましたが、図に書いたようになっていました。 このThinkpadは黒い文字で書いたような端子配置になっています。  機器によっては赤い文字のような接続もあるそうです。 しかし、iPhoneと同じ接続(黒い文字)になっているイヤフォン・マイクが主流のようです。 100均でイヤフォン・マイクを購入して来ればケーブルをちょん切って無線機用のインターフェースが安価に作れるでしょう。田舎で可能な安上がりな手段です。

                   ☆

 無線機は最新型の方が良いでしょう。 通信器の性能が交信実績にも現れやすいからです。 合わせて使うことになるパソコンもできたら最新型が欲しいところです。 しかし趣味の道具に際限なく費用をかける訳にも行きません。 実用的なところで妥協し中古ノートPCを導入してガマンすることにしました。 新規にインストールしたアプリの費用やマウスなどの周辺機材に500GBのSSDなど諸々を合わせて¥35k少々で済ませることができました。 いまのところなかなか快適です。amazonでチープな新品ノートPCを買うよりもしっかりした物が手に入ったように思います。
 パソコンの初期設定はいつでも厄介で面倒臭いものです。でも順調にポンポン進むと面白いくらいですね。 ノートPCを相手に1週間くらい楽しむことができました。 ではまた。 de JA9TTT/1

(おわり)fm

後日談:(電子申請Lite)
セットアップが済んだノートPCで「電子申請Lite」をアクセスし、変更届を提出しました。4月10日に届出し、14日には審査終了です。電子申請は迅速なのが良い。 届出では、懸案だったデジタルモードの追加を行ないました。メインはFT8の追加です。 遅ればせながらFT8にも出られるようになりました。さっそく WARCバンドをメインにオンエアしています。特にDX専門というわけではありませんので、聞こえて(見えて)ましたら気軽にコールお願いします。  QSLカードはe-QSLで即時発行しています。 deJA9TTT/1  (2020.04.17)

2018年2月16日金曜日

【AVR】 An HIDaspx in-circuit writer, again

HIDaspxというプログラム・ライタ再考
 【HIDaspxの自作例
 最近になってマイコンのプログラミング環境を更新しました。 おもにArduinoに対応するためですが、従来の開発環境も引き継ぎたいと思って更新作業を始めました。

 写真は自作のプログライタで「HIDaspx」と言うものです。 安定して書き込めることから長い間使っていましたが開発環境のパソコンはWindows-XPのままでした。 Arduinoの開発環境はWindows 7に作ったのでそのに合わせて移行したいと考えたのです。

 移行にあったて心配になったのは「HIDaspx」(ライタ本体のハード・写真のもの)およびパソコン側の制御ソフト「hidspx-GUI」がWindows 7の環境でもそのまま使えるかどうと言うことでした。どちらもWindows-XPの時代のかなり古いものだからです。

 さっそく、ソフトウエアの「hidspx-GUI」の方から確認しました。 これはWindows 7の環境下でもあっさりOKで支障なく使えそうです。 そうなると、ライタ本体であるHIDaspxの方はどうかと言うことになります。

 HIDaspxはパソコン側に特別なUSBデバイスのドライバを必要としないと言うのが特徴だったと思います。 さっそくWindows 7のパソコンのUSBポートに接続してみたのですがエラーが出てしまいました。 「ドライバがない」と言うソフト的な問題ではなくてハードウエア的なトラブルのように感じました。 かれこれ10年にもなるハードですから「やっぱりダメか・・」と思ったのですが・・・。

                   ☆

 いくらか悩んだものの原因がわかってうまく行き、Win-XPで行なっていたマイコンプログラムの開発環境がWindows 7へ移行できました。 基本的にそれだけの話です。大した内容はありませんが、開発環境の移行に関する自身のメモとして要点などを纏めておきました。 マイコンのプログラムをいじるのは少数派でしょうし、たぶん開発環境も違いますからほとんどの人には関係のない話です。
 
 【HIDaspxの回路・簡易版
 HIDaspxというのはAVRマイコン用のプログラムライタ(ハードウエアの方)のことです。 山形県立産業技術短期大学校情報制御システム科 千秋広幸教授(2010年当時)の研究室で開発されたものです。 長らく同学科の公開サーバでサポートされていましたが、千秋先生は数年前にご栄転されたようで現在は同学科でのサポートは途絶えています。

 AVRマイコンのプログラム開発環境はArduinoの登場ですっかり様子が変わりました。Arduinoなら特別なプログラムライタなしで開発ができます。 すでにHIDaspxの役目は終わったのでしょうか? さらにサポートが途絶えてしまったことで消え去ろうとしています。愛用者としてはちょっと残念だと思っています。

                   ☆

 新しい環境で動かないのでは価値はありません。しかしわかってみたら初歩的な問題でした。 以前使っていたパソコンではUSBインターフェースのデータライン:D+とD-をクランプするダイオードは必要ありませんでした。 そのため回路図のDZ1とDZ2というダイオード(2個)は付けていなかったのです。 ただしこのダイオードがないとうまくないことが多いとしてHIDaspxが流行った当時は話題になっていたことを思い出します。 新しい環境ではどうやらこれが問題でした。

 新しいパソコンではデータラインのD+とD-を3.6V程度にクランプする必要があったのです。 あいにく3.6Vのツェナ・ダイオードは手持ちがなかったので、代用品として青色のLEDを使いました。青色LEDの順方向電圧は3V少々ありますから十分代用になります。 しかもLEDは光るのでクランプの状態が見えて好都合です。USBでデータのやり取りがあると明滅しますからデータ・モニタの機能が付加されました。 クランプダイオードの追加であっさり問題解決しWindows 7のパソコンでも支障なく使えることがわかりました。

 改造のついでですから、Arduino unoやnanoのISP(=ICSP)端子に直結できるようなピン配置のコネクタを設けておきました。あとでわかるように図面に書いておきます。 実態はコネクタと言うよりも変換ケーブルなのですが・・・。

 HIDaspxライタは少し古くなっていますが汎用プログラムライタとして今でも役立ちます。 回路図のような省部品で作れば容易です。 これから作ってみたいなら以前ダウンロードした製作関連のファイル一式がありますのでメールでもどうぞ。
 ネット上を探すとかつてのミラーサイトに最終版が残っているようなのでダウンロードできそうです。(2018年2月現在) なお、何もないところからHIDaspxライタを作るのでしたら、しばらく前のBlog(←リンク)が参考になるかもしれません。必要に応じてご覧を。

 今でしたらArduinoをプログラムライタにしてhexファイルをいきなり書き込むことも可能でしょう。 HIDaspxの開発関連情報一式の中にあるbinフォルダにATtiny2313用のファームウエア:main-12.hexがあるので書き込んでやればOKです。 外付け水晶で使いますから、もちろんヒューズビットも書き換えます。 ヒューズビットは:Lo=FF、Hi=DB、Ext=FFとします。 (ファームウエアも含めて)難しいようでしたら書き込み済みをサポートします。

 【HIDaspxの配線面
 以前はHIDaspxを作るためのプリント基板も売っていたようです。 しかし現在は望み薄でしょう。 ユニバーサル基板に手配線で 作ることも難しくありません。 あるいは実験程度でしたらブレッドボードでも大丈夫です。

 AVRマイコン用のプログラム・ライタとして応急用以上の働きをしてくれますので恒久的なものを作っておくと良いと思います。 ファームウエア書き込み済みのATtiny2313が一つあれば他に特殊な部品はありません。あとはせいぜい12MHzの水晶発振子くらいでしょう。これも必要なら差し上げます。 製作例ではUSB-B型のコネクタが基板に付けてありますが、不要になったUSBケーブルをカットしてコネクタなしに直接配線してもよいでしょう。 図面左端のコネクタがUSB-Aとなっていますが上記の回路図はそのつもりで書かれています。 USBケーブルの配線色は回路図の通りになっているものが多いようです。

 なお、この写真のようにライタ基板側にコネクタを設ける場合は基板側にUSB-B型のメスを付けます。 USB-Bのメス側コネクタは秋葉原なら手に入りますが、地方では売っていませんので既存のケーブルをカットして直接配線する方法をお薦めします。 USBケーブルでしたら100均で手に入ります。

クランプ・ダイオードの追加
 データラインのクランプ用ダイオードですが、最近はツェナ・ダイオードがほとんど使われなくなったので入手難かも知れません。

 無理にツェナ・ダイオードを探すよりも青色LEDを順方向に使って代用するのが良いでしょう。 もし手持ちに青色LEDがなければ普通の輝度の赤色 LEDを2つ直列にしたものを2組使っても大丈夫です。


                   ☆

  初めてパソコンに接続すると自動的にUSBドライバを探してインストールしようとするかも知れません。 そんな時はドライバ探しはやめさせます。 そうするとドライバがないので云々・・・というアラートが出ますがこれは無視して大丈夫です。 このライタは特にドライバがなくてもUSBコネクタに接続するだけで使えます。 これはWindows 7の環境になっても感じる便利さです。

 HIDaspxですが、コマンドプロンプトの画面からコマンドのキーインで使えます。 しかしGUIソフトを使う方が便利ですし操作間違いもずっと少ないです。 HIDaspxの開発関連情報一式の中にある「hidspx-GUI.exe」というアプリを常用しています。(これは、新環境で真っ先に試したアプリですが・・・笑) デスクトップにショートカットを作っておきました。

 このライタはBASCOM-AVRというプログラムの統合開発環境で使うことがほとんどです。 BASCOM-AVRにExternal Programmer(外部プログラマ)として設定しておきました。具体的な設定方法は以前のBlog(←リンク)にあります。 ほかにBASCOM-AVRに向いたプログラム・ライタとしてはUSBaspという有名なライタがあって海外ではそちらを使う例が多いです。しかしHIDaspxも支障なく使えるのでWindows-XP時代に使い慣れた環境をそっくり継承しました。 USBaspの中華製クローンがあるので、そちらを使えるようにするのも課題です。

HIDaspxを使ってみる
 Arduinoは直接USBに接続して使うのが普通でしょう。 しかし、この例のようにライタがあればICSP(=ISP)端子を経由してAVRマイコンを直接書き換えることができます。 Arduinoのブートローダが書かれていないナマのAVRチップでも大丈夫です。

 Arduino基板をArduinoではなく「単なるAVRマイコン基板」として使うようなこともできますし、プログラムをBASCOM-AVRやC++などで開発する際には必要です。 多少マニアックかも知れませんが、汎用のプログラムライタを一つ持っていると重宝します。 まあ余計なことを考える元凶とも言えますけれど。(笑)

参考:BASCOM-AVRの移行(正規ユーザの場合)
 BASCOM-AVR(正規版)の新しいパソコンへの移行は思ったよりも簡単にできました。 まず、古い方のPCにあるBASCOM-AVRのフォルダから「bascavrl.DLL」というファイルをUSBメモリか何かにコピーしておきます。このファイルはBASCOM-AVRの実行プログラムが置いてあるフォルダに入っています。
 次に新しいパソコンの方でブラウザを立ち上げてMCS-Electronicsのサイトに正規ユーザとしてログインします。このとき登録ユーザー名とパスワードが必要です。 BASCOM-AVRのところに入ったら、アップデータではなく最新版がまるまる入った方の.zip圧縮のファイルをダウンロードします。 それを展開したら古いパソコンからコピーしてきた 「bascavrl.DLL」をBASCOM-AVRの実行プログラムが入っているフォルダにコピーしてやります。要するに新しいほうへ引き継ぐわけです。これだけで正規の登録済みユーザーとして継続使用できました。
 面倒だったのはMCS-Electronicsにログインするためのユーザ名とパスワードを見つけることでした。以前のメモをしまい込んでいたんです。 これがないとどうにもなりませんので・・・あとはごくスムースです。hi hi
  今後のアップデートはMCSのサイトからアップデータ(アップデート専用のアプリ)をダウンロードして走らせれば済みます。 これは従来も行なってきたのですから。

                   ☆

 安定している開発環境があるならそのまま維持した方が好ましいと思っています。 面倒な環境構築を頻繁にやりたいとは思いません。 むしろ自身のプログラム開発に注力したいところです。 しかし、安定しているとは言っても年数が経過すると徐々に支障が出てきます。 例えばあまり古いPCでは開発ツールのサポートがされなくなってしまいます。 老朽化でハードウエア的にも問題が出てくるかも知れません。 古いPCはいつまでも使える訳でもありませんからいずれ開発環境の移行は必要です。

 たとえArduinoがメインになったとしてもBASCOM-AVRは必要です。 過去に書いたプログラムを全てArduinoに移植するのは大変ですし特にメリットもありません。Arduinoとのハードウエアの違いからそのまま移植できないプログラムも結構あります。 新しい開発環境でもBASCOM-AVRがそのまま継続でき、ツール類も継続できる必要がありました。10年以上前に購入したBASCOM-AVRでしたがトラブルもなく無償で移行できて良かったです。

 マイコンのプログラム開発に使う程度ならWindows-XPでもまだまだ十分な性能があります。コンパイラやツールをアップデートせずそのままの状態で使っている限り何の支障もありません。 そうは言っても流石にWindows-XPではツールのサポートも怪しくなっているし、ネットに繋ぐのも危険になってきました。 やむなく重い腰を上げて始めたら今度はちょっとトラブルもあって時間を取られてしまいました。 しかしほぼ問題ない状態に開発環境の移行ができてホッとしているところです。 Windows 7もそんなに先は長くはないのですが、遅まきながらWin-XPから脱却できて良かったです。もうしばらくはこのまま行けるでしょう。 さて、次回はまたアナログな話に帰るつもりです。 ではまた。 de JA9TTT/1

(終わり)