Bus Pirate: Difference between revisions
m (→Connections) |
No edit summary |
||
Line 19: | Line 19: | ||
! Description | ! Description | ||
|- | |- | ||
| align="right" | (not) Chip Select || CS || <font size="+2">→</font> || style="background: #DDDDDD;" | 1 || align="left" style="background: #DDDDDD;" | /CS || align="right" style="background: #DDDDDD;" | VCC | | align="right" | (not) Chip Select || CS || <font size="+2">→</font> || style="background: #DDDDDD;" | 1 || align="left" style="background: #DDDDDD;" | /CS || align="right" style="background: #DDDDDD;" | VCC || style="background: #DDDDDD;" | 8 || <font size="+2">←</font> || +3.3v || align="left" | Supply | ||
|- | |- | ||
| align="right" | Master In, Slave Out || MISO || <font size="+2">←</font> || style="background: #DDDDDD;" | 2 || align="left" style="background: #DDDDDD;" | DO (IO1) || align="right" style="background: #DDDDDD;" | /HOLD | | align="right" | Master In, Slave Out || MISO || <font size="+2">←</font> || style="background: #DDDDDD;" | 2 || align="left" style="background: #DDDDDD;" | DO (IO1) || align="right" style="background: #DDDDDD;" | /HOLD (IO3) || style="background: #DDDDDD;" | 7 || <font size="+2">←</font> || +3.3v || align="left" | (not) hold (see datasheets) | ||
|- | |- | ||
| align="right" | (not) Write Protect || +3.3v || <font size="+2">→</font> || style="background: #DDDDDD;" | 3 || align="left" style="background: #DDDDDD;" | /WP (IO2) || align="right" style="background: #DDDDDD;" | CLK | | align="right" | (not) Write Protect || +3.3v || <font size="+2">→</font> || style="background: #DDDDDD;" | 3 || align="left" style="background: #DDDDDD;" | /WP (IO2) || align="right" style="background: #DDDDDD;" | CLK || style="background: #DDDDDD;" | 6 || <font size="+2">←</font> || SCLK || align="left" | The SPI clock | ||
|- | |- | ||
| align="right" | Ground || GND || <font size="+2">→</font> || style="background: #DDDDDD;" | 4 || align="left" style="background: #DDDDDD;" | GND || align="right" style="background: #DDDDDD;" | DI (IO0) || style="background: #DDDDDD;" | 5 || <font size="+2">←</font> || MOSI || align="left" | Master Out, Slave In | | align="right" | Ground || GND || <font size="+2">→</font> || style="background: #DDDDDD;" | 4 || align="left" style="background: #DDDDDD;" | GND || align="right" style="background: #DDDDDD;" | DI (IO0) || style="background: #DDDDDD;" | 5 || <font size="+2">←</font> || MOSI || align="left" | Master Out, Slave In | ||
|- | |- | ||
|} | |} |
Revision as of 20:25, 1 December 2012
The Bus Pirate is an open source design for a multi-purpose chip-level serial protocol transceiver and debugger. Flashrom supports the Bus Pirate for SPI programming. It also has SPI sniffing functionality, which may come in useful for analysing chip or programmer behaviour.
They are available for around US$30 from various sources.
Connections
The table below shows how a typical SPI flash chip (sitting in the center of the table) needs to be connected (NB: not all flash chips feature all of the pins below, but in general you should always connect all input pins of ICs to some defined potential (usually GND or VCC), ideally with a pull-up/down resistor in between). Most SPI flash chips require a 3.3V supply voltage, but there exist some models that use e.g. 1.8V. Make sure the device in question is compatible before connecting any wires.
Description | Bus Pirate | Dir. | Flash chip | Dir. | Bus Pirate | Description | |||
---|---|---|---|---|---|---|---|---|---|
(not) Chip Select | CS | → | 1 | /CS | VCC | 8 | ← | +3.3v | Supply |
Master In, Slave Out | MISO | ← | 2 | DO (IO1) | /HOLD (IO3) | 7 | ← | +3.3v | (not) hold (see datasheets) |
(not) Write Protect | +3.3v | → | 3 | /WP (IO2) | CLK | 6 | ← | SCLK | The SPI clock |
Ground | GND | → | 4 | GND | DI (IO0) | 5 | ← | MOSI | Master Out, Slave In |
Usage
$ flashrom -p buspirate_spi:dev=/dev/device,spispeed=frequency
Example:
$ flashrom -p buspirate_spi:dev=/dev/ttyUSB0,spispeed=1M
Troubleshooting
In case of problems probing the chip with flashrom - especially when connecting chips still soldered in a system - please take a look at this page. In circuit programming it often possible, so long as no other devices on the SPI bus are trying to access the device.
Speedup
A beta firmware build exists, to speed up the buspirate. See this post on dangerousprototypes.com: http://dangerousprototypes.com/forum/viewtopic.php?f=40&t=3864&start=15#p41505
http://dangerousprototypes.com/docs/Bus_Pirate#Firmware_upgrades