2022.8.9
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第34回]



●PICUSBIO−01

大変長い間お待たせをいたしました。
やっとハードウェアの紹介です。
まず最初に紹介するのはPICUSBIO−01です。

製品名に−01とありますようにシリーズ化を考えています。
とりあえずその第一弾として−1〜−10までをすでに基板化しています。
これから順次紹介をしていきます。
ハードウェアとソフトウェアを考えていくうちにもっともっと沢山の製品化を思いつきました。
当初は単なるI/Oとして考えていたのですが、せっかくUSBの先にPICを接続するのですからPICの外にI/Oをつなぐということから離れてPIC自体のI/Oをそのまま使うとかPICに内蔵されているADコンパーターとかタイマーとかの機能を使うというのも面白いのではないかと思います。
さらにはUSBIOから離れてPICそのものを単独で使うためのBASICができるとさらに応用が広がると思います。
ここはなんとか工夫してBASICコンパイラをPICに組み込むようにできれば、と構想はどんどん広がっていきます。

ま、しかし、それは先の話です。
まずは初めの一歩。
今回はUSBで制御するように考えた82C55ボードです。
Windows98以前はWindowsパソコン本体に組み込まれていた82C55相当回路をソフトウェアで制御することができました。
その出力はプリンタインタフェースとして25pinDSUBコネクタで外部に取り出せるようになっていました。
これは実に便利でコマンドプロンプト(DOSプロンプト)画面で86アセンブラで組んだマシン語プログラムで制御したりすることができました。
Windowsパソコンにワンボードマイコンの機能がついているようなもので、工夫次第で随分色々な用途に応用が可能だったと思います。
しかしMicrosoft様はこの便利な機能を封印なさってしまわれました。
あの便利だった機能をその後のWindowsパソコンでも再び使えるようにしてみたい。
PICUSBIO開発の動機はまさにそこにありました。
ですから製品の第一弾は82C55です。

82C55って何?
と思われる方のためにまずは82C55について簡単に説明をしておくことにします。
もとはかのINTELの伝説の8ビットCPU8080のファミリーLSIとして開発されたもので開発当初はNmosの8255でしたがその後Cmosの82C55が開発されてCPU周辺I/Oとして一世を風靡する存在となりました。
ソフトウェアで入力と出力の向きを切り換えることができる8ビットの入出力兼用ポートとしてAポート、Bポート、Cポートの3ポートを内蔵しています。
82C55の使い方は単なるI/Oだけではなくてそのほかにもパラレル通信用の機能などもあるのですが、一般的には普通のI/Oモードであるモード0で使われます。
82C55はCPUから見るとI/Oアドレスの下位2ビットが00〜11の連続した4個のアドレスに割り当てられた8ビットのI/Oとして見えます。
アドレス下位2ビット=00はAポート、01はBポート、10はCポートに割り当てられています。
アドレス下位2ビット=11はコントロールワードアドレスです。
コントロールワードアドレスにコントロールワードを出力することで各ポートの向きを設定したりCポートだけに許されるビット出力制御などを行なうことができます。

下は各ポートの向きを指定するコントロールワードです。

たとえばコントロールワード10000000(80H)はAポート〜Cポートの全てを出力に設定します。
また10011011(9BH)はAポート〜Cポートの全てを入力に設定します。
AポートとBポートは8ビットの全部を入力か出力のいずれかの向きに設定することしかできませんがCポートだけは上位4ビットと下位4ビットを別々の向きにすることができます。
たとえば100X10X0はCポートの上位4ビットを入力に、下位4ビットを出力に設定するコントロールワードです。
Cポートはこのほかに出力に設定されているときに特定の1ビットのみの出力を変えることができます。
コントロールワードアドレスに下のワードを出力することでCポートの他のビットを変化させることなく指定したビットのみの出力を0または1にすることができます。


本日は時間がなくなってしまいました。
次回に続きます。

PIC−USBIO using BASIC[第34回]
2022.8.9upload

前へ
次へ
ホームページトップへ戻る