Bus Pirate

提供: ArchWiki
2018年2月6日 (火) 23:43時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「[http://code.google.com/」を「[https://code.google.com/」に置換)
ナビゲーションに移動 検索に移動

Bus Pirate は様々なハードウェアと通信できる多目的ツールです。

新しいマイクロチップと通信するのは厄介です。ブレッドボードを使って回路を試作し、コードを書いて、プログラマを呼び出し、あるいはプリント基板を作成する必要があります。最初から上手くいくわけがありません。

‘Bus Pirate’ は新しい未知のチップを使うときに試作品を作る無駄な努力を排除し、パソコンのシリアル端末からあらゆるチップと通信できるユニバーサルバスインターフェイスです。0-5.5 ボルトの多数のシリアルプロトコルをサポートしており、さらに追加することもできます。詳しくは google code にある Bus Pirate のサイトを見てください。

インストール

ノート: スクリプトは全て /dev/buspirate を使用します。

FTDI チップのドライバーはカーネルに含まれているため、接続すればすぐに認識されて /dev/ttyUSB[0-9] のデバイスが割り当てられます。認識されていることを確認するには、次を実行:

# dmesg | tail

以下のような文字列が含まれた行が出力されます:

# usb 1-4.4: FTDI USB Serial Device converter now attached to ttyUSB0

udev

デバイスが割り当てられた /dev/ttyUSB[0-9] をいちいち確認するのは面倒です。接続時に /dev/buspirate から /dev/ttyUSB* にシンボリックリンクを作成する udev ルールを追加するのが良いでしょう。

プロダクト/ベンダー ID

シンボリックリンクを作成する方法は複数あり、ベンダー/プロダクト ID を使用することで Bus Pirate を置き換えることができます。/etc/udev/rules.d/98-buspirate に以下の行を追加してください:

/etc/udev/rules.d/98-buspirate.rules
# Bus pirate v3
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="users", MODE="0666", SYMLINK+="buspirate"
# Bus pirate v4
SUBSYSTEM=="tty", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fb00", GROUP="users", MODE="0666", SYMLINK+="buspirate"

シリアル番号

シリアル番号を使用する方法もあります。Bus Pirate に載っている FTDI チップのシリアル番号を確認してください。以下のコマンドを実行することで確認できます (デバイスが接続されていて /dev/ttyUSB0 がある場合):

# udevadm info --attribute-walk -n /dev/ttyUSB0  | sed -n '/FTDI/,/serial/p'

以下のファイルを追加・作成:

/etc/udev/rules.d/98-buspirate.rules
SUBSYSTEM=="tty", ATTRS{serial}=="XXXXXXXX", GROUP="users", MODE="0660", SYMLINK+="buspirate"

ATTRS{serial}=="XXXXXXXX" はデバイスのシリアル番号に置き換えてください。udev から新しいルールをロードするには:

# udevadm control --reload-rules

これで、デバイスを接続したらシンボリックリンクが作成されます。

通信

デバイスと通信するときは、以下のようなコマンドを使用します:

  • minicom
# minicom -b 115200 -8 -D /dev/buspirate
  • screen
# screen /dev/buspirate 115200 8N1
  • picocom
# picocom -b 115200 /dev/buspirate
  • cu
# cu -l /dev/buspirate

'?' と入力して enter を押すことで利用可能なコマンドのリストがデバイスから返されます。