2016年4月16日土曜日

IchigoJam用 USBキーボードアダプタ

 
 

こどもパソコンIchigoJam用のUSBキーボードアダプタを作ってみました。

 
 
IchigoJamのキーボード入力は、PS/2キーボードです。
枯れた製品なので色々なところに使われなくなったものが転がっていたりします。
USB専用で売られていたものが、使ってみるとPS/2でも動く場合もあります。
(基本的には無理ですが、運が良ければ)
 

しかし、主流はUSBですね。

入手がだんだん困難になるかもしれません。
さらにコンパクトとかスリムとか今時のキーボードでPS/2はなかなか売っていません。
 
そこで、USBキーボードをIchigoJamにつなぐアダプタを作ることにしたのでした。
つまりUSBキーボードからキーストロークを受け取り、シリアルデータに直してIchigoJamのRxD(シリアル入力)に流し込みます。
次のブロック図の緑の部分です。
 
アダプタ接続時のブロック図
 
 
 
USBキーボードアダプタの回路図
 RTSとCTSを繋ぎます。アダプタのTxDをIchigoJamのRxDにつなぎます。
 
 
書き込むFirmwareはこちらからDLできます。
 
 
実験中の様子
 

今後の方向

 
Amazon他を検索しますとタブレット用の持ち運びに便利そうなキーボードが廉価で販売されています。 英語キーボード用のFirmwareをつくるとこれも使えるようになります。

IchigoJamのRxDをふさいでしまいます。 出来ればPS/2につなげるようにしたほうが良いかも。
 
VNC2の機能がまだかなり余っているので、もう少し何かさせることを考えてから基板化したいと思います。
 
Bluetoothキーボードもつなげられると面白いかも。
 
 

注意など:

シリアル出力は文字コード出力でIchigoJam用に調整されています。
Firmwareは:JISキーボード用です。 Shift-2が ” のタイプです。
英語キーボード用(Shift-2が@のタイプ)はこれから作ります。
 VNC2の書き込みには”VNC2 DEBUG MODULE ”が別途必要です。 

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についてはこちらをご覧ください。