PIC18F452 を使ったメッセージキーヤー



スポンサーリンク


電子工作 18F452 エレキー

背景

マイクロチップのPICの中で、比較的メモリー容量とIO点数が大きい18F452をつかった電子工作を検討し始めました。40ピンのDIPタイプでは基板サイズが大きくなってしまうので表面実装タイプのチップが基板サイズ上有利です。しかし基板に直接半田付けするタイプは、ソフトをバージョンアップすることを考慮するとICP用のコネクタを基板上に設けなければならず思ったより基板サイズは小さくなりません。また表面実装部品の半田付けは難しさがあります。
PLCCタイプのチップであれば、ソケットを使って基板に実装できるのでプログラムの変更が簡単にでき半田付けも比較的簡単にできます。今回PLCCのPIC18F452を使ってメッセージメモリー機能付きエレキーを製作しました。

構想

18F452はプログラムメモリー容量があるので、いろいろな機能を実装できると思い、以下のような構想で製作を開始しました。
1:4行タイプのLCD(SC2004CSLB)を使ったユーザーインターフェイス
2:PS/2キーボードを使った入力
3:シリアルメモリ24LC256を使ったメッセージの保持

PIC18F452のIOコンフィギュレーションは以下のようにしました。

電子工作 18F452 エレキー
基板設計前の段階では、実際のチップのピン配置を元に接続される押しボタン等のパーツを考えたほうがPCBデザイン時に無理なルートのパターンがなくなって良いとおもいます。PCB製作時のCAD内のシンボルはわかりやすくて良いのですが、実際のピン配置と並びが違う場合が多いのでCAD上だけで設計をすると後悔することが多々ありました。
上の図のようなチップのピン配置を表計算ソフトのファイルとして作っておくと便利です。


回路図

回路は以下のようにしました。外部機器との接続は、端子台(ターミナルブロック)を使っています

電子工作 PIC18f452 エレキー 回路図

電源部分は5V1Aのレギュレータを使っています。外部に接続されるPS/2キーボードのために1Aの容量が必要です。
ブザー(SG1):発振回路内臓のブザーHDB06LFPNは外形寸法:φ15mm×13mm 秋月で購入可。キーイングのモニター用
シリアルメモリ(IC3):24LC256 メッセージ記憶用メモリ。12チャンネル分のメモリを保持
LCD(DS1):LCDキャラクタディスプレイ(SC2004CSLB) 4行表示タイプ20文字@行 秋月で購入可
特殊なパーツは使っていないので秋葉原や通販で購入できるものばかりです。

ソフトウエア(アルゴリズム)
セラロック20MHzを使って20MHzのクロックで18F452は動作しています。
PIC内のソフトは主に、1msのタイマー割り込みとメインルーチンの2つから成っています。
1msのタイマー割り込みルーチン内では、パドルからの入力を監視してキーイング処理(KEYOUTへの出力、ブザー出力)をしています。この部分は以前製作したPIC16F886を使ったエレキーのコードを大部分流用しています。
メインルーチンでは、PS/2キーボードとの通信、LCDへの表示、そして外部に接続されたVRのAD変換等をを担当しています。
PS/2キーボードとの通信は、mikroCのライブラリを使っているのでめんどうくさい部分はライブラリがやってくれます。キーボードからの受信した文字によってモードを変更したり、メモリーされたメッセージを読み出したり、メッセージを作成したりというルーチンが走っています。PS/2インターフェイスはプルアップされた信号線2本でキーボードを接続できるので押しボタン代わりにキーボードを使ったりすることができPICのIO点数の節約になり今後の電子工作に取り入れていこうと思います。
LCDへの表示もmikroCのライブラリを使って比較的簡単に実現できました。初期化、文字の表示等一通り関数があるのでそれらを組み合わせて使用するだけにまります。

基板
基板は、PIC18F452を中央に配置し、外部との接続用に端子台を使いました。コストアップになりますがケースに収納するのが楽になるのが大きいので採用しました。下の写真が完成した基板です。4行タイプのLCDを接続して撮影しました。

電子工作 PIC18F452 memory keyer

ケースに実装

ケースにLCD、押しボタン用の穴を開けます。基板、LCD等を固定し配線をします。

電子工作 PIC 18F452 エレキー(電子工作)


 電子工作 PIC 18F452 エレキー(電子工作)


パーツの取り付けは完成し、ケースにテプラーでレタリングし仕上げます。

電子工作 PIC 18F452 エレキー(電子工作)

PIC 18F452 エレキー(電子工作)


電子工作 18F452 エレキー

スポンサーリンク

操作方法

電源投入時には「オペレーションモード」になります。キーボードが接続されていない状態では、「オペレーションモード」のままになります。キーボードの「CTRL」キーを押すと「オペレーションモード」から「編集モード」に移行します。「編集モード」中に「CTRL」キーを押すと「オペレーションモード」になります。

オペレーションモード時
パドルから操作するとKEYOUT出力にパドル操作に対応したモールス信号が出力されます。「SPEED」でキー速度を「MONITOR VOL]でモニター音量を調整できます。「REVERSE]トグルスイッチでパドルの長点、短点を切り替えできます。(右手、左手切り替え用)
押しボタン「CH1]−「CH8」を押すとメモリーされたメッセージ12CHのうち1−8CHの内容を送信します。メッセージの送信中に中断したい場合は、どちらかのパドルをタッチします。
キーボードのファンクションキー「F1」−「F12」を押すとメモリーされた12CHのメッセージのうち対応するメッセージを送信することができます。キーボードからメッセージを送信している場合でもパドルをタッチすることによってメッセージの送信を中断することができます。

オペレーションモード時のLCDは以下のような表示になります。1行目はオペレーションモードをあらわす固定文字列で2−4行目が各メモリーチャンネルの最初の17文字を表示しています。写真はメモリーチャンネル1−3の内容の最初の17文字が表示されています。
電子工作

キーボードの「↓」(下矢印)キーを押すと表示するメモリーチャンネルの内容が1つずれます。下の写真はメモリーチャンネル2−4が表示されています。このようにオペレーションモード時には「↓」「↑」キーによって表示するメモリーチャンネルを3チャンネル分表示することができます。
電子工作


編集モード時
編集モードでは、メモリー内容を編集できます。最初に、キーボードの「F1]−「F12」を押し編集するメモリーチャンネルを選択します。
現在メモリーされている内容がLCDに表示されるので、キーボードを使って編集します。編集終了後「Enter」キーを押すとキーボードから入力したメッセージが不揮発性シリアルメモリに保存されます。続けて他のメモリーチャンネルを編集したい場合はキーボードの「F1]−「F12」を押し編集作業をします。編集モードからオペレーションモードに移行する場合は「CTRL」キーを押します。

編集モード時のLCDは以下のようになります。1行目に編集モードを表現する文字列とFキーを促す文字列が表示されます。
電子工作

「F1」キーを押すと、チャンネル1の編集画面が表示されます。LCDには1行目にチャンネル1を編集中であることを示す文字列と2−4行目には現在メモリーされている内容が表示され、キーボードから編集することができます。
電子工作
編集内容が確定したら「Enter」キーを押すとブザーが鳴り不揮発性のシリアルメモリーにメッセージが保存されます。

スポンサーリンク

戻る
TOPへ