Bus Pirate/zh-hans

From DP

Revision as of 10:11, 13 January 2012 by Ian (Talk | contribs)
Jump to: navigation , search

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

Bus Pirate使用指南

File:Bus Pirate使用指南-1 html 79519469.gif

Bus Pirate使用指南

File:Bus Pirate使用指南-1 html m1cbce775.jpg

= NAME="__RefHeading__241_1881773865" 目录 =

CLASS="cjk" HREF="#__RefHeading__241_1881773865" CLASS="western" HREF="#__RefHeading__241_1881773865"

CLASS="cjk" HREF="#__RefHeading__243_1881773865" CLASS="western" HREF="#__RefHeading__243_1881773865"

CLASS="cjk" HREF="#__RefHeading__245_1881773865" CLASS="western" HREF="#__RefHeading__245_1881773865"

CLASS="western" HREF="#__RefHeading__247_1881773865" CLASS="cjk" HREF="#__RefHeading__247_1881773865" CLASS="western" HREF="#__RefHeading__247_1881773865"

CLASS="western" HREF="#__RefHeading__249_1881773865" CLASS="western" HREF="#__RefHeading__249_1881773865" CLASS="cjk" HREF="#__RefHeading__249_1881773865" CLASS="western" HREF="#__RefHeading__249_1881773865"

CLASS="western" HREF="#__RefHeading__251_1881773865" CLASS="western" HREF="#__RefHeading__251_1881773865" CLASS="cjk" HREF="#__RefHeading__251_1881773865" CLASS="western" HREF="#__RefHeading__251_1881773865" CLASS="cjk" HREF="#__RefHeading__251_1881773865" CLASS="western" HREF="#__RefHeading__251_1881773865"

CLASS="western" HREF="#__RefHeading__253_1881773865" CLASS="western" HREF="#__RefHeading__253_1881773865" CLASS="cjk" HREF="#__RefHeading__253_1881773865" CLASS="western" HREF="#__RefHeading__253_1881773865"

CLASS="western" HREF="#__RefHeading__255_1881773865" CLASS="western" HREF="#__RefHeading__255_1881773865" CLASS="cjk" HREF="#__RefHeading__255_1881773865" CLASS="western" HREF="#__RefHeading__255_1881773865"

CLASS="western" HREF="#__RefHeading__257_1881773865" CLASS="western" HREF="#__RefHeading__257_1881773865" CLASS="cjk" HREF="#__RefHeading__257_1881773865" CLASS="western" HREF="#__RefHeading__257_1881773865"

CLASS="western" HREF="#__RefHeading__259_1881773865" CLASS="western" HREF="#__RefHeading__259_1881773865" CLASS="cjk" HREF="#__RefHeading__259_1881773865" CLASS="western" HREF="#__RefHeading__259_1881773865" CLASS="cjk" HREF="#__RefHeading__259_1881773865" CLASS="western" HREF="#__RefHeading__259_1881773865"

CLASS="western" HREF="#__RefHeading__261_1881773865" CLASS="western" HREF="#__RefHeading__261_1881773865" CLASS="cjk" HREF="#__RefHeading__261_1881773865" CLASS="western" HREF="#__RefHeading__261_1881773865" CLASS="cjk" HREF="#__RefHeading__261_1881773865" CLASS="western" HREF="#__RefHeading__261_1881773865" CLASS="cjk" HREF="#__RefHeading__261_1881773865" CLASS="western" HREF="#__RefHeading__261_1881773865"

CLASS="western" HREF="#__RefHeading__263_1881773865" CLASS="western" HREF="#__RefHeading__263_1881773865" CLASS="cjk" HREF="#__RefHeading__263_1881773865" CLASS="western" HREF="#__RefHeading__263_1881773865" CLASS="cjk" HREF="#__RefHeading__263_1881773865" CLASS="western" HREF="#__RefHeading__263_1881773865"

CLASS="western" HREF="#__RefHeading__265_1881773865" CLASS="western" HREF="#__RefHeading__265_1881773865" CLASS="cjk" HREF="#__RefHeading__265_1881773865" CLASS="western" HREF="#__RefHeading__265_1881773865"

CLASS="western" HREF="#__RefHeading__267_1881773865" CLASS="cjk" HREF="#__RefHeading__267_1881773865" CLASS="western" HREF="#__RefHeading__267_1881773865"

CLASS="western" HREF="#__RefHeading__269_1881773865" CLASS="western" HREF="#__RefHeading__269_1881773865" CLASS="cjk" HREF="#__RefHeading__269_1881773865" CLASS="western" HREF="#__RefHeading__269_1881773865"

CLASS="western" HREF="#__RefHeading__271_1881773865" CLASS="western" HREF="#__RefHeading__271_1881773865" CLASS="cjk" HREF="#__RefHeading__271_1881773865" CLASS="western" HREF="#__RefHeading__271_1881773865"

CLASS="western" HREF="#__RefHeading__273_1881773865" CLASS="western" HREF="#__RefHeading__273_1881773865" CLASS="cjk" HREF="#__RefHeading__273_1881773865" CLASS="western" HREF="#__RefHeading__273_1881773865"

CLASS="western" HREF="#__RefHeading__275_1881773865" CLASS="western" HREF="#__RefHeading__275_1881773865" CLASS="cjk" HREF="#__RefHeading__275_1881773865" CLASS="western" HREF="#__RefHeading__275_1881773865"

CLASS="western" HREF="#__RefHeading__277_1881773865" CLASS="western" HREF="#__RefHeading__277_1881773865" CLASS="cjk" HREF="#__RefHeading__277_1881773865" CLASS="western" HREF="#__RefHeading__277_1881773865" CLASS="cjk" HREF="#__RefHeading__277_1881773865" CLASS="western" HREF="#__RefHeading__277_1881773865"

CLASS="western" HREF="#__RefHeading__279_1881773865" CLASS="western" HREF="#__RefHeading__279_1881773865" CLASS="cjk" HREF="#__RefHeading__279_1881773865" CLASS="western" HREF="#__RefHeading__279_1881773865"

