LoginSignup
0
0

More than 1 year has passed since last update.

SHARP Brain に Linux を入れて遊ぶ(5) - シリアル通信

Last updated at Posted at 2022-10-02

目次

概要

SHARP Brain で何しようと思った時に、シリアル通信できると他のデバイスをつなげて遊べそうだと思ったので試してみました。

前提

普通にUSBシリアルを繋げたら /dev/ttyUSB で認識するかなーと思ったけどダメっぽい。
ならば libusb か FTDI のライブラリを入れるまでよ。

FTDI ライブラリ

FTDI ライブラリが動くんなら Windows でも Mac OS X でも Linux でもデバグしやすいので、確認してみる。
FTDI の D2XX DirectDrivers を見ると、下のほうに Linux 1.4.22 ARMv5 soft-float があるので、これを入れる。
ftdi.png

libftd2xx-arm-v5-sf-1.4.22.gz がダウンロードできるが、中身はどうみても .tar なので tar xf で解凍。

user@brain:~$ tar xf libftd2xx-arm-v5-sf-1.4.22.gz

続いて release/ReadMe.txt に従ってインストール。

user@brain:~$ cd release/build/
user@brain:~/release/build$ sudo -s
[sudo] password for user:
root@brain:/home/user/release/build# cp libftd2xx.* /usr/local/lib/
root@brain:/home/user/release/build# chmod 0755 /usr/local/lib/libftd2xx.so.1.4.22
root@brain:/home/user/release/build# ln -sf /usr/local/lib/libftd2xx.so.1.4.22 /usr/local/lib/libftd2xx.so
root@brain:/home/user/release/build# cd ..
root@brain:/home/user/release# cp ftd2xx.h /usr/local/include/
root@brain:/home/user/release# cp WinTypes.h /usr/local/include/
root@brain:/home/user/release# ldconfig -v
root@brain:/home/user/release# exit
exit

これで ftdxx.h をインクルード、 -lftdxx すれば使える。
ただ、Brainux のアプリからシリアル アクセスするには root が必要なので、実行時には sudo しよう。

通信クラス

ざっくり作成。
https://gitlab.com/nekodevteam/brainux/-/tree/main/ft2xx

WindowsでもLinuxでも動作するので、まずはそっちでテストしよう。

テスト

テスト コードでは、とりあえず最初のデバイスを開いて A~Z を送信 / 受信をします。

  1. 秋月の FT234X を接続する。
  2. TxD と RxD をショートさせて ループバックさせる。
    ft.jpg
  3. make する
  4. sudo ./ft2xxtest
user@brain:~$ cd ft2xxtest/
user@brain:~/ft2xxtest$ make
gcc -Wall -O3 -c -o ft2xxtest.o ft2xxtest.cpp
gcc  -g -o ft2xxtest ./ft2xxtest.o -lftd2xx -lstdc++
strip ft2xxtest
user@brain:~/ft2xxtest$ sudo ./ft2xxtest
[sudo] password for user:
Devices
 - DM01P46D
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ...
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0