楽天市場
[無料でホームページを作成] [通報・削除依頼]

HIDアダプターについてのまとめ その2


前回は"HIDアダプターについてのまとめ"と称してHID-シリアルアダプターの搭載可能性についてまとめました。
今回、前回の表で△?印だったソフトウエア受信とソフトウエア送信の同時搭載について検討しました。

img_20150316-120103.jpg

1.使用したデバイス
上記表ではPIC12F1501については30MHzでの検討を行っていません。
これは、PIC12F1501はPIC12F1822やPIC12F1571同様拡張ミッドレンジの仕様ですが仕様書にクロックの上限が20MHzと記載されている為です。
今回は入手性の良いPIC12F1501を規格外の30MHzで動作させました。割り込みとデジタルポートの使用について動作確認出来ましたが、ADやコンパレータなどのその他の周辺機能については動作確認できていません。


2.回路
前回「シリアル受信をソフトウエアで実現した場合、USBの送受信のタイミングにかかるとデータを受信できません。」と記載しましたがUSB1.1のHIDの仕様ではホスト側から10msec毎に問い合わせの信号がHIDアダプターに送信されますのでこのタイミングを避けて受信する必要があります。
これを実現するため新たに/RTS(Request to Send)用に出力ポートを使用し、この信号がローレべルの時のみ受信可能とします。
また/RXに信号線を結線しない場合を想定して誤受信を防止するため/RXはプルアップしています。

img_20150316-120448.png
img_20150316-120524.jpg


3.PIC12F1501のファームウエア
①シリアル送受信をともにソフトウエアで実現します。
②シリアル受信はPIC16F5Xへの搭載も考慮して割り込みを使用していません。TMR0を使用します。
③USBの送信完了後、10msec毎に0.5msの間RTS信号をローレベルとし、接続相手からのスタートビットを待ちます。
スタートビットを検出すると、約1ms(9600bps)を要してシリアルデータを受信します。
④PIC12F1822の時のような2線式の通信はできません。接続相手は/TX,/RXのほかに/CTS(Clear to Send)の入力ポートが必要です。

img_20150316-120802.jpg


4.ループバックテスト
PIC10F322を用いて簡単なループバックテストを行いました。
"8ピンPICでUSB -16FUSBの移植-"で使用したホストプログラムを用いてループバックテストが行えます。

今回のHID-シリアルアダプターとPIC10F322との接続回路とPIC10F322のフローチャートを以下に示します。

img_20150320-151336.png
img_20150316-120911.jpg


今回でHID-シリアルアダプターの検討は終了します。

偉大なプログラムを作成してくださったEmanuel Paz様とDiego Mariano López様に感謝申し上げます。




ダウンロードはこちらから

https://drive.google.com/file/d/1LJ4OZsc8ZdyMXrHZyVM5rXP7QXFhA0fU/view?usp=sharing