CLASS="western" HREF="#__RefHeading__281_1881773865" CLASS="western" HREF="#__RefHeading__281_1881773865" CLASS="cjk" HREF="#__RefHeading__281_1881773865" CLASS="western" HREF="#__RefHeading__281_1881773865" CLASS="cjk" HREF="#__RefHeading__281_1881773865" CLASS="western" HREF="#__RefHeading__281_1881773865" CLASS="cjk" HREF="#__RefHeading__281_1881773865" CLASS="western" HREF="#__RefHeading__281_1881773865" CLASS="cjk" HREF="#__RefHeading__281_1881773865" CLASS="western" HREF="#__RefHeading__281_1881773865" CLASS="cjk" HREF="#__RefHeading__281_1881773865" CLASS="western" HREF="#__RefHeading__281_1881773865"

CLASS="western" HREF="#__RefHeading__283_1881773865" CLASS="western" HREF="#__RefHeading__283_1881773865" CLASS="cjk" HREF="#__RefHeading__283_1881773865" CLASS="western" HREF="#__RefHeading__283_1881773865" CLASS="cjk" HREF="#__RefHeading__283_1881773865" CLASS="western" HREF="#__RefHeading__283_1881773865"

CLASS="western" HREF="#__RefHeading__285_1881773865" CLASS="western" HREF="#__RefHeading__285_1881773865" CLASS="cjk" HREF="#__RefHeading__285_1881773865" CLASS="western" HREF="#__RefHeading__285_1881773865"

CLASS="western" HREF="#__RefHeading__287_1881773865" CLASS="western" HREF="#__RefHeading__287_1881773865" CLASS="cjk" HREF="#__RefHeading__287_1881773865" CLASS="western" HREF="#__RefHeading__287_1881773865" CLASS="cjk" HREF="#__RefHeading__287_1881773865" CLASS="western" HREF="#__RefHeading__287_1881773865" CLASS="cjk" HREF="#__RefHeading__287_1881773865" CLASS="western" HREF="#__RefHeading__287_1881773865"

CLASS="western" HREF="#__RefHeading__289_1881773865" CLASS="western" HREF="#__RefHeading__289_1881773865" CLASS="cjk" HREF="#__RefHeading__289_1881773865" CLASS="western" HREF="#__RefHeading__289_1881773865" CLASS="cjk" HREF="#__RefHeading__289_1881773865" CLASS="western" HREF="#__RefHeading__289_1881773865" CLASS="cjk" HREF="#__RefHeading__289_1881773865" CLASS="western" HREF="#__RefHeading__289_1881773865" CLASS="cjk" HREF="#__RefHeading__289_1881773865" CLASS="western" HREF="#__RefHeading__289_1881773865" CLASS="cjk" HREF="#__RefHeading__289_1881773865" CLASS="western" HREF="#__RefHeading__289_1881773865"

CLASS="western" HREF="#__RefHeading__291_1881773865" CLASS="cjk" HREF="#__RefHeading__291_1881773865" CLASS="western" HREF="#__RefHeading__291_1881773865"

CLASS="western" HREF="#__RefHeading__293_1881773865" CLASS="western" HREF="#__RefHeading__293_1881773865" CLASS="cjk" HREF="#__RefHeading__293_1881773865" CLASS="western" HREF="#__RefHeading__293_1881773865"

CLASS="western" HREF="#__RefHeading__295_1881773865" CLASS="western" HREF="#__RefHeading__295_1881773865" CLASS="cjk" HREF="#__RefHeading__295_1881773865" CLASS="western" HREF="#__RefHeading__295_1881773865"

CLASS="western" HREF="#__RefHeading__297_1881773865" CLASS="western" HREF="#__RefHeading__297_1881773865" CLASS="cjk" HREF="#__RefHeading__297_1881773865" CLASS="western" HREF="#__RefHeading__297_1881773865"

CLASS="western" HREF="#__RefHeading__299_1881773865" CLASS="western" HREF="#__RefHeading__299_1881773865" CLASS="cjk" HREF="#__RefHeading__299_1881773865" CLASS="western" HREF="#__RefHeading__299_1881773865"

CLASS="western" HREF="#__RefHeading__301_1881773865" CLASS="western" HREF="#__RefHeading__301_1881773865" CLASS="cjk" HREF="#__RefHeading__301_1881773865" CLASS="western" HREF="#__RefHeading__301_1881773865" CLASS="cjk" HREF="#__RefHeading__301_1881773865" CLASS="western" HREF="#__RefHeading__301_1881773865"

CLASS="western" HREF="#__RefHeading__303_1881773865" CLASS="western" HREF="#__RefHeading__303_1881773865" CLASS="cjk" HREF="#__RefHeading__303_1881773865" CLASS="western" HREF="#__RefHeading__303_1881773865" CLASS="cjk" HREF="#__RefHeading__303_1881773865" CLASS="western" HREF="#__RefHeading__303_1881773865"

CLASS="western" HREF="#__RefHeading__305_1881773865" CLASS="western" HREF="#__RefHeading__305_1881773865" CLASS="cjk" HREF="#__RefHeading__305_1881773865" CLASS="western" HREF="#__RefHeading__305_1881773865"

CLASS="western" HREF="#__RefHeading__307_1881773865" CLASS="western" HREF="#__RefHeading__307_1881773865" CLASS="cjk" HREF="#__RefHeading__307_1881773865" CLASS="western" HREF="#__RefHeading__307_1881773865"

CLASS="western" HREF="#__RefHeading__309_1881773865" CLASS="western" HREF="#__RefHeading__309_1881773865" CLASS="cjk" HREF="#__RefHeading__309_1881773865" CLASS="western" HREF="#__RefHeading__309_1881773865" CLASS="cjk" HREF="#__RefHeading__309_1881773865" CLASS="western" HREF="#__RefHeading__309_1881773865" CLASS="cjk" HREF="#__RefHeading__309_1881773865" CLASS="western" HREF="#__RefHeading__309_1881773865"

