2016年4月10日日曜日

USBで何か作ってみる


PCの周辺機器はUSBで接続できるものが普通になっていますね。


マイコンの電子工作を楽しむ者としては興味深々でしたが、難しそうで敬遠していました。
以前は、シリアルインターフェイスが使えると大抵なんとかなったのですが、そろそろUSBを手懐けておきたいと思って、実験を始めました。

目標: USBホストを作って市販のUSB機器をマイコンで動かしたい。


安くて入手性がよく関連情報の豊富なUSB-HOSTコントローラを探しました。

選んだチップ

  1. PIC24F64GB002: CQ出版社のInterface誌2014年12月号で特集されています。Akitukiさんで売っていて入手性も問題ない。
  2. FTDIのVNC2: USBコントローラを2ポート搭載し サンプルコードが公開されています。

 FTDIのVNC2のお試しがこちらです。

入手は、送料も含めて一番安そうなRSコンポーネントさんからにしました。Webサイトに個人で行くと敷居が高そうに見えますが、ちゃんと買えました。
主な材料:
  • VNC2デバッグモジュール RS品番7080101
  • VNC-32L1B コントローラチップ RS品番7203861
  • 32ピンQFPのDIP化基板、USB-Aコネクタ、12MHz水晶振動子
  • そのほか手持ち部品: USB-シリアルアダプタ(3.3V)配線材料、セラコン他

 

Soft関係はFTDI社のサイトから落としてきます。

開発環境はここで、VNC2Toolchainを使います。
http://www.ftdichip.com/Firmware/VNC2tools.htm#VNC2Toolchain

サンプルプロジェクトはこちらから。
http://www.ftdichip.com/Firmware/Precompiled.htmulum-II Programmable USB 2.0 Host

IDEのスナップショット 
サンプルプロジェクトをコンパイルしコントローラに書き込むことができます。

端子配列

32ピンQFPをDIP化基板に載せたときのピン配置はこうなります。
No.9, 10, 11の3本がデバッグモジュールへの接続端子です。ということで回路図は省略。
UARTポート番号等のピン割り付けは変更可能で、サンプルのソースコードを探すと書いてあります。
 
DIP化したコントローラのピン配置
3.3Vには適宜セラコンを接続。
 
 
ここで、驚きの事実が発覚。デバッグモジュールのコネクタが、2mmピッチの6
ピンになっています。ブレッドボードが2.54mmピッチなので挿せません。
そこで、2.54mmの5ピンヘッダを無理やり半田付けしました。 まあいいか。

デバッグモジュール
ピンピッチ変換してます。
 
材料がそろったブレッドボードで組み立てますが、IchigoJamに組み込んだUSBシリアルアダプタを流用しています。 目標のひとつは、USBメモリやキーボードをIchigoJamに繋ぐことですが、まだつながっていません。


”UART to USB Memory Sample Application ROM”

シリアルポートから受け取ったデータをTEXT.TXTというファイル名でUSBメモリに書き込むサンプル。 

USBメモリ接続
あっけなく成功。ただ、RTCが無いのでタイムスタンプが古いです。FATも含まれています。


UART to USB HID Class Host Sample Application ROM

HIDデバイス(キーボードなど)からデータを受け取ってシリアルポートに送るHOSTのサンプル。

キーボード接続
これでキーボードが簡単にIchigoJamにつながるかと思ったら、シリアルで出てくるデータがUSBのコードそのままでした。
ASCIIに変換しないとつかえません。 できれば、P/S2に変換したいと思います。

------------------------------------------------------------------------------------------------------

注: IchigoJamについてはこちらをご覧ください。



0 件のコメント:

コメントを投稿