v3.1以上になってUSBまわりのソフトもいろいろ出てきた。
ソースがあるのは有難い。
以下はADKやADBではなくUSBを直接制御するもの。
自分用のメモ。
1)RS232C
FTDIのChip。有難い。これでArdinoがAndroidに労せずしてつながる。
http://d.hatena.ne.jp/ksksue/20111103/1320347853
https://github.com/ksksue/FTDriver
2)同じくBitBang
BitBangを使うとUSB-IO風にポートにもなる。
http://projectc3.seesaa.net/article/252898870.html
https://github.com/yishii/FTDriver
3)USB-IO
まさにUSB-IOそのもの。スレーブはPIC18F14K50でHIDで動いている模様。
秋月のより直接購入した方が機能が高いらしい。
http://km2net.com/mobile/usbiof_io_sample/index.shtml
HIDの参考になるかも。
4)Pasori
Nexus7だとNFCもあるがやはり存在感のあるPasoriをつなぐ場合。
http://hiro99ma.blogspot.jp/2011/09/android-31pasori.html
https://github.com/hirokuma/NfcPcd
最初に読み方がわからなかったが、試行錯誤で解決。
参考になるかもしれないのでコメントに記述しておいた。
communicateThruExを使ってlibpasoriを参考に
・servicecodeを取得
・felica_read_without_encryption02を作成し、上で取得したサービスの読み込み
で読み込みができました。
communicateThruExがあるのでlibpasoriのコマンド移植をして、それでやるんですね。
http://libpasori.sourceforge.jp/
からソースをもってきてlpdumpあたりから追いかけていくとできる。
5)PIC18F/PIC24F
USBをもっているChipがある。PICといえば、おなじみ、後閑さんのサイト。
PIC18FのUSBは
http://www.picfun.com/usb20frame.html
のあたりにある。製作が面倒な場合は秋月で...
PIC18F2550
http://akizukidenshi.com/catalog/g/gI-02161/
PIC18F2553
http://akizukidenshi.com/catalog/g/gI-05410/
PIC18F4550(純正Ver1.2のサンプルがこれ)
http://akizukidenshi.com/catalog/g/gM-03147/
PIC18F14K50
http://akizukidenshi.com/catalog/g/gK-05499/
などを買う手がある。ただ
http://akizukidenshi.com/catalog/g/gM-02495/
のようなボードも必要。
PIC24FのUSBとAndroidは
http://www.picfun.com/android/androidframe.html
ADKもあるが、オシロはUSB制御。
http://www.picfun.com/android/android12.html
ざざっとソースを見るとGenericらしく多分Bulkで64Byte転送のようだ。
Hostも
送信:
mConnection.bulkTransfer(mEndpointOut, message, 64, 0);
受信:
result = mConnection.bulkTransfer(mEndpointIn, buffer, 64, 0);
とある。
device_filter.xmlを変更すれば汎用的なBulkのHostソースにできるかもしれない。
ハードはマイクロファンの
http://www.microfan.jp/pic24f-mod-ga002u
あたり?同社にはPICSYSというArduinoもどきもあるらしい。とにかくレジスタを覚えるのは本筋以外になるので余程最適化したものにしないのならフィジカルコンピューティングの方が楽チン。
6)ATMEGA32U4
AVRにもUSB付があって、AT90USB162というのがある。ただJTAG書き込み(でなくてもFlipでできるが)なせいかとっつきが悪いよう。
今ならATMEGA32U4のダヴィンチか?
http://strawberry-linux.com/catalog/items?code=25001
BootLoader変更でArudinoにもなる。価格は同じ。
http://strawberry-linux.com/catalog/items?code=25005
これでHIDとかCDCとかBulkにすれば多分上のソースから頑張れば動くはず。
8)FT245RL パラレル転送
FTDIのDriver作者が作成されている。
http://d.hatena.ne.jp/ksksue/20120508/1336497436
https://github.com/ksksue/Android-FPGA-FIFO-Transfer
700KHz出るらしい。AVRでもパラレルをIO接続すれば使えそう。
ただFIFOなので相手次第なのでRAMがいるかも。
FreeRunで作るほうがどうかしているが、FreeRunで20KHzほど出て欲しいもの。
9)FT232H SPI転送
FT232HというのがあってUSBのハイスピード対応。
AVRだとボーレイト制約が出るのでSPIなどでも接続できるらしい。
AVRを使った例はなかなかないがPCだと以下など。
http://blogs.yahoo.co.jp/d061333/29280180.html
以下を見ると12Mbps出るらしい。
CDCクラスのせいかFTDIのDriver作者のもので動くリストにある。(設定がないので増やせばいいのか?)
10)EZ-USB FX2
OSCPrimeのサイト。
http://www.osciprime.com/index.php?p=source
にAndroidのソースがある。他はCPLDなのでさっぱり。(^^!
ソースを見るとライブラリっぽくなっていてかなり複雑。
日本でもなひたふさんが...
http://nahitafu.cocolog-nifty.com/nahitafu/2012/04/index.html
http://nahitafu.cocolog-nifty.com/nahitafu/2012/10/jtag-1d5f.html
Airなのかしら?
そういえばProcessinngも、そのまま放置してある。
まあ、ざっと見ても随分増えたものだ。
で、「何を作るか?」が一番問題だったりする。(^^!