CLASS="western" HREF="#__RefHeading__311_1881773865" CLASS="cjk" HREF="#__RefHeading__311_1881773865" CLASS="western" HREF="#__RefHeading__311_1881773865"

CLASS="western" HREF="#__RefHeading__313_1881773865" CLASS="western" HREF="#__RefHeading__313_1881773865" CLASS="cjk" HREF="#__RefHeading__313_1881773865" CLASS="western" HREF="#__RefHeading__313_1881773865"

CLASS="western" HREF="#__RefHeading__315_1881773865" CLASS="western" HREF="#__RefHeading__315_1881773865" CLASS="cjk" HREF="#__RefHeading__315_1881773865" CLASS="western" HREF="#__RefHeading__315_1881773865" CLASS="cjk" HREF="#__RefHeading__315_1881773865" CLASS="western" HREF="#__RefHeading__315_1881773865" CLASS="cjk" HREF="#__RefHeading__315_1881773865" CLASS="western" HREF="#__RefHeading__315_1881773865" CLASS="cjk" HREF="#__RefHeading__315_1881773865" CLASS="western" HREF="#__RefHeading__315_1881773865"

CLASS="western" HREF="#__RefHeading__317_1881773865" CLASS="western" HREF="#__RefHeading__317_1881773865" CLASS="cjk" HREF="#__RefHeading__317_1881773865" CLASS="western" HREF="#__RefHeading__317_1881773865" CLASS="cjk" HREF="#__RefHeading__317_1881773865" CLASS="western" HREF="#__RefHeading__317_1881773865"

CLASS="western" HREF="#__RefHeading__319_1881773865" CLASS="western" HREF="#__RefHeading__319_1881773865" CLASS="cjk" HREF="#__RefHeading__319_1881773865" CLASS="western" HREF="#__RefHeading__319_1881773865"

CLASS="western" HREF="#__RefHeading__321_1881773865" CLASS="cjk" HREF="#__RefHeading__321_1881773865" CLASS="western" HREF="#__RefHeading__321_1881773865"

CLASS="western" HREF="#__RefHeading__323_1881773865" CLASS="western" HREF="#__RefHeading__323_1881773865" CLASS="cjk" HREF="#__RefHeading__323_1881773865" CLASS="western" HREF="#__RefHeading__323_1881773865"

CLASS="western" HREF="#__RefHeading__325_1881773865" CLASS="western" HREF="#__RefHeading__325_1881773865" CLASS="cjk" HREF="#__RefHeading__325_1881773865" CLASS="western" HREF="#__RefHeading__325_1881773865"

CLASS="western" HREF="#__RefHeading__327_1881773865" CLASS="western" HREF="#__RefHeading__327_1881773865" CLASS="cjk" HREF="#__RefHeading__327_1881773865" CLASS="western" HREF="#__RefHeading__327_1881773865"

CLASS="western" HREF="#__RefHeading__329_1881773865" CLASS="western" HREF="#__RefHeading__329_1881773865" CLASS="cjk" HREF="#__RefHeading__329_1881773865" CLASS="western" HREF="#__RefHeading__329_1881773865"

CLASS="western" HREF="#__RefHeading__331_1881773865" CLASS="western" HREF="#__RefHeading__331_1881773865" CLASS="cjk" HREF="#__RefHeading__331_1881773865" CLASS="western" HREF="#__RefHeading__331_1881773865"

CLASS="cjk" HREF="#__RefHeading__333_1881773865" CLASS="western" HREF="#__RefHeading__333_1881773865"

CLASS="western" HREF="#__RefHeading__335_1881773865" CLASS="cjk" HREF="#__RefHeading__335_1881773865" CLASS="western" HREF="#__RefHeading__335_1881773865"

CLASS="western" HREF="#__RefHeading__337_1881773865" CLASS="western" HREF="#__RefHeading__337_1881773865" CLASS="cjk" HREF="#__RefHeading__337_1881773865" CLASS="western" HREF="#__RefHeading__337_1881773865"

CLASS="western" HREF="#__RefHeading__339_1881773865" CLASS="western" HREF="#__RefHeading__339_1881773865" CLASS="cjk" HREF="#__RefHeading__339_1881773865" CLASS="western" HREF="#__RefHeading__339_1881773865"

CLASS="western" HREF="#__RefHeading__341_1881773865" CLASS="western" HREF="#__RefHeading__341_1881773865" CLASS="cjk" HREF="#__RefHeading__341_1881773865" CLASS="western" HREF="#__RefHeading__341_1881773865"

CLASS="western" HREF="#__RefHeading__343_1881773865" CLASS="western" HREF="#__RefHeading__343_1881773865" CLASS="cjk" HREF="#__RefHeading__343_1881773865" CLASS="western" HREF="#__RefHeading__343_1881773865"

CLASS="western" HREF="#__RefHeading__345_1881773865" CLASS="western" HREF="#__RefHeading__345_1881773865" CLASS="cjk" HREF="#__RefHeading__345_1881773865" CLASS="western" HREF="#__RefHeading__345_1881773865"

CLASS="western" HREF="#__RefHeading__347_1881773865" CLASS="western" HREF="#__RefHeading__347_1881773865" CLASS="cjk" HREF="#__RefHeading__347_1881773865" CLASS="western" HREF="#__RefHeading__347_1881773865"

CLASS="western" HREF="#__RefHeading__349_1881773865" CLASS="cjk" HREF="#__RefHeading__349_1881773865" CLASS="western" HREF="#__RefHeading__349_1881773865"

CLASS="western" HREF="#__RefHeading__351_1881773865" CLASS="western" HREF="#__RefHeading__351_1881773865" CLASS="cjk" HREF="#__RefHeading__351_1881773865" CLASS="western" HREF="#__RefHeading__351_1881773865"

CLASS="western" HREF="#__RefHeading__353_1881773865" CLASS="western" HREF="#__RefHeading__353_1881773865" CLASS="cjk" HREF="#__RefHeading__353_1881773865" CLASS="western" HREF="#__RefHeading__353_1881773865"

