FT2232をbitbangモード(パラレルIO)で使ってみたい!

FTDI社のFT2232デバイスを使ってBitbangモードでパラレル制御をやってみました。
OSはUbuntu16.04です。

●背景
いつもはFT2232デバイスをつかってUARTモードでしか使っていなかったのですが、訳あってパラレルでも使いたくなったので、専用ドライバを入れてパラレルで動かしてみることに。


●ドライバのインストール
今回は、オープンソースのlibftdiドライバを使いました。
https://www.intra2net.com/en/developer/libftdi/download.php

 

1)libftdi1-1.4.tar.bz2をダウンロードします。
2)$ tar -zxvf libftdi1-1.4.tar.bz2
3)$ cd libftdi1-1.4/
4) READMEに書いてあるとおりにする。sudo 権限でです。
5) 以下が私の環境で展開されたファイルなど
-- Install configuration: "RelWithDebInfo"
-- /usr/lib/pkgconfig/libftdi1.pc
-- /usr/lib/pkgconfig/libftdipp1.pc
-- /usr/bin/libftdi1-config
-- /usr/lib/cmake/libftdi1/LibFTDI1Config.cmake
-- /usr/lib/cmake/libftdi1/LibFTDI1ConfigVersion.cmake
-- /usr/lib/cmake/libftdi1/UseLibFTDI1.cmake
-- /usr/lib/libftdi1.so.2.4.0
-- /usr/lib/libftdi1.so.2
-- /usr/lib/libftdi1.so
-- /usr/lib/libftdi1.a
-- /usr/include/libftdi1/ftdi.h
6)前提として、libusbはインストール済みです。
なければ、apt-get install libusbなんとかでインストールしておきます。

●サンプルコードのコンパイル
libftdi1-1.4/examples/bitbang.cをコンパイルしてみます。
1)$ gcc bitbang.c -I /usr/include/libftdi1/ -L /usr/lib -lftdi1
-I:includeディレクト
   -L:libraryのディレクト
-l:リンクライブラリ libftdi1.so とかなんとかがあるので libを除いたファイル名を指定しました
 お!コンパイルはうまく行ったみたい。

 

APIのdocument

https://www.intra2net.com/en/developer/libftdi/documentation/group__libftdi.html#ga01199788c36ba93352f155a79ea295e8


●参考にさせていただいたサイト
https://www.if.t.u-tokyo.ac.jp/~mita/EInfo/JSAP2015/01-FT245-LED.html

Ubuntu16.04LTSでPythonが使えなくなってたけど、以下のことをもう一度やり直して解決

ちなみにUbuntuカーネルアップデートされておりまして、

$uname -a

結果がこれーーー

4.4.0-124-generic #148-Ubuntu SMP Wed May 2 13:00:18 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

 

なぜだか、PIPが使えなくなっている。

いろいろドハマりしたけど、結局もう一度インストールした。

 

●Ubuntu16.04LTSにPythonを入れる。

参考にしたサイト。

www.python.jp

ですがが最後の、 $sudo python get-pip.py コマンドでエラー。

これを実行すると、ImportError: cannot import name 'sysconfig' というエラーが出てきたので、次のコマンドを実行して解決。
$sudo apt install python3-distutils

こちらを参照しました。

github.com

うまくいった!

$python3.6で実行できる。pipも使える。ふー。

 

 次はpyenvでPython入れたい。

Linuxを組み込んだzynq-7000のI2Cの探し方(1)

/sys/class/i2c-adapter下にシンボリックリンクされていた。

la -laで現れたI2C

lrwxrwxrwx 1 root root 0 Feb 11 2016 i2c-0 -> ../../devices/soc0/amba/e0004000.i2c/i2c-0
lrwxrwxrwx 1 root root 0 Feb 11 2016 i2c-1 -> ../../devices/soc0/amba/e0005000.i2c/i2c-1
lrwxrwxrwx 1 root root 0 Feb 11 2016 i2c-2 -> ../../devices/soc0/amba_pl/41300000.i2c/i2c-2

 

i2c-0,i2c-1はPS部のBuilt in I2C。i2c-2はPLにインプリしたi2cか。

他にもI2C大量に突っ込んだのに、どうやったら見えるんだろう。。。