PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.7.12 前へ 次へ 目次へ戻る ホームページトップへ戻る |
☆PIC18F2550の回路図 PIC18F2550はTK80互換マイコンボードに組み込んでUSBインターフェースとして使うことが目的で今までプログラムの作成作業を行なってきました。 PIC18F2550を組み込んだTK80互換マイコンボードはこれから作りますから、今までの動作テストでは特注品のマイコンボードND80ZHを改造して、そこにPIC18F2550を外付けしたものを使っています。 その部分の回路図です。 |
[第69回]
●PIC18F2550の回路図です
Z80版TK80ボード(ND80ZH)の試作基板に接続してテスト中の、PIC18F2550の回路図がやっとできました。
ND80ZHの回路からPIC16F88を外して、そこにPIC18F2550を接続しています。
PIC18F2550を接続する前の、ND80ZHの回路図はこちら(ワンボードマイコンをつくろう![第3回])です。
RC0〜RC2についているLEDはテスト中の動作をモニタするためのものです。
テストが済んだら外してしまいます。
PIC18F2550のpin15とpin16につながっているのがUSBコネクタです。
そのすぐ下にはICL3232があります。
このICはRS232Cのレシーバーとトランスミッターです。
●RS232C回路
ND80ZHはPIC16F88を使ったRS232Cインターフェイスを内蔵しています。
そしてPIC18F2550はUSBインターフェイスだけではなくて、RS232Cインターフェイスも内蔵しています。
せっかくあるのに使わないでおくのは、宝の持ち腐れですから、これから作る予定のZ80版TK80ボードも同じようにRS232Cインターフェイスをつけたいと思います。
その部分はND80ZHの回路がそっくりそのまま使えます。
PIC18F88のRX、TXをつないでいたところに、PIC18F2550のRX、TXをつなぐだけです。
もっともそれだけでは、PIC18F2550とZ80との間でやりとりするデータが、USB(HID)なのかRS232Cなのかを区別することができません。
そこでND80ZHでは未使用になっていた74HC373のpin19出力(I/Oアドレス98のビット6)をPIC18F2550のRA4に接続しました。
I/Oアドレス98のビット6がHのときは、USB(HID)でのSTORE(SAVE)/LOADで、このビットをLにしたときは、RS232Cでの送受信であることをPIC18F2550に知らせます。
TK80モニタプログラムにはSTORE(SAVE)/LOADの機能は1種類しかありません。
ですからTK80モニタプログラムでは、USB(HID)とRS232Cを使い分けることはできません。
もちろんRS232Cの通信プログラムを、ユーザープログラムとして作ってしまうなら、できるわけですけれど。
ND80ZHには、TK80モニタプログラムのほかに、当社オリジナルのND80Zモニタプログラムも搭載しています。
これから作る予定のZ80版TK80ボードでも、同じようにTK80モニタプログラムとND80Zモニタプログラムの2本立てにするつもりです。
ND80ZモニタプログラムではSTORE(SAVE)は[*(I/O)]キーに続けて[C(SV)]キーを押します。
LOADは[*(I/O)]キーに続けて[D(LD)]キーを押します。
この2つの機能は、これから作る予定のZ80版TK80では、USB(HID)の送受信として働きます。
そしてRS232Cを使ったSTORE(SAVE)は[*(I/O)]キーに続けて[2(SO)]キーを押すことにします。SOはSerial Outです。
同様に、RS232Cを使ったLOADは[*(I/O)]キーに続けて[3(SI)]キーを押すことにします。SIはSerial Inです。
この2つのキーは初代ND80ZではRS232C送受信を割り当てていたのですが、その後長らくの間使われないままになっていました。今回はその空きになっていたところがちょうど利用できました。
ND80Zモニタプログラムで利用するキーについてはこちらの写真(ワンボードマイコンをつくろう![第29回]ND80ZH)をご覧ください。
●RS232Cコネクタ
カスタムオーダー品のND80ZHでは、RS232Cコネクタは25pinのDSUBコネクタを使っています。
これから作る予定のZ80版TK80ボードでは、9pinのDSUBコネクタ(メス)を使うことにしました。
そのあたりの事情についてはCPUをつくろう![第183回]で少し書いています。
とりあえず動作テストのために、9pinDSUBコネクタ(メス)をND80ZH試作基板に取り付けました。
少しわかりにくいですが写真左側に見えるのが9pinDSUBコネクタです。
25pinDSUBコネクタの裏側から信号線を引き出しています。
9pinDSUBコネクタには秋月のUSBシリアル変換ケーブルを接続しています。
USBシリアル変換ケーブルでの送受信も、それからRS232Cケーブルを使って、Windows98パソコンの232Cコネクタと接続しての送受信も、ともにうまくいきました。
これで、現在計画中のZ80版TK80ボードでは、USB(HID)を使ったプログラム、データのSTORE(SAVE)/LOADと、RS232CでのSAVE/LOADの2通りの機能を利用することができることになりました。
CPUをつくろう!第496回(2010.5.8upload)を再編集
PICでUSBを![第69回]
2011.7.12upload
前へ
次へ
目次へ戻る
ホームページトップへ戻る