Bus Pirate Edu Kit Exercise no.11

From DP

Revision as of 14:52, 18 April 2013 by Arakis (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation , search

Contents

Overview

BP EK E11 overview.jpg

In this exercise will learn how to start a Real Time Clock and Calendar IC and read the values generated by it.

The Circuit

BP EK E11 schematic.jpgBP EK E11 circuit.jpg

Breadboard legend

IC Location Breadboard wiring legend
IC PIN1 (+) PIN2 (-)
MCP7940M E14 E15
32KHz crystal C14 C15
C1 BB_-_left B14
C2 BB_-_left B15
Signal name Contact1 Contact2
5V BP_5V BB_+_left
5V BB_+_left BB_+_right
5V BB_+_right J14
5V BP_VPU BB_+_left
GND BP_GND BB_-_left
GND BB_-_left A17
MOSI BP_MOSI J17
CLK BP_CLK J16
  • 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 menu command
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
x. exit(without change)

(1)>4<<<select the I2C mode
Set speed:
1. ~5KHz
2. ~50KHz
3. ~100KHz
4. ~400KHz

(1)>3<<<select 100KHz for signaling speed
Ready
I2C>P<<<connect the pull up resistors (P command)
Pull-up resistors ON
Warning: no voltage on Vpullup pin
I2C>W<<<turn on the power supplies(W command)
POWER SUPPLIES ON



I2C>(1)<<<Search the I2C address space for connected devices
Searching I2C address space. Found devices at:
0xDE(0x6F W)




I2C>[0xDE 0[0xDF r:9]<<<read 9 registers starting at address 0
I2C START BIT
WRITE: 0xDE ACK<<<send the reading address
WRITE: 0x00 ACK<<<send the starting register
I2C START BIT<<<restart communication
WRITE: 0xDF ACK<<<send the writing address
READ: 0x00 ACK 0x00 ACK 0x00 ACK 0x01 ACK 0x01 ACK 0x01 ACK 0x01 ACK 0x80 ACK 0x00<<<9 bytes read from registers
NACK
I2C STOP BIT




I2C>[0xde 0 0x80]<<<set the first bit of the registrar located at address 0
I2C START BIT
WRITE: 0xDE ACK
WRITE: 0x00 ACK
WRITE: 0x80 ACK
I2C STOP BIT



I2C>[0xde 0[0xdf r:9]<<<read 9 registers starting at address 0'
I2C START BIT
WRITE: 0xDE ACK
WRITE: 0x00 ACK
I2C START BIT
WRITE: 0xDF ACK
READ: 0x82 ACK 0x00 ACK 0x00 ACK 0x21 ACK 0x01 ACK 0x01 ACK 0x01 ACK 0x80 ACK 0x00
NACK
I2C STOP BIT



I2C>[0xde 0[0xdf r:9]<<<read 9 registers starting at address 0'
I2C START BIT
WRITE: 0xDE ACK
WRITE: 0x00 ACK
I2C START BIT
WRITE: 0xDF ACK
READ: 0xD4 ACK 0x01 ACK 0x00 ACK 0x21 ACK 0x01 ACK 0x01 ACK 0x01 ACK 0x80 ACK 0x00
NACK
I2C STOP BIT



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

(1)>1<<<select the HiZ mode
Ready
HiZ>

Not Working?

Taking it further