CLASS="cjk" HREF="#__RefHeading__355_1881773865" CLASS="western" HREF="#__RefHeading__355_1881773865"

CLASS="western" HREF="#__RefHeading__357_1881773865" CLASS="cjk" HREF="#__RefHeading__357_1881773865" CLASS="western" HREF="#__RefHeading__357_1881773865"

CLASS="western" HREF="#__RefHeading__359_1881773865" CLASS="western" HREF="#__RefHeading__359_1881773865" CLASS="cjk" HREF="#__RefHeading__359_1881773865" CLASS="western" HREF="#__RefHeading__359_1881773865"

Contents

NAME="__RefHeading__243_1881773865"一、连接

      Bus Pirate使用的是FT232芯片进行usbttl的通信,安装好驱动之后,PC会将Bus(下面都简称Bus)识别成一个串口,使用串口调试工具,比如串口调试精灵、超级终端、TeraTerm Pro Web打开串口,端口设置为:115200bps, 8/N/1。验证

      连接之后,输入:? 进行验证,如果连接成功,会显示:

 

File:Bus Pirate使用指南-1 html 59a97d60.png

 

      ? 是显示帮助说明的,有显示则表明连接成功,可以进行调试了。

      IO定义:

      File:Bus Pirate使用指南-1 html m3dafddc.png

 

      File:Bus Pirate使用指南-1 html mf50355a.png

 

{|

|- | 引脚名
 
| 引脚作用 |- | MOSI | 主要数据输出引脚,
 
数据输出引脚
(SPI,
JTAG),
串行数据
(1-Wire,
I2C, KB),
发送
(UART) |- | CLK | 时钟信号(I2C,
SPI, JTAG,
键盘
) |- | MISO | 主要数据输入引脚,
 
数据输入引脚
(SPI,
JTAG) ,
接收
(UART) |- | CS* | 片选(SPI),
TMS (JTAG)
|- | AUX | 辅助IO,
频率检测
,
脉宽调制器
|- | ADC | 电压检测
(最大值6V) |- | Vpu | 板载上拉电阻的上拉电压
(0-5V). |- | +3.3v | +3.3V开关可控电源 |- | +5.0v | +5V开关可控电源 |- | GND | |}

File:Bus Pirate使用指南-1 html 1d8cbd55.png

NAME="__RefHeading__245_1881773865"二、基本命令

NAME="__RefHeading__247_1881773865"1 设置命令

=== NAME="__RefHeading__249_1881773865"      (1).   m 模式设置 ===

             File:Bus Pirate使用指南-1 html 55a55271.png

选择不同总线模式,默认在Hiz模式,所以引脚为高阻态。

=== NAME="__RefHeading__251_1881773865"      (2).   i 版本信息(在模式中也可以用 i 来查看信息) ===

            File:Bus Pirate使用指南-1 html m7e694617.png

=== NAME="__RefHeading__253_1881773865"      (3).   b 设置串口波特率 ===

             File:Bus Pirate使用指南-1 html m49150010.png

             10个选项是设置特殊波特率的,不设置直接回车,再按空格继续进行别的操作

=== NAME="__RefHeading__255_1881773865"      (4).   ~ 自检 ===

             File:Bus Pirate使用指南-1 html m60f24ba8.png

 

             用跳线冒跳上+5VVpu,以及+3.3VADC,按空格继续,自检完成后会显示:

 

             File:Bus Pirate使用指南-1 html m72b4e68f.png

=== NAME="__RefHeading__257_1881773865"      (5).   # 重启 ===

             File:Bus Pirate使用指南-1 html 6ac4837.png

=== NAME="__RefHeading__259_1881773865"      (6).   $ 转至Bootloader,升级时候需要 ===

              File:Bus Pirate使用指南-1 html 54e8e231.png

 

             Mode灯会亮,这时候关闭终端,就能使用工具升级。

=== NAME="__RefHeading__261_1881773865"      (7).   c/C 切换AUXCS/TMS引脚控制 ===

             File:Bus Pirate使用指南-1 html 4f8c2b01.png

切换a/A/@AUXCS/TMS引脚的控制。

=== NAME="__RefHeading__263_1881773865"      (8).   l/L         设置MSB/LSB优先级 ===

             File:Bus Pirate使用指南-1 html 6b111d20.png

l/L命令决定总线模式下读写字符的优先级:l是最高有效位先读,L是最低有效位先读

=== NAME="__RefHeading__265_1881773865"      (9).   O            设置显示模式 ===

             File:Bus Pirate使用指南-1 html me825d6a.png

 

             设置显示模式是十六进制、十进制、二进制还是ASCII码。

NAME="__RefHeading__267_1881773865"2. 公共命令

=== NAME="__RefHeading__269_1881773865"      (10).   w/W      电源设置 ===

              File:Bus Pirate使用指南-1 html m7e48fba9.png

            

              用来控制3.3V5V两个引脚的供电,但供电电流最大只有150mA

注意:5V是由USB口供电,实际电压可能稍低于5V

=== NAME="__RefHeading__271_1881773865"      (11).   v            查看电源设置结果 ===

 File:Bus Pirate使用指南-1 html m5a4724ae.png

命令v可以查看Bus所有引脚的状态。

             第一行是引脚标号,与PCB图上的丝印一致。

第二行是在当前模式下引脚功能,其中电源引脚(3.3v, 5.0v), ADC, VpuAUX在所有模式下都有用,其他引脚在不同模式下功能不同,在单总线模式下,只有一个数据线OWD

             第三行显示各引脚IO状态。I代表输入,O代表输出,P代表电源。

             第四行显示各引脚电平状态。模拟电压值直接显示,数字信号用H表示高电平,L表示低电平。

 

=== NAME="__RefHeading__273_1881773865"      (12).   p/P        上拉电阻的开关控制 ===

  File:Bus Pirate使用指南-1 html m16bb30a6.png

 

