2014年8月号

トップページ > 2014年8月号 > ディジタルを楽しもう/JH1NRR辻岡哲夫 第4回 メモリキーヤを作る 2

連載記事

ディジタルを楽しもう


JH1NRR 辻岡哲夫
(JL3YMC 構成員)

第4回 メモリキーヤを作る 2

1. 製作するメモリキーヤの特徴

まず、今回製作するメモリキーヤの特徴について説明します。

  • チャネル数: 記録できる電文のチャネル数は4とします。なお、別途トグルスイッチを1個追加すれば、2倍の8チャネルに増やすこともできます。シフトキーのように使って、CH1~CH4とCH5~CH8を切り替えるようなイメージです。
  • ボリュームによる直感的な操作: ボリューム(可変抵抗器)で変えられるパラメータは、スピーカ音量、送信速度、短点と長点の比率の三つとします。
  • きれいなモニター音: 矩形波ではなく、リグのようなきれいなモニター音を出すために、Q値の高い帯域通過フィルタ(BPF)を実装し、正弦波を生成して使用しています。
  • フラッシュメモリの使用: 電源を切っても記録した電文が消えないようにします。
  • Cプログラムの公開: 制御用のプログラムを公開します。C言語で書かれていますので修正・機能追加が容易です。使いやすいようにチューニングできますので、楽しんで下さい。

2. 回路図について

下図に回路図を示します。回路はそれほど複雑なものではありません。送信速度と短点と長点の比率については、ボリュームで分圧回路を構成し、その電圧をPICのA/D変換器(ADC)入力に与えてディジタル値に変換し、プログラム側で利用しています。PICには、RB7~RB0をICの内部でプルアップする機能があります。今回は、それを使って一部のプルアップ抵抗を省略しています。


※クリックでPDFファイルの回路図が開きます。

PICのCCP2端子から出力された600Hzの矩形波のトーン信号を正弦波に変えるために、オペアンプLMC6482で構成されたBPFに通しています。LMC6482は、低電圧で動作できるRail-to-RailのCMOSオペアンプで、筆者のお気に入りです。スルーレートでは、LT1498などの高性能オペアンプにかないませんが、250円程度で買えるところが非常にFBです。600Hzのトーン信号の周波数は、後述のCプログラム中に書かれた数値を変更して調整できます。BPFの中心周波数は700HzでQ値は10程度ですので、矩形波の周波数を変更すると音量が変化するかもしれません。気になる場合は、R9の110Ωの値を150Ωに変えるとBPFの中心周波数は600Hzにシフトし、130Ωで650Hz、85Ωで800Hzとなります。適宜、調整して下さい。R9を半固定に置き換えて、調整できるようにすると便利かもしれません。

アイソレーションが気になる方は、KEY出力用のトランジスタ2SC1815の代わりに、フォトカプラを使うと良いでしょう。例えば、TLP621を使う場合ですが、データシートによると発光側の推奨順電流はIF=16mAですが10mA程度でも十分です。順電圧VFは約1.2Vですので、390Ω~470Ωぐらいの抵抗を直列に入れて下さい。

スピーカアンプは、当初、定番のLM386を使っていましたが、音量を上げたときの歪みが非常に大きく、折角の正弦波が台無しになってしまったことから、HT82V739に変更しました。LM386の電源電圧を5Vから10V程度に上げても歪みはそれほど改善されませんでした。今回は、高性能ICに頼ることにします。

3. 製作しよう

それでは、先月号の基本回路に部品を追加して、製作を始めます。ユニバーサル基板は、サンハヤトICB-504を半分に切断したものです。基板の写真を載せていますので参考にして下さい。ユニバーサル基板上で動作確認が行えるように、タクトスイッチを並べています。左上から順に、プレイバック操作のためのCH1、CH2、CH3、CH4スイッチで、2段目は、REPEATスイッチとRECスイッチです。3段目は、DOTスイッチとDASHスイッチで、電鍵と並列に接続しています。ケース側に取り付けたスイッチ/ボリューム類とは、基板の右側に並んでいるコネクタを介して接続します。上から、送信速度ボリューム用(回路図のCN3)、プレイバック操作スイッチ用(CN4)、電鍵用(CN5)、音量ボリューム用(CN6)となっています。更に、左側には、PICkit 3と接続するためのターゲットコネクタ(回路図のCN1)とシリアル通信コネクタ(CN2)を取り付けています。下の写真を見ればわかりますが、PICkit 3と、USBシリアル変換アダプタが干渉しないように、少し間を空けて取り付けることに注意して下さい。シリアル通信コネクタ(CN2)ですが、誤ってPICkit 3を接続してしまわないように、意図的に少し奥まった位置にはんだ付けして対策しています。


PICkit 3とUSBシリアル変換基板が干渉しないように6ピンコネクタを配置して下さい。

