Bus Pirate
Bus Pirate 是一款通用的硬件通信工具,可与各种硬件进行通信。
连接新的微芯片可能很麻烦。面包板电路、编写代码、拿出编程器,甚至可能需要制作 PCB 原型。我们似乎总是无法一次性成功。
Bus Pirate 是一款通用总线接口,可以通过 PC 串口终端与大多数芯片通信,从而在处理新的或未知的芯片时,省去大量的早期原型设计工作。它支持 0–5.5 伏的多种串行协议,并且可以添加更多协议。
安装
注意: 所有脚本都将假定设备名为
/dev/buspirate
。FTDI 芯片的驱动程序包含在内核中,因此插入设备后应立即检测到,并分配给设备 /dev/ttyUSB[0-9]
。要检查分配到的设备,请运行
# journalctl -k
输出将包含类似如下的一行
# usb 1-4.4: FTDI USB Serial Device converter now attached to ttyUSB0
使用 udev 重命名设备
每次都查找设备被分配到哪个 /dev/ttyUSB[0-9]
可能很烦人,因此建议添加一个简单的 udev 规则,以便在插入设备时创建从 /dev/buspirate
到 /dev/ttyUSB<i>X</i>
的符号链接。
要找出 Bus Pirate 的当前路径,可以使用 udevadm(8) 监控命令,然后在插入设备后,输出应如下所示
$ udevadm monitor --environment --udev
... DEVICENAME=/dev/ttyUSBX DRIVER=tty PRODUCT=403/6001/600 ...
插入设备并给出输出后,按 Ctrl+c
中断文本流。
使用产品/供应商 ID
通过使用供应商/产品 ID,可以更换 Bus Pirate 设备,而无需再次更改配置。要使用此方法,请添加以下行
/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 芯片的序列号。这可以通过运行以下命令来实现,假设您的设备已插入
# udevadm info --attribute-walk -n /dev/ttyUSBX | sed -n '/FTDI/,/serial/p'
现在添加/创建以下 udev 规则
/etc/udev/rules.d/98-buspirate.rules
SUBSYSTEM=="tty", ATTRS{serial}=="MYSERIALNUMBER", GROUP="users", MODE="0660", SYMLINK+="buspirate"
加载新规则:此时,每当您插入设备时,都应创建符号链接。
要验证这一点,请运行上面提到的 udev 监控命令,它应报告如下内容
DEVLINKS=/dev/buspirate
通信
要与设备通信,您可以使用以下任何一种工具,仅举几例
# minicom -b 115200 -8 -D /dev/buspirate
# screen /dev/buspirate 115200 8N1
# picocom -b 115200 /dev/buspirate
- cu 来自 uucp 软件包
# cu -l /dev/buspirate
输入 ?
并按 Enter
键,设备应回复一个可能的命令列表。