控制上拉(下拉)电阻时候,只有在Vpu引脚有电压输入的时候才能通过控制四双向模拟开关芯片CD4066来控制开启。

               4066芯片控制410K电阻对MOSI, CLOCK, MISOCS四个引脚进行上拉或者下拉。

               

 File:Bus Pirate使用指南-1 html 468c7203.png

                  

注意:只有当Vpu引脚有输入电压的时候才能开启上拉(下拉)电阻,这时候可以用v命令来检查引脚电压。 

File:Bus Pirate使用指南-1 html m554865f8.png

如果出现Waring,请检查Vpu引脚的输入电压,如果直接使用Bus自带的3.3V或者5V电源,需要使用W命令开启供电。

上拉电阻一般用于开漏(open drain)和开集(open collector)的总线形式,Bus用于一般模式时开启了上拉电阻,会有一         个警告:WARNING: pins not open drain (HiZ)

=== NAME="__RefHeading__275_1881773865"      (13).    f            AUX引脚进行频率测量 ===

File:Bus Pirate使用指南-1 html 751d54ea.png

 

AUX引脚能测量0-40MHz的信号频率,原理是通过1秒的定时计数来计算出频率。只要频率不是太高,Bus都能自动进行设置并测量计算出频率。

=== NAME="__RefHeading__277_1881773865"      (14).    g            AUX引脚的信号发生器/PWM发生器 ===

File:Bus Pirate使用指南-1 html m591fbceb.png

 

使用g命令启动信号发生器之后,可以设置频率和占空比。信号发生器可以产生1kHz-4MHz频率范围的信号,再次输入g命令关闭PWM。注意:当频率设置为4M的时候,占空比只有一种,占空比大于50%等同于100%高或者100%低。

=== NAME="__RefHeading__279_1881773865"      (15).    S            伺服电机角度 ===

File:Bus Pirate使用指南-1 html 453b044a.png

用来控制伺服电机的转动角度,使用S或者g命令来停止角度控制。

注意:绝大多数的伺服电机都是Bus无法驱动的,需要使用外部电源来供电。

=== NAME="__RefHeading__281_1881773865"      (16).    =X X16进制/10进制/2进制显示 ===

File:Bus Pirate使用指南-1 html m6e495547.png

基本转换指令,在所有模式下有效。“=”后面输入任何格式数据,都能以16进制/10进制/2进制格式显示出来。如果想改变Bus数据输出格式,见命令O

=== NAME="__RefHeading__283_1881773865"      (17).    |X 对数据X取反 ===

File:Bus Pirate使用指南-1 html m6fd9f8d1.png

对数据按位取反,并以16进制/10进制/2进制形式显示出来。

=== NAME="__RefHeading__285_1881773865"      (18).    s            BASIC脚本接口 ===

File:Bus Pirate使用指南-1 html m31389e7c.png

Bus能使用脚本执行某些繁复的操作,详细说明见Bus的脚本说明。

=== NAME="__RefHeading__287_1881773865"      (19).    d/D ADC引脚使用探针测量电压(单次测量/持续监测) ===

File:Bus Pirate使用指南-1 html 437f49.png

小写d命令用来从ADC引脚测量电压。

大写D命令是持续测量,按任何键终止。

注意:Bus量程是0-6V,最大能到6.6V,但不稳定会出错。

=== NAME="__RefHeading__289_1881773865"      (20).    a/A/@ 控制AUX引脚状态(低电平/高电平/测量) ===

File:Bus Pirate使用指南-1 html m38460505.png

Bus上的一些引脚是可以用命令控制的,大写字母A可以把电平拉高到3.3V(最大电流25mA),小写字母a可以把电平拉低到地(最大电流25mA)@设置引脚为高阻态用来读取IO状态(最大5V)

使用c/C命令切换后也可以控制CS引脚。

NAME="__RefHeading__291_1881773865"3. 交互命令

这些命令都是控制芯片的总线和交互。每种总线模式都有一些同样的基本函数,比如R命令用来读取一个字节的数据。可以看看每种协议的总线模式。

=== NAME="__RefHeading__293_1881773865"      (21).    [/{ 总线启动 ===

File:Bus Pirate使用指南-1 html 539e955b.png

 

这个命令用来启动总线,不同模式下功能也不同,启动(I2C总线),片选(SPI总线),重置(单总线),打开(UART串口)

=== NAME="__RefHeading__295_1881773865"      (22).    ]/} 总线停止 ===

File:Bus Pirate使用指南-1 html m6a12a496.png

这个命令用来终止总线。

=== NAME="__RefHeading__297_1881773865"      (23).    r 读取一个字节的数据 ===

File:Bus Pirate使用指南-1 html 4dc022e9.png

r命令用来读取总线上一个字节的数据,也可以用r:1…255命令读取更多的数据。

=== NAME="__RefHeading__299_1881773865"      (24).    0xa1/35/0b01 将数据写入总线 ===

File:Bus Pirate使用指南-1 html m6cce993b.png

直接输入16进制/10进制/2进制数据(范围0-255),可以将数据写入总线,x:1…255可以写入多个重复数据。

=== NAME="__RefHeading__301_1881773865"      (25).    “abc” 将字符串的ASCII码写入总线 ===

File:Bus Pirate使用指南-1 html c0401fa.png

将””中间的字符串的ASCII码写入总线。

=== NAME="__RefHeading__303_1881773865"      (26).    空格/, 数字需要用空格和逗号隔开 ===

File:Bus Pirate使用指南-1 html m212c6f9.png

顺序执行指令的时候,数字需要用空格或者逗号隔开,非数字的可以不隔开。

=== NAME="__RefHeading__305_1881773865"      (27).    &/% 延时1us/ms ===

File:Bus Pirate使用指南-1 html 2ab7a9d7.png

&命令延时1us%命令延时1ms,使用重复命令:实现长时间的延时。

=== NAME="__RefHeading__307_1881773865"      (28).    : 重复命令 ===

File:Bus Pirate使用指南-1 html 84ea87b.png

有些Bus的命令需要重复执行很多次,那么在命令后面加上:指令和重复的次数就可以了,重复次数可以是16进制/10进制/2进制。

