2022.5.22

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


PIC−USBIO using BASIC

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

[第1回]



●「問題はソフトウェア」という問題

一週間ぶりの更新になってしまいました。
本日からは新しいテーマで始めます。

Windowsパソコンに外部I/O回路を接続してソフトウェアで外部回路を制御するということはずっと以前から行なわれてきました。
Windows95、98、XPまではそれはもっぱらプリンタポート(その実体は8255によるパラレルインターフェース)を使ったものでした。
これはなかなかに便利でROM WRITER回路とかPICやAVRの書き込み回路などいろいろな回路に応用されてきました。

ところが。
あろうことかなかろうことか、Microsoft様はそれ以後のWindowsからその貴重なパラレルインターフェースを駆逐なさってしまわれました。
代わりに登場したのがUSBインターフェースです。
しかし、しかし。
パラレルインターフェースの時代にはDOS窓のマシン語プログラムで直接パラレルポートを制御できましたのに、USBインターフェースはそんな簡単なものではありませんでした。
のみならず自由な民がWindowsパソコンの内部に直接マシン語でアクセスすることが事実上禁止されてしまいました。
さてどうするか。

ということで当初はFTDI社のUSB−パラレル変換チップを使ったUSBインターフェース回路を組んで使ったりしていたのでしたが、これがまたなかなかに厄介な代物でありました。
なにしろそれを使うには前もって専用のドライバソフトを組み込む必要があるのですがそれがWindowsのバージョンによってそれぞれ異なっていたりして、しかもそれがうまく組み込めないとか、いろいろなトラブルにも遭遇してしまいました。
これに代わるものはないものか?
そういうなかでたまたまみつけたのがUSBインターフェス内蔵のPIC18FなるICでした。
PICはずっと以前から使っていましたがそれはすべてPIC16FでPIC18Fは初めてでした。
そのあたりの経緯につきましては「PICでUSBを!」に詳しく書いておりますので参照願います。
上記の記事を書きましたのは2009年12月でしたからそれからもう12年近くも経ってしまいました。
まさに光陰矢のごとしであります。
そこに書いておりますように当初は泥沼にはまってなかなか抜け出せずに随分苦闘したものでしたが努力の甲斐あってやっとのことでものにすることができました。
そこでさっそく組み込んだのがND80Z3.5の前身ND80ZVでした。
PIC18F14K50を使ったUSBインターフェースです。
その後ND8080やND80KL/86など色々なマイコンボードに同じUSBインターフェース回路を組み込んで今日に至っています。

さて。
そこで冒頭のお話に戻ります。
せっかく苦労して作ったPIC18F14K50を使ったUSBインターフェース回路ですが。
PICの本来の主たる用途はUSBインターフェースではなくて、さまざまなI/O制御。
おお。
すると。
USBインターフェースとI/Oが合体すれば。
Microsft様によって禁じられてしまった禁断のWindowsパソコンによるI/O制御が復活するではありませぬか。
ということでさっそく作ってしまったのが下の写真のボードです。
PIC18F13K50に82C55を接続しています。



ND80Z3.5などのUSBインターフェース回路には機能上の理由からPIC18F14K50を使っていますが、こちらはコストの関係でPIC18F13K50を使っています。
上の写真は試作品ですので他にもIC回路が載っていますが、最終的に落ち着いた回路は下の回路です。



たったこれだけの至ってシンプルな回路です。
82C55とWindowsパソコンの間にPICUSBインターフェースを置くことでパソコン側のプログラムで82C55を制御することができます。
ところで。
上の写真のボードを試作したのは2015年のことです。
かれこれ7年も前です。
そんな前に作っていながらなんで今まで製品として売り出そうとしなかったのか?
それが今回の見出しに書いた問題でした。

ハードはこれでいい。
しかしソフトウェアはどうするか?
ああ。
勿論このボードの動作確認はちゃんとやっております。
ええ。
ちゃんとWindows側のプログラムで82C55は問題なく動作しています。
プログラムはC++です。

じゃあ、それでいいじゃないか。
C++ではいかんのか?

そこなんですよ。
私がそこにひっかかって、7年もの間このボードを棚上げにしてしまいましたのは。

いえ。
C++ではいかんとまでは思っておりません。
しかし。
C++は問題あり、という認識です。

まだ途中ですけれど、本日は時間がなくなってしまいました。
次回に続きます。

PIC−USBIO using BASIC[第1回]
2022.5.22upload


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