FTDI社FT311Dを試食する。

更新日
2012/12/18 公開開始


2012/12/18
Twitterで知ったHakko社の温調つき半田こてが気になり、型番を調べていたら、FTDI FT321Dチップに関するつぶやきもお気に入りにしていたことを思い出した。
このチップはUSBホストとして動作するデバイスで、Android端末をUSBデバイスとして接続する。
FT321Dをキーワードにググッてみると評価ボードを手に入れている人がいて動作確認の報告をしている。
ADKは、USB HostシールドやPICに比べ、お手軽に試せそうだ。
UART、PWM、SPI、I2Cと今仕掛けているArduinoシールドとの接続も容易だ。
秋葉原のショップでは入手できなさそうだ。
Mouserには、評価ボードもチップもある。しかもお手ごろな値段で。
仕掛かり中の基板がたくさんあるので、FT321Dに手を広げるか迷った。
だが、ArduinoボードやATMEGA328も安いので、あわせて購入する。

2012/12/19
Mouserから出荷のお知らせメイルが入る。キャリアは、Fedex。
お世話になっている先輩と食事会。いろいろアドバイスをいただく。今後の活動に活かしていきたい。

秋葉原でお買い物をする。年末なのでいろいろ仕入れる。
千石電商で背の低いコンデンサと抵抗、ピンヘッダなどを調達。
○東進工業
低ESR電解コンデンサ、25V、470uF、1EUTWRZ471M、@40円
○ニチコン
小型低インピーダンス電解コンデンサ、35V、4.7uF、UMF1V4R7MD、@20円
○タクマン電子
酸金1W、0.1Ω、RLF1S 0.1Ω、@10円

秋月電子に行くが、人が多すぎてほしいものがなかなか見つからない。
アノードコモンの7segLEDを購入して、そのほかは、通販で調達することにした。

2012/12/20
FTDI社のウェブサイトから下記資料をダウンロードする。

1)DS_FT311D.pdf
FT311Dのデータシート

2)WP_001_Connecting_ Peripherals_to_an_Android_ Platform.pdf
Android Open Accessoryモードに関する概要を説明しているホワイトペーパー資料。

3)FT311D_Android_programmer_guide(FT_000532).pdf
FT311Dの制御および、データのやりとりを規定しているプログラミングガイド

4)Android.zip
サンプルソースおよびapkファイル。

5)AN_208_FT311D_Demo_APK_User_Guide.pdf
4)のサンプルに関して説明している資料。

サンプルの数は、9つと豊富。ありがたい。


2012/12/20
奥さんが、ビデオカメラがほしいとのことでSONYのHDR-CX270Vをヨドバシカメラで購入。
ついでにNexus 7 16GBも購入。


家に帰るとMouserから品物が届いていた。注文してたった2日で届く。
箱を開けて内容物を確認。全部入っているようだ。


FT311Dの評価ボードを開封する。
ドキュメントのとおりArduinoシールドと同じサイズである。



動作確認のためFTDI社提供のデモアプリ、apkファイルをNexus 7にインストールする。
インストールはできるが、アプリが起動しない。アイコンも表示しない。なぜだ。
Androdi 4.2.1で動作確認しているサイト(参考文献 3)を参考にNexus 7を4.2から4.2.1にソフトウェアアップデートする。
しかし、アプリが起動しない。9つすべてのアプリをインストールできるが、起動しない。。。
Eclipseでソースからビルドする。SDKが古いために最新のSDK17をダウンロードする。
project.propertiesのtargetをandroid-17に変更してリビルド。Export unsigned Android packageでapkを生成。
gmailでnexus7に送る。今度は、インストールできないエラーが発生。
targetをandroid-13に変更してもインストールできない。
Google Playから入手したアプリはダウンロードできるし、自作のapkファイルもインストール、起動できる。
Nexus7 の設定をみていと、開発者向けオプションが見当たらないことに気がつく。
ネットで調べるとビルド番号を7回たたくとオプションが表示されることがわかる。(参考文献 4)
開発者向けオプションを有効にしてもそれらしき設定は見当たらない。
PCにつなげてみようとNexus 7のドライバを入手する。(参考文献 5)

コンフィグレーションピンの設定一覧を以下のようにまとめた。
これらのピンは、内蔵プルアップされている。