=== NAME="__RefHeading__309_1881773865"      (29).    ; /写数据(<16bit)的一部分 ===

File:Bus Pirate使用指南-1 html m4da79466.png

使用 ; 命令,可以读/写一部分数据,数据位数需小于16位,可以和重复命令:联合使用。

NAME="__RefHeading__311_1881773865"4. 位操作命令

位操作命令只在几个特定的模式下有效。

=== NAME="__RefHeading__313_1881773865"      (30).    ^ 发送一个周期的时钟信号 ===

File:Bus Pirate使用指南-1 html m67820e17.png

发送一个周期的时钟信号,可以和:命令联合使用发送1-255个周期的时钟信号。

=== NAME="__RefHeading__315_1881773865"      (31).    /\ 控制时钟信号的高(/)(\)电平 ===

File:Bus Pirate使用指南-1 html m267cb927.png

控制时钟信号的高低电平,可以使用延时。

=== NAME="__RefHeading__317_1881773865"      (32).    –_ 控制数据位的高低电平 ===

File:Bus Pirate使用指南-1 html mdd5a580.png

控制数据信号的高低电平,可以使用延时。

=== NAME="__RefHeading__319_1881773865"      (33).    ! 读取一个时钟周期的数据 ===

File:Bus Pirate使用指南-1 html a97d045.png

发送一个周期的时钟信号并读取总线上的一位数据。

在双向数据总线(单总线或者双总线)上,执行命令后,数据引脚被作为高阻态输入接口。

NAME="__RefHeading__321_1881773865"5. 宏命令

宏可以用来进行复杂的操作,比如扫描I2C总线地址、查询智能卡、检测JTAG接口。宏的形式是以()中添加数字。宏(0)可以显示当前总线模式下可用的宏的列表。

=== NAME="__RefHeading__323_1881773865"      (34).    (0) 显示当前总线模式下的宏列表 ===

File:Bus Pirate使用指南-1 html 533e575d.png

(0)可以显示当前模式下可以使用的宏的列表。

