Bus Pirate
The Bus Pirate is a versatile tool for communicating with various hardware.
Interfacing a new microchip can be a hassle. Breadboarding a circuit, writing code, hauling out the programmer, or maybe even prototyping a PCB. We never seem to get it right on the first try.
The Bus Pirate is a universal bus interface that talks to most chips from a PC serial terminal, eliminating a ton of early prototyping effort when working with new or unknown chips. Many serial protocols are supported at 0–5.5 volts, more can be added.
安装
/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/ttyUSBX 的符号链接。
要找出 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
- 来自 uucp 包的 cu
# cu -l /dev/buspirate
键入 ? 并按 Enter,设备应该会回复一个可能的命令列表。