CNFG2
pin12
CNFG1
pin14
CNFG0
pin15
Mode
GND GND GND GPIO
GND GND Leave Open UART
GND Leave Open GND PWM
GND Leave Open Leave Open I2C(Master)
Leave Open GND GND SPI(Slave)
Leave Open GND Leave Open SPI(Master)

また、各モードに設定したときのピンアサインメントは、以下のとおり。

Pin name GPIO UART PWM I2C
(Master)
SPI
(Slave)
SPI
(Master)
CNFG[2:0] 000 001 010 011 100 101
23 IOBUS0 GPIO0 UART_TXD PWM0 I2C_CLK - -
24 IOBUS1 GPIO1 UART_RXD PWM1 I2C_DATA - -
25 IOBUS2 GPIO2 UART_RTS# PWM2 - - -
26 IOBUS3 GPIO3 UART_CTS# PWM3 - SPI_S_SS0 SPI_M_SS0
29 IOBUS4 GPIO4 UART_TX_ACTIVE - - SPI_S_CLK SPI_M_CLK
30 IOBUS5 GPIO5 - - - SPI_S_MOSI SPI_M_MOSI
31 IOBUS6 GPIO6 - - - SPI_S_MISO SPI_M_MISO

2012/12/21
評価ボードを接続しないとデモアプリが起動できないのでは、日中ふと思う。
帰宅後、試すとやはり思ったとおりであった。
FTDI社提供のデモアプリをインストール、ボードを接続するとアプリが起動した。
Android 4.xから仕様が変わったのか、アプリとして仕掛けをしているのかな。
ふと、eclipseでビルドしたものが動かない原因は、もしかするとデジタル署名をしてないからなのかと思い、デジタル署名の方法を学習した。(参考文献 6、7)
思ったとおり。アプリが起動するようになった。

UARTDemoの動作を確認する。
Nexus 7 --- FT311D評価ボード--- AE-UM232R --- PCで接続する。
X-CTUを立ち上げ、データを送る。


UARTDemo画面からデータが受信される!軽い感動を覚える。


続いてI2CDemoを試す。
温湿度、気圧、RTC、EEPROMシールド(E-0042)と接続する。

Nexu7 --- FT311D評価ボード --- シールド

FT311D評価ボードのモードをI2Cマスターモードにし、電源入れなおす。
I2CDemoが立ち上がる。デバイスアドレス、レジスタアドレスを指定すれば良い。


Arduinoとの組み合わせも試す。
Nexus7 --- FT311D評価ボード --- Arduino --- シールド
再びUARTDemoを立ち上げる。
1秒ごとに温度、湿度、気圧値が受信されることを確認。



2012/12/25 年末なので色々注文する。
秋月電子で部品を注文。
アマゾンでHakkoのはんだこて、eneloop、NXTを注文。
Androidタブレットのアプリケーション用にフォントデータを物色。
GIGAZINEが紹介しているLEDフォントが良い。(参考文献 8、9、10)
当初、一文字毎にbitmap形式のフォントデータを探していたが、その必要はなさそうだ。
TrueTypefont形式でも簡単にAndroidアプリに取り込めるようだ。(参考文献12)

2012/12/26 FT311Dのサンプルソースをビルド
FTDI社提供の9つのサンプルソースをビルドした。
下記の手順でインポート作業からapkファイルまで生成できた。



















2012/12/26 後閑さんのAndroidアプリをビルドする。
後閑さんのPICで楽しむAndroidアクセサリの自作の本を復習する。
アプリケーションのビルドを試みる。
が、ビルドエラーが発生。

書籍を参考に
SDK Platform API10
Google APIs 10
をインストールする。







参考文献13を参考にGoogle APIsに変更する。





Lint Error Checkingの項目も外すと、リビルドできた。


スイッチサイエンスでいろいろ購入する。
ProxonのNo.28006を使って、基板をカットする。

2013/01/07
Inkspaceを再インストールする。

















以前使用したときは、マイナビさんのページを参考に、UFOキャッチャーを作成しました。


免責事項
1)サイトの内容について
ご自身の責任でご利用いただくようお願いします。この内容に直接間接により生じたいかなる損害にも一切保証しませんのでご了承ください。