PIC−USBIO using BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第43回]
●PICUSBIO−05
前回までPICUSBIOのソフトウェアとハードウェアについて説明をしてきました。
ソフトウェアはPICUSBIOを制御するためのBASICインタプリタで、ハードウェアは82C55を搭載したPICUSBIO−01です。
製品名に「−01」がついていますようにPICUSBIOは一種類ではありません。
PICUSBIOはシリーズ化を考えています。
これまでのところとりあえずPICUSBIO−01のほかにPICUSBIO−02〜PICUSBIO−10まで合計10点を基板化しました。
ハードウェアとしてはどれも簡単な回路なので基板化するのはそれほど手間ではありませんでしたが問題はソフトウェアです。
いずれもUSBIF内蔵型のPICを使っているのですが、回路に合わせてPICのプログラムも書き換えなければならないことに気が付きました。
これは結構手間な作業でそれぞれごとに動作テストをして正常に動作することを確認しなければなりません。
BASICについてはPICUSBIOの制御に直接関係するのは基本的にはINとOUTだけですから共通の仕様でいけると思っていますが中には別途機能の追加も考えなければならなくなるかもしれません。
BASICについては幸い今のところ現行の仕様のままでいけています。
問題のPICプログラムについては基板ごとに必要な部分を書き直しつつ動作確認をしてきました。
しかし何枚かの基板については小手先の変更では済まないことがわかってきましたので、そういうものについては後回しにすることにしました。
思いつくままに基板化してきたのですがソフトウェアはなかなかにホネが折れます。
とりあえずやっと動作確認を終えることができた基板についてはこれから順次紹介していきたいと思います。
今回はPICUSBIO−01に続く2枚目の基板としてPICUSBIO−05の紹介です。
なぜPICUSBIO−02ではなくてPICUSBIO−05なのかということについては上に書きましたようにひとつにはPICのプログラムに手間がかかるのでとりあえずは後回しにせざるを得なくて番号順に紹介できないという事情があります。
今ひとつの理由は説明をしていく流れとして無理に番号順にしないほうが説明がし易いという裏の事情からでもあります。
PICUSBIO−05の写真です。
こちらはPICUSBIO−05の回路図です。
82C55の代わりに74HC373を3個使っています。
82C55のAポート、Bポート、Cポートの8ビット3ポートをそのまま出力のみの8ビット×3ポートにしました。
入力回路はありません。
82C55は便利なLSIですが汎用ではなくて目的別の回路として考えた場合使わない機能は無くてもよいいわば無駄な機能ということになります。
昔のように82C55がセカンドソースを含めて大量に生産されていた時代でしたならば無駄な機能があってもそんなことには関係なく使える機能のみを使う回路として仕上げても十分採算が取れました。
しかし時代は変わりました。
単体としての82C55が生産中止になったのはもうはるか昔のこととなってしまいました。
今でも生産しているメーカーもあるらしいのですが価格はベラボーです。
とても気楽に使える値段ではありません。
それじゃあ私はどうしているのかといいますと。
インターネットからわずかに残る流通在庫品などをかき集めてしのいでいます。
それも早晩底をついてしまう日がくるだろうと予想しています。
ということで今や貴重な82C55です。
もしも出力しか必要がない用途があるならば、そういう用途向けの基板としてはまだなんとか普通に入手可能な74HCを使ったほうがよい、と考えて作った基板です。
もっとも74HCもDIP品は終焉が近いように感じます。
世の流れとしてはいずれ面実装品のみになっていくと予想しています。
個人がハンダゴテを握ってあれこれを作っていくという時代は終りつつあります。
げに昭和は遠くなりにけり、であります。
それはともかく。
PICUSBIO−05の説明に戻ります。
OUTのみの8ビット×3ポートですがソフトウェア、ハードウェアの互換性を考えてPICUSBIO−01と同じ配列の26pinフラットケーブルコネクタに出力信号を配しました。
ND80Z3.5などのI/Oコネクタと同じ端子配列です。
各ポートにアクセスするためのアドレスもPICUSBIO−01に合わせて8ビットのうちの下位2ビットが00〜10にしてあります。
BASICを起動してPICUSBIO−05にテストデータを送りました。
PICUSBIO−01は82C55ですから最初に初期設定が必要ですがPICUSBIO−05は単なる出力ラッチ回路ですから初期設定は不要です。
いきなりOUT文でテストデータを出力しています。
こちらは出力結果です。
テスト用として昔に作ったLEDパネルは出力が0のときに点灯して1のときに消灯します。
上からAポート、Bポート、Cポートで左端がビット7、右端がビット0です。
[第36回]で使ったルーレットプログラムを使ってみました。
上で書きましたように82C55ではありませんから初期設定は不要です。
あっても支障はありませんがそこのところをはっきりさせるためにあえて初期設定の部分は外しました。
行番号10を削除しました。
行番号付きのBASICプログラムでは行番号のみを入力するとその行が削除されます。
念のためにLISTコマンドでプログラムを表示させたあとRUNコマンドで実行しました。
上の画面はキーボードから[z]キーを入力してプログラムが終了したところです。
カウンターナンバー5を表示してブレークしました。
そのときのPICUSBIO−05の出力の様子です。
ビット5が消灯しています。
PIC−USBIO using BASIC[第43回]
2022.8.23upload
前へ
次へ
ホームページトップへ戻る