スイッチ/ボリューム類用のコネクタとして、日本航空電子(JAE)のILコネクタを使いました。1/10インチピッチのためユニバーサル基板との親和性が高く、抜けにくく方向性のあるコネクタで、長年愛用しています。今回は使いませんでしたが、他に、QIコネクタも多用します。同じく1/10インチピッチであり、低コストで省スペースに設置できますが、方向性がないため間違って逆向きに刺さないように注意が必要です。抜けやすい点もマイナスです。CADを使ってプリント基板を起こす場合は、日本圧着端子製造(JST)のGHコネクタなどを使います。GHコネクタにはカチッと固定できるラッチ機能があり、小さすぎず大きすぎずで、ILコネクタと同様にお気に入りです。


左がILコネクタ(アングルとストレート)、右がQIコネクタです。


GHコネクタを使って製作した基板です。表面実装部品で、2~15ピンのラインナップがあります。写真は4ピンと10ピンのコネクタです。左のUSBミニBコネクタと大きさを比べてみて下さい。


ILコネクタを介してボリュームと電鍵用ジャックを接続した様子です。スピーカと5V電源用DCジャックは、基板に直付けしました。

4. Cコンパイラのインストール

開発環境ソフトウェアは、先月号と同じく「MPLAB」を使いますが、今回は、C言語が使えるようにCコンパイラを追加インストールします。最近、HI-TECH社がPICを製造するMicrochip Technology社に買収された関係で、C18などのCxxシリーズのCコンパイラから、XCシリーズのCコンパイラに移行しました。XCシリーズでは、Fレジスタのビット幅によって、XC8、XC16、XC32を使い分けることになります。PIC18F2550のFレジスタは8ビットですので、ここでは「XC8」をインストールします。ダウンロード手順は以下の通りです(2014年7月末時点の情報です)。

  1. Microchip XCコンパイラのページにアクセスして下さい。
  2. 左側のメニュー内にある「ダウンロード」の中から「XC8 - Windows」をクリックして、インストールファイルをダウンロードして下さい。
  3. ZIPファイルを解凍して、インストールします。OSのバージョンによっては、「右マウスクリック」+「管理者として実行」を使ってインストールしなければならないかもしれません。
  4. インストールが終わったら、MPLABを起動します。

5. プログラムのコンパイルと書き込み

初めてコンパイルをする場合は、まず、プロジェクトを作成して、ソースファイルをプロジェクトに登録する必要があります。以下の手順でプロジェクトを作成して下さい。

  1. MPLABのメニューから「Project」→「Project Wizard」を実行します。
  2. Project Wizardダイアログが開き、左上にStep Oneと書かれた画面になります。「Device」として「PIC18F2550」を選びます。
  3. Step Twoの画面では、「Toolsuite Contents」として「Microchip MPLAB XC8 Compiler」を選びます。表示されていない場合は、コンパイラがインストールされていないか、インストールに失敗したことが原因です。XC8を再インストールしてからやり直して下さい。選択後、「次へ」を押します。
  4. Step Threeの画面では、「Create New Project File」のラジオボタンを選択し、入力欄の右の「参照」を押して下さい。適当な場所に新しいディレクトリを作成し、そのディレクトリに移動してから、適当なプロジェクトファイル(*.mcp)を作成して下さい。この例では、「D:\PIC18F2550\XC8\CWKEY1」ディレクトリを作成してから、「D:\PIC18F2550\XC8\CWKEY1\CWKEY1.mcp」のプロジェクトファイルを作成しました。
  5. Step Fourの画面では、プロジェクトに取り込む既存ファイルを指定できますが、ここでは、何も追加指定をせずに「次へ」を押します。
  6. 「完了」ボタンを押します。
  7. MPLABのメニューから「File」→「New」として、新規ファイルを開きます。
  8. ここからメモリキーヤのCプログラムをダウンロードして開き、コピーペーストで、新規ファイルの本文に流し込んで下さい。
  9. 新規ファイルをフォーカスしてから「File」→「Save」を実行すると、「名前を付けて保存」のファイルダイアログが開きますので、「CWKEY1-MAIN.C」のようなファイル名を付けて保存して下さい。
  10. 保存だけでは不十分で、このCプログラムのファイルをプロジェクトに追加しなければなりません。画面左上のmcwウィンドウの中の「Source File」を右クリックして、「AddFiles」を実行して下さい。
  11. ファイルダイアログが開きますので、先ほど保存した「CWKEY1-MAIN.C」を開いて下さい。これでプロジェクトへの登録が完了します。

ここからは、プログラムのコンパイル方法と書き込み方法について説明します。C言語では「Quickbuild」の代わりに「Build」を使います。MPLABのメニューから「Project」→「Build」を実行し、ソースファイルをコンパイルして下さい。F10キーのショートカットキーを押しても同様にコンパイルが始まります。Outputウィンドウの「Build」タブの最下行に「********** Build successful! **********」と表示されれば、コンパイル成功です。


