Bus Pirate Edu Kit Exercise no.9

Jump to: navigation , search

Overview

In this exercise we'll demonstrate how to interface the Bus Pirate with the 25LC040A 512 byte EEPROM IC over the SPI protocol. The EEPRO is organized in 32 pages each 16 bytes long. This means that at any single time only 16 bytes can be read or written to the IC.

The Circuit

Breadboard legend

IC Location Breadboard wiring legend
IC PIN1 (+) PIN2 (-)
25LC040A E14 E15
Signal name Contact1 Contact2
5V BP_5V BB_+_left
5V BB_+_left BB_+_right
5V BB_+_left A16
5V BB_+_right J14
5V BB_+_right J15
GND BP_GND BB_-_left
GND BB_-_left A17
MOSI BP_MOSI J17
MISO BP_MISO A15
CLK BP_CLK J16
CS BP_CS A14
• The (+) and (-) next to PIN1 and PIN2 are intended for devices such as LEDs, where PIN1 should be the anode and connected to a higher potential then PIN2.

Bus Pirate Terminal

HiZ>m<<<the mode command
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
x. exit(without change)

(1)>5<<<select the SPI mode<<<
Set speed:
1. 30KHz
2. 125KHz
3. 250KHz
4. 1MHz

(1)>4<<<set the SPI speed to 1 MHz<<<
Clock polarity:
1. Idle low *default
2. Idle high

(1)>1<<<set clock polarity to idle low
Output clock edge:
1. Idle to active
2. Active to idle *default

(2)>2<<<set output clock edge to active to idle
Input sample phase:
1. Middle *default
2. End

(1)>1<<<select the middle input sample phase
CS:
1. CS
2. /CS *default

(2)>2<<<select the inverted CS signal (active low)
Select output type:
1. Open drain (H=Hi-Z, L=GND)
2. Normal (H=3.3V, L=GND)

(1)>2<<<set the output type to normal
Ready
SPI>W<<<turn on the power supplies
POWER SUPPLIES ON

First we need to setup the SPI protocol as per 25LC040A's datasheet. Once the protocol is setup we turn on the power supplies via the 'W' command.

SPI>[0b110]
/CS ENABLED
WRITE: 0x06
/CS DISABLED

SPI>[0b10 0 1 2 3 4 5]
/CS ENABLED
WRITE: 0x02
WRITE: 0x00
WRITE: 0x01
WRITE: 0x02
WRITE: 0x03
WRITE: 0x04
WRITE: 0x05
/CS DISABLED

SPI>[0b11 0 r:5]
/CS ENABLED
WRITE: 0x03
WRITE: 0x00
READ: 0x01 0x02 0x03 0x04 0x05
/CS DISABLED

SPI>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
x. exit(without change)

(1)>1
Ready
HiZ>