summaryrefslogtreecommitdiff
path: root/spi/mx25l1605d/README
blob: 83a987fe746b30879feedaa8d4492b3fe04baa07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
-------------------------------------------------------------------------------
Macronix MX25L1605D (SPI flash chip)
-------------------------------------------------------------------------------

This is a set of example captures of a Macronix MX25L1605D (MX25L1605DPI-12G)
SPI flash chip (16MBit == 2Mbyte; NOR flash) that is probed, being written to,
read, or erased.

The SPI programmer hardware used is openbiosprog-spi, see

  http://randomprojects.org/wiki/Openbiosprog-spi

The software used for programming it is flashrom, see

  http://flashrom.org/FT2232SPI_Programmer


Logic analyzer setup
--------------------

The logic analyzer used for capturing is a ChronoVu LA8 at a sample rate
of 25MHz.

The ChronoVu LA8 probes were connected to the MX25L1605D chip like this:

  Probe       SPI chip pin
  ------------------------
  0 (green)   CS#
  1 (orange)  SO/SIO1 (a.k.a MISO)
  2 (white)   SCLK
  3 (red)     SI/SIO0 (a.k.a MOSI)
  4 (gray)    WP#/ACC
  5 (brown)   HOLD#


Probing
-------

The flashrom command line used was:

  flashrom -p ft2232_spi:type=2232H,port=A

The sigrok command line used was:

  sigrok-cli -d 0:samplerate=25mhz --samples 8388608 \
             -p '1=CS#,2=MISO,3=SCLK,4=MOSI,5=WP#,6=HOLD#' \
             --wait-trigger --triggers 3=1 \
             -o mx25l1605d_probe.sr

The capturing starts when the SCLK signal is high for the first time
(it's low per default). We capture as many samples as fit into the 8MByte
buffer of the logic analyzer.

The capture might not contain the complete flashrom chip detection sequence.


Writing
-------

The flashrom command line used was:

  flashrom -p ft2232_spi:type=2232H,port=A -w filename

where 'filename' is a 2MByte file filled with lots of consecutive "HelloWorld"
ASCII character strings.

The sigrok command line used was:

  sigrok-cli -d 0:samplerate=25mhz --samples 8388608 \
             -p '1=CS#,2=MISO,3=SCLK,4=MOSI,5=WP#,6=HOLD#' \
             -o mx25l1605d_write.sr

The capture is only partial, it contains a small part of the write process
(it does not contain the chip identification, chip erase, etc. which comes
before the actual write parts; it also does not contain anything after that,
the flashrom command took quite a bit longer than what the capture shows).


Reading
-------

The flashrom command line used was:

  flashrom -p ft2232_spi:type=2232H,port=A -r dump.dd

The sigrok command line used was:

  sigrok-cli -d 0:samplerate=25mhz --samples 8388608 \
             -p '1=CS#,2=MISO,3=SCLK,4=MOSI,5=WP#,6=HOLD#' \
             -o mx25l1605d_read.sr

The capture only contains a small part of the read procedure. The data in
the chip consists of consecutive "HelloWorld" ASCII strings.


Erasing
-------

The flashrom command line used was:

  flashrom -p ft2232_spi:type=2232H,port=A -E

The sigrok command line used was:

  sigrok-cli -d 0:samplerate=25mhz --samples 8388608 \
             -p '1=CS#,2=MISO,3=SCLK,4=MOSI,5=WP#,6=HOLD#' \
             -o mx25l1605d_erase.sr

The capture does not contain the full erase process, only a small part of it.