The Bus Pirate board allows you to look at I2C/SPI and other signals in a convenient way.

Connections

I am connecting an I2C RTC that operates at 5V.
Here’s a picture of the connector layout
So I connected as shown in the above diagram
BUS PIRATE    RTC SLAVE
MOSI          SDA
CLOCK         SCL
GND           GND
+5V           5V

Pull-up resistorsI2C is an open-collector bus, it requires pull-up resistors to hold the clock and data lines high and create the data ‘1’. I2C parts don’t output high, they only pull low, without pull-up resistors there can never be a ‘1’. This will cause common errors such as the I2C address scanner reporting a response at every address. Read more about open collector/open drain bus types, and the Bus Pirate’s on-board pull-up resistors.

The figure outlines the basic parts of the Bus Pirate v2go on-board pull-up resistors. A pull-up (or pull-down) voltage supplied through the Vpullup (Vpu) pin is fed into a CD4066 analog switch (IC3). The 4066 distributes the pull-up voltage to four 10K resistors (R20-23) that connect to the MOSI, CLOCK, MISO, and CS bus pins.
Continue reading our practical guide to the Bus Pirate v2go’s pull-up resistors after the break.
I2C>v <<< voltage monitor reportVOLTAGE MONITOR: 5V: 5.0 | 3.3V: 3.3 | VPULLUP: 5.0 |
I2C>
You must connect the Vpullup pin to a voltage. The pull-up resistors aren’t hard-wired to a power supply, you can apply any voltage level that’s needed (from ground to +5volts). Type ‘V’ in the Bus Pirate terminal to see the current voltage on the Vpullup pin.
 
     

So my connection list got one extra wire connecting the jumping the 5V supply to the VPU pin.
BUS PIRATE    RTC SLAVE
MOSI          SDA
CLOCK         SCL
GND           GND
+5V           5V
+5V <-|
      |
VPU <-|

And of course I plugged it into the USB socket on my PC

Talking to it from Putty

Once plugged in, the PC loaded FTDI drivers, and I managed to talk to it from Putty at 115200bps/8/N/1
Once it was woken up, I put it into I2C mode using
‘m’   ‘4’   and selected top speed ‘4’
I turned on the power and set up the pullup resistor using ‘W’ ‘P’
And finally I searched the bus to see if my device would answer.
It seems that it did!
Now for something really challenging.   Write a few bytes of data to the RAM area of the RTC, and read them back.
Woo hoo.

Sniffing I2C bus of the TS05b

So just for grins I connected it to the I2C bus of the TS05b and asked it to probe to see what devices it could find.
No problem.
Sniffing is another matter.   It just can’t keep up with the bus traffic.

Leave a Reply