=== NAME="__RefHeading__325_1881773865"      (35).    (#) 执行宏 ===

File:Bus Pirate使用指南-1 html 7936c5e6.png

执行()中数字所代表的宏。

=== NAME="__RefHeading__327_1881773865"      (36).    <x=> 设置自定义宏 ===

File:Bus Pirate使用指南-1 html m6571a9c8.png

设置最多5条自定义宏,x代表自定义宏的标号,每条宏可以存储32个字符(包括空格)

=== NAME="__RefHeading__329_1881773865"      (37).    <0> 显示自定义宏的列表 ===

File:Bus Pirate使用指南-1 html m7041d292.png

<0>可以显示前面自定义的宏的列表。

=== NAME="__RefHeading__331_1881773865"      (38).    <#> 执行自定义宏 ===

File:Bus Pirate使用指南-1 html 50ae9f2.png

输入宏标号会显示该宏存储的命令,按回车键执行存储的命令。

NAME="__RefHeading__333_1881773865"三、基本应用

NAME="__RefHeading__335_1881773865"1. 总线模式

NAME="__RefHeading__337_1881773865"      (1). 1-WIRE 单总线

              总线: 1-Wire

连接: OWD(MOSI)GND

             输出形式: 开漏/开集(加上拉电阻,可以使用p/P命令开启自带的上拉电阻)

上拉电阻: 通常2K-10K,如果需要使用信号线供电,则使用小于2K的上拉电阻

              最大电压: 5.5V,最好是5V

单总线使用单条信号线,大多数的设备也需要连接电源和地,但也有一些设备可以直接通过信号线供电而不需要单独的供电电源。

单总线的重置命令[/{可以检测总线是否异常,如何没有设备响应Bus将电平拉低的信号,会显示:

File:Bus Pirate使用指南-1 html m38719d31.png

如果在使用重置命令后,总线电平长期置低,则表示无上拉电阻或者上拉电阻短接,会显示:

File:Bus Pirate使用指南-1 html 6296b958.png

命令”-”和”_”用来设置数据状态位,并在下一个时钟信号时候使用”-^”

命令(0)可以查看宏,(0xf0)查找总线设备。

1-Wire宏:

0. 宏列表

51. 读取ROM(0x33),对于单设备总线

85. 比较ROM(0x55),遵循64位地址

204. 跳过ROM(0xCC),遵循命令

236. 带警报的搜索(0xEC)

240. 搜索ROM(0xF0)

NAME="__RefHeading__339_1881773865"      (2). UART 通用异步串行数据总线

              总线: UART,MIDI

连接: TX(MOSI),RX(MISO)GND

             输出形式: 3.3V输出,或者开漏(加上拉电阻,可以使用p/P命令开启自带的上拉电阻)

上拉电阻: 开漏输出模式必须加上拉电阻,阻值2K-10K

              最大电压: 5.5V,最好是5V

虽然UARTPC串口的电平(-13V+13V)不同,但逻辑时序兼容。

需要设置有:波特率、数据校验、停止位、接收间隔、输出电平

UART的数据读取和Bus的其他模式不同,因为数据到达的时间不确定,需要做特殊处理。UART模式会显示帧错误和奇偶校验错误,并且会自动清理缓冲区溢出。

帧错误标志”-f”,奇偶校验错误标志”-p”,当读取UART数据的时候,如果出现类似”READ: -p -f 0×40”这种标志,就表明有错误,出现这种错误的原因是发射端波特率设置不对应。

Bus4字节的UART缓冲区用来保存数据直到使用”r”命令来读取或者使用”["命令开启终端自动显示,当缓冲区数据存满,新的数据会丢失,这就叫缓冲区溢出。

Bus检测到缓冲区溢出错误,比如”READ: 0x40 *Bytes dropped*”,会自动清除掉,并提醒你丢失数据。当执行”r” ”{” ”[”命令的时候会自动清理掉溢出的数据。当使用”]”命令关闭UART自动显示并且传入了超过5个字节的数据,下一个r命令会清除缓冲区溢出错误并显示”*Bytes dropped*警告。

为了防止缓冲区问题,Bus减少UART数据通过USB接口传输的数据总量,默认的显示模式将4字节的16进制数据减为单字节的数据。一个更好的方法是使用宏(1)或者(2)来查看一个无格式的UART输出,这是1:1的数据迁移,需要传输速率尽可能高。

UART宏:

0. 宏列表

1. UART

2. UART实时监控

3. 可控UART

(1)UART桥模式会创建一个串口->USB的桥接,此模式会自动清除缓冲区溢出错误,当出现缓冲区溢出错误时MODE灯会自动关闭用来提醒,只有重启命令#能终止此模式。

(3)是另一种UART桥模式,增加了CTSRTS控制信号,CTS对应于CS引脚(PIC单片机的输入是从外部通过FTDIUSB转串口芯片输入的)RTS对应于CLK引脚(PIC单片机的输出是FTDI芯片输出的拷贝)

注意:BusPC的连接和UART桥不是同样速度的,除非使用b命令设置了,否则USB端速率会是默认的115200bps,如果PC上位机程序设置串口速率不对应,就会造成输入混乱,因为Bus默认PC输入速率是115200bps。假如你想使用PC上位机程序设置的速率,则需要先使用b命令将Bus的速率调整为相同的波特率。

(2)UART实时监控会显示没有经过格式化的原始数据,使用任何按键退出监控模式。这种模式适用于一些变种格式的终端输出。这个宏类似宏(1)但没有数据传输能力,它能用任何键退出。此模式对于监控在其他模式下会引起的缓冲区溢出错误的高速UART输入很有用。

MIDI是电子乐器的缩写,它得到接口是一个设置为312500bps/8/b/1的标准串口。MIDI是一个环形网络,每个节点都有输入输出接口,每个节点都会把信息传给环内的下一个节点,并且输入和输出都是光电隔离的,基本信号是5V,5mA的,详细情况请查询相关资料。

UART连接图:

File:Bus Pirate使用指南-1 html m7159cfa2.png

NAME="__RefHeading__341_1881773865"      (3). I2C 两线式串行总线

              总线: I2C

连接: SDA(MOSI)SCL(CLK)GND

             输出形式: 开漏/开集(加上拉电阻,可以使用p/P命令开启自带的上拉电阻)

上拉电阻: 通常2K-10K

              最大电压: 5.5V,最好是5V

I2C总线是一种通用的两线式低速总线接口。

I2C是集电极开路总线,需要上拉电阻把时钟线和数据线拉高并产生数据1I2C不能输出高电平,只能将电平拉低没如果没有上拉电阻就不能输出1,地址扫描器就是利用了这种错误应答来扫描地址的。

如果没有上拉电阻,使用地址扫描器会有警告。

I2C宏:

0. 宏列表

1. 7位地址搜索

2. I2C监听

绝大多数的I2C兼容芯片都能在DateSheet中找到I2C地址,但如果你在用一颗没有datesheet的芯片,或者你懒得找datesheet,那么可以用宏(1)Bus有一个内嵌的地址扫描器,可以通过地址响应检索出所有的I2C地址。这种暴力模式能够很快的检索出任何有应答的芯片的地址,哪怕该芯片是没有任何参考文档。

I2C芯片有7位地址,所以最多能用128个设备通过同样的两条线进行通讯。另外需要一个额外的地址位来确定是写芯片(0)还是读芯片(1)

比如说我连接一个EEPROM芯片24LC,它七位地址是0101000(16进制是0x50),那么它的写地址是01010000(0xA0),读地址是01010001(0XA1)。宏(1)可以扫描出芯片默认的地址和读写地址,datesheet里一般会给出7位地址,但在逻辑分析仪、监听器或者调试器中,大多辨识为8位数值。

(2)I2C总线监听的采样频率为70KHz-100KHz,尽管不能替代逻辑分析仪,但这个功能还是很有用的。

[/] 开始/停止位

+/- ACK/NACK(正确应答信号/否定应答信号)

I2C的开始停止位是Bus的正常语法:

File:Bus Pirate使用指南-1 html m95edb4.png

监听到的数据在用户模式中通常以16进制显示,使用任何键退出。

注意:监听输出使用了一个4096字节的环形缓冲区,监听到的数据会依次存入环形缓冲区,并在UART空闲的时候输入到PC机中,只要注意UART速率和显示模式,就能避免数据丢失的问题。

下面是一个读写DS1307时钟芯片RAM的例子:

File:Bus Pirate使用指南-1 html m1ac61d76.png

I2C读取操作Bus的输出必定是ACK或者NACK,这些都是Bus完成的,但你必须知道一点它的工作原理。如果没有后续命令,I2C的程序库是不会在读取数据之后发送ACK/NACK信号的,如果后续命令是开始信号或者终止信号,Bus会发送一个NACK信号,其他任何命令都是发送ACK信号。在终端会输出显示(N)ACK状态。

写命令和读命令没有什么不同。下面是一个使用重复命令进行批量读取的例子:

File:Bus Pirate使用指南-1 html b777057.png

还有一个结论就是:系统的ACK/NACK延时会导致数据读取不完全。

File:Bus Pirate使用指南-1 html m333996c3.png

这个例子中先进行了一个读取操作([0xd1),然后读取一个字节数据(r),后面Bus不知道下一个命令是读取命令(r)还是终止命令(]),就导致了第九位暂停并显示*(N)ACK PENDING的警告。下一个命令是读取命令(r),于是Bus执行读取命令读取下一个字节数据并显示前一个字节数据,下一个指令仍然待定。而下一个指令是终止命令(])Bus读取结束并发送NACK指令,最后发送终止状态。

I2C连接图:

File:Bus Pirate使用指南-1 html m5e9bc232.png

NAME="__RefHeading__343_1881773865"      (4). SPI 串行外围设备接口总线

              总线: SPI

连接: MOSIMISOCLKCSGND

             输出形式: 普通3.3V或者集电极开路(加上拉电阻,可以使用p/P命令开启自带的上拉电阻)

上拉电阻: 漏极开路必需加上拉电阻,通常2K-10K

              最大电压: 5.5V,最好是5V

需要设置:速度、空闲时钟电平、时钟输出边沿、采样输入相位、片选使能、输出电平。

SPI宏:

0. 宏列表

1. SPI总线监听(CS为低电平时触发)

2. SPI总线监听(无触发条件)

10. 只改变时钟电平为0(低电平)

11. 只改变时钟电平为1(高电平)

12. 只改变时钟边沿为0(上升沿)

13. 只改变时钟边沿为1(下降沿)

14. 只改变采样相位为0(中间)

15. 只改变采样相位为1(末尾)

SPI总线监听频率能到10MHz。具体有你在SPI模式设置决定。

[/] CS片选能/不能

0xXX MOSI读取

(0xXX) MISO读取

SPI总线监听能监听所有数据,或者依据CS引脚电平状态进行过滤,从MOSIMISO引脚监听到的数据都会以16进制显示出来,其中MISO引脚的数据显示在()当中。

File:Bus Pirate使用指南-1 html 23079d6c.png

注意:监听器使用了一个4096字节的环形缓冲区,监听到的数据会依次存入环形缓冲区,并在UART空闲的时候输入到PC机中,只要注意UART速率和显示模式,就能避免数据丢失的问题。

但当一个足够长的数据流突然输入仍然会造成缓冲区溢出,此时MODE灯会熄灭。当MODE灯熄灭,所有的数据都应当废弃——这个问题在以后会改善的。

SPI硬件上有一个4字节的缓冲区,如果此缓冲区在将数据传入环形缓冲区之前被填满,那么终端会显示Can't keep up并迅速的返回SPI

在监听模式,输出引脚会变成输入引脚。

SPI监听设置为CS低电平触发时,理论上CS下降沿和该周期最开始的时钟信号最小间隔为120ns,但实际测试中最小间隔为1.275us。当SPI监听设置为无触发条件时,CS线和最开始的数据线需要最少27us-50us的延时间隔。

SPI监听遵循模式设置时的空闲时钟电平和时钟输出边沿,不管采样输入相位。

时钟边沿/时钟电平/采样相位设置宏:

10-15能快速改变SPI模式设置的一些参数,但这是个没有使用者反馈信息的测试功能。

File:Bus Pirate使用指南-1 html m74fac186.png

依次是:速度、时钟电平、时钟边沿、采样相位、输出状态

SPI连接图:

File:Bus Pirate使用指南-1 html m3d4db6d1.png

NAME="__RefHeading__345_1881773865"      (5). 2WIRE 通用双总线

              总线: 2Wire

连接: SDA(MOSI)SCL(CLK)GND

             输出形式: 普通3.3V或者集电极开路(加上拉电阻,可以使用p/P命令开启自带的上拉电阻)

上拉电阻: 漏极开路必需加上拉电阻,通常2K-10K

              最大电压: 5.5V,最好是5V

原始双总线协议和I2C类似,但它只是逐位控制引脚而没有按位的ACK应答信号,I2C可以算是一种基础的双总线协议。

需要设置:速度、输出电平

2Wire宏:

0. 宏列表

1. 解析ISO7813-3智能卡并解析ATR应答字符串

2. 仅解析ISO7813-3智能卡(使用你自己的ATR命令)

2Wire连接图:

File:Bus Pirate使用指南-1 html m5758cb7.png

NAME="__RefHeading__347_1881773865"      (6). 3WIRE 通用三总线

              总线: 3Wire(比如三线SPI)

连接: MOSIMISOCLKCSGND

             输出形式: 普通3.3V或者集电极开路(加上拉电阻,可以使用p/P命令开启自带的上拉电阻)

上拉电阻: 漏极开路必需加上拉电阻,通常2K-10K

              最大电压: 5.5V,最好是5V

原始三总线协议,类似SPI,但也是逐位控制引脚的。

需要设置:速度、CS片选、输出电平

3Wire连接图:

File:Bus Pirate使用指南-1 html 27973337.png

NAME="__RefHeading__349_1881773865"2. 其他应用

NAME="__RefHeading__351_1881773865"      (7). LCD 液晶测试

              总线: LCD

连接: SDA(MOSI)SCL(CLK)GND(注意:这是连接到LCD转接板上的引脚)

             输出形式: 开漏/开集(加上拉电阻,可以使用p/P命令开启自带的上拉电阻)

上拉电阻: 通常2K-10K

              最大电压: 5.5V,最好是5V

LCD宏:

0. 宏列表

1. LCD重置

2. LCD初始化

3. LCD清屏

4. 设置指针方位

6. 写测试数字

7. 写测试字符串

NAME="__RefHeading__353_1881773865"      (8). DIO 自由控制模式

              此模式给用户100%的控制权限,使用命令控制Bus的所有IO引脚。

使用和二进制bitbang模式相同命令来控制每个引脚的状态和变化。

NAME="__RefHeading__355_1881773865"四、基本示例

NAME="__RefHeading__357_1881773865"1. 总线模式

NAME="__RefHeading__359_1881773865"      (1). 读写24C02(EEPROM)

File:Bus Pirate使用指南-1 html 74a2b112.png

解释下:

首先使用宏(1)查看硬件地址,我上面接了两个I2C总线器件,其中24C02的写地址是0xAE,读地址是0xAF

写数据指令:[0xae 0 1 2 3]

起始信号->器件写地址->从存储地址0开始写->写数据1->写数据2->写数据3->终止信号

I2C总线写数据的时序就是这样,当然,器件地址根据情况写,存储地址可以边,写入的数据可以是单个也可以是多个,多个则是依次写入。

读数据指令:[0xae 0]&[0xaf r:3]

起始信号->器件写地址->从存储地址0开始读->终止信号->延时->起始信号->器件读地址->3个字节数据->终止信号

I2C协议读数据也需要按照读时序进行操作,地址和读取的字节数可调。