※クリックで拡大します。

さて、「Build」タブをスクロールして、コンパイル結果のメッセージの少し上の部分を見て下さい。「Memory Summary」のセクションになりますが、ここには結構重要な情報が書かれています。特に「Program space used 1B43h ( 6979) of 8000h bytes ( 21.3%) ※値は例です」の部分は必見です。今回のメモリキーヤでは、プログラムメモリの後半を、電文を記録するためのフラッシュメモリとして使っています。この表示を見て、何番地から何番地までが空いているのかを確認できます。

コンパイルに成功したら、いよいよ、PICkit 3を使って書き込みます。先月号のアセンブラのときと同様ですが、以下に手順を示します。

  1. 「Programmer」→「Select Programmer」→「PICkit 3」を選びます。この操作は2回目からは不要です。
  2. Voltage Cautionのダイアログが表示されます。「5Vを出力すると3.3Vデバイスは壊れます...」と表示されています。内容を確認して「OK」を押して下さい。
  3. Outputウィンドウの「PICkit 3」タブに赤字で「You must connect to a target device to use PICkit 3」と表示されるかもしれませんが無視します。これが表示される原因は、製作回路をPICkit 3の先端のターゲットコネクタに装着していないためです。装着して、製作回路の電源をONにした段階で「Target Detected. Device ID Revision = ...」と表示されますので、無視しても問題ありません。
  4. 「Programmer」→「Program」を実行して、プログラムを書き込んでみます。「Programming... Programming/Verify complete」と表示されれば、書き込み成功です。
6. 動作確認と使い方

RECボタンを押しながら電源をONにして下さい(または電源を入れなおして下さい)。RECボタンを押しながら、「Programmer」→「Program」を実行しても同様です。この操作によって、CH1~CH4に、デフォルトの電文が書き込まれます。この後、CH1ボタン(基板上のスイッチまたはコネクタを介して接続されたスイッチのいずれか)を押して下さい。「CQ CQ...」と電文が鳴り出したら成功です。音量ボリュームを少し上げておくことをお忘れなく。

使い方は、次の通りです。

  • エレクトリックキーヤ: DOTまたはDASHボタンを操作することで、電文を送信できます。
  • 電文の再生: CH1~CH4のいずれかのボタンを押すと、登録された電文が再生されます。途中で中断する(キャンセルする)には、CH1~CH4、REPEAT、REC、DOT、DASHのいずれかのボタンを押します。CH1~CH4ボタンは、離した瞬間から再生が始まります。現在の電文の再生をキャンセルして、別の電文を再生する場合ですが、CHボタンを少しの間押し続けてから離すと、電文と電文の間に適度なスペースを入れることができます。
  • 電文のリピート再生: REPEATボタンを押しながらCH1~CH4のいずれかのボタンを押して下さい。電文と電文の間隔は、DASH 15個分の時間にしています。変更したい場合は、プログラム中の「REPEAT_BLANK」の値を変更して下さい。
  • 電文の登録: RECキーを押しながらCH1~CH4のいずれかのボタンを押します。LEDが点灯して登録モードになります。登録したい電文を打って下さい。打ち終わったらRECボタンを押せば登録されます。RECボタン以外(DOT/DASHボタンを除く)を押すとキャンセルされます。電文はPICのフラッシュメモリに記録されますので、電源を切っても消えることはありません。約160文字までの電文を記録できます。文字数を増やしたい場合は、Cプログラムの「MAXMEMLEN」の値を大きくし、「FLASH_ADDRESS」の値を小さくして下さい。PIC18F2550のフラッシュメモリは0x7FFFが最終番地ですので、これを超えないように注意して下さい。
  • 速度の調整: AN0端子に接続されたボリュームを回すことで調整できます。
  • 短点と長点の比率の調整: AN1端子に接続されたボリュームを回すことで1:2.5~1:4.5の範囲で、短点と長点の比率を変えることができます。ボリュームのセンターは1:3.5ですので注意して下さい。DOT/DASHボタンを同時押しするか電文を再生しながらボリュームを回し、ベストな位置を見つけて下さい。
  • チューニング: Cプログラムを変更して細かいチューニングを行うことができます。プログラム中の「■」の豆腐文字マークで示した箇所が、メジャーなチューニング箇所になります。参考になりましたら幸いです。

7. 配線例

製作した基板の写真を添えます。配線例として参考にして下さい。


配線例(おもて)


配線例(うら)

今回はここまでです。Cプログラムは、この記事のために書き下ろしたオリジナルのものです。どうぞご活用下さい。次回は、製作したメモリキーヤにパソコンを接続して制御する方法について説明し、プログラムに機能追加を行います。

頭の体操 詰将棋

3人娘アマチュア無線チャレンジ物語

  • 連載記事一覧
  • テクニカルコーナー一覧

お知らせ

発行元

発行元: 月刊FBニュース編集部
連絡先: info@fbnews.jp