2020年12月25日
FT232H使用USB⇔GPIO+SPI+I2C変換モジュール root でしか動かない?
FT232H使用USB⇔GPIO+SPI+I2C変換モジュール を 非ルートユーザーで動作させようかな
ちょっとした オンオフをパソコンから行いたくてもIOがなく困っていたところ
FT-232H 搭載の安価なボードがあったので
コレヲ非ルートユーザーで動作させてみました。 これで 例えばLEDの発光などが パソコンから制御できます。 QT5は C++の古典しかわからない人でも 画面が操作できるので 便利です。
調べた内容は FT-232Hの MPSSE
Multi-Protocol Synchronous Serial Engine
にあるGPIOです。
動作の条件は Fedora33 C++ Qt5で動かしてみました。
この手合は 買ってきてインストールでは root ユーザーでなければ動作しないことが多く
例えばQt5のQTcreator でコンパイル実行では オープンエラーが発生します。
FT_OPEN FT_ERROR 帰ってきます。 root で起動するとうまく行きます。
取り敢えず root で動作チェックをしたのち 通常ユーザで動作出来るようにしました。
FT-232H 搭載の安価なボードがあったので
コレヲ非ルートユーザーで動作させてみました。 これで 例えばLEDの発光などが パソコンから制御できます。 QT5は C++の古典しかわからない人でも 画面が操作できるので 便利です。
調べた内容は FT-232Hの MPSSE
Multi-Protocol Synchronous Serial Engine
にあるGPIOです。
動作の条件は Fedora33 C++ Qt5で動かしてみました。
この手合は 買ってきてインストールでは root ユーザーでなければ動作しないことが多く
例えばQt5のQTcreator でコンパイル実行では オープンエラーが発生します。
FT_OPEN FT_ERROR 帰ってきます。 root で起動するとうまく行きます。
取り敢えず root で動作チェックをしたのち 通常ユーザで動作出来るようにしました。
目次
1ドライバのインストール
FT232H LINUXドライバインストール
2サンプルの GPIO 動作
3通常ユーザーで動作させる
プログラムはみないでくださいな だってコンストラクタでいきなり エラーがでたらどうするんだみたいなプログラムだから 。 とりあえず動作する実験だから。
次のビデオは 実際ブレッドボードで 0から255まで 変化させてLED チカチカの実験だ。
取り敢えず8ビットの IOができた。 プログラムは どっかにアップしておこうかと思うのだが
かっこわりープログラムです。
ドライバーのインストール
FT232H使用USB⇔GPIO+SPI+I2C変換モジュール
移動
https://www.ftdichip.com/Drivers/D2XX.htm
で
tar xf libftd2xx-x86_64-1.4.8.gz
で展開
README.txt に書かれている 普通みないもんなREADME ^^;
作業は ROOTユーザーになって から このファイルも /root/Documants に置いたなんてズボラーなんだ。
展開すると release になってるので あとで忘れるため 232Hとフォルダを変更した。
mv release FT232H
cp libftd2xx.so.1.4.8 /usr/local/lib
chmod 0755 /usr/local/lib/libftd2xx.so.1.4.8
ln -sf /usr/local/lib/libftd2xx.so.1.4.8 /usr/local/lib/libftd2xx.so
リードミーにあるとおりだが
cd examples
make -B #これは無条件にメイクするという意味らしい。
いよいよ テストだ
linux では いきなりでは失敗するらしい。 とりあえず EEPROM/
cd /root/Documents/FT232H/examples/EEPROM/read #スーパユーザのルートで 作業中^^;
lsmod |grep ftdi
既に先客あり
[root@localhost read]# sudo rmmod ftdi_sio
[root@localhost read]# sudo rmmod usbserial
rmmod: ERROR: Module usbserial is builtin.
マニュアル通りではない ビルトインされているらしい
ブラックリストに のせてロードされないようにする
[root@localhost read]# ./read
Library version = 0x10408
Opening port 0
FT_Open succeeded. Handle is 0xeeeba0
FT_GetDeviceInfo succeeded. Device is type 8.
FT_EE_Read succeeded.
Signature1 = 0
Signature2 = -1
Version = 0
VendorId = 0x0403
ProductId = 0x6014
Manufacturer = Adafruit
ManufacturerId = FT
Description = FT232H
SerialNumber = FT3ZQ7NY
MaxPower = 100
PnP = 1
SelfPowered = 0
RemoteWakeup = 0
Returning 0
EEROM 読めた
sudo rmmod usbserial
ところで
ところで私の 帽子はフェドラだ
とりあえず 私のフェドラは rmmod ftdi_sio してやらないと ぶつかる
rmmod: ERROR: Module usbserial is builtin
ビルトイン されているらしい。
これは ブラックリストに のせてロードされないようにする。再起動が必要。
echo 'blacklist ftdi_sio' > /etc/modprobe.d/ftdi.conf こんな感じだ。
FT232H使用USB⇔GPIO+SPI+I2C変換モジュール を 非ルートユーザーで動作させる
まず su 酢で〆る
echo 'SUBSYSTEMS=="usb", ACTION=="add", MODE="0664", GROUP="usb"' >> /etc/udev/rules.d/99-usbftdi.rules/etc/init.d/udev reload
echo 'blacklist ftdi_sio' > /etc/modprobe.d/ftdi.conf
usermod -a -G usb $USER
こんな感じでリブートする。
【このカテゴリーの最新記事】
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/10430399
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック