]>
Commit | Line | Data |
---|---|---|
1 | ------------------------------------------------------------------------------- | |
2 | Macronix MX25L1605D (SPI flash chip) | |
3 | ------------------------------------------------------------------------------- | |
4 | ||
5 | This is a set of example captures of a Macronix MX25L1605D (MX25L1605DPI-12G) | |
6 | SPI flash chip (16MBit == 2Mbyte; NOR flash) that is probed, being written to, | |
7 | read, or erased. | |
8 | ||
9 | The SPI programmer hardware used is openbiosprog-spi, see | |
10 | ||
11 | http://randomprojects.org/wiki/Openbiosprog-spi | |
12 | ||
13 | The software used for programming it is flashrom, see | |
14 | ||
15 | http://flashrom.org/FT2232SPI_Programmer | |
16 | ||
17 | ||
18 | Logic analyzer setup | |
19 | -------------------- | |
20 | ||
21 | The logic analyzer used was a ChronoVu LA8 (at 25MHz): | |
22 | ||
23 | Probe MX25L1605D pin | |
24 | -------------------------- | |
25 | 0 (green) CS# | |
26 | 1 (orange) SO/SIO1 (a.k.a MISO) | |
27 | 2 (white) SCLK | |
28 | 3 (red) SI/SIO0 (a.k.a MOSI) | |
29 | 4 (gray) WP#/ACC | |
30 | 5 (brown) HOLD# | |
31 | ||
32 | ||
33 | Probing | |
34 | ------- | |
35 | ||
36 | The flashrom command line used was: | |
37 | ||
38 | flashrom -p ft2232_spi:type=2232H,port=A | |
39 | ||
40 | The sigrok command line used was: | |
41 | ||
42 | sigrok-cli -d 0:samplerate=25mhz --samples 8388608 \ | |
43 | -p '1=CS#,2=MISO,3=SCLK,4=MOSI,5=WP#,6=HOLD#' \ | |
44 | --wait-trigger --triggers 3=1 \ | |
45 | -o mx25l1605d_probe.sr | |
46 | ||
47 | The capturing starts when the SCLK signal is high for the first time | |
48 | (it's low per default). We capture as many samples as fit into the 8MByte | |
49 | buffer of the logic analyzer. | |
50 | ||
51 | The capture might not contain the complete flashrom chip detection sequence. | |
52 | ||
53 | ||
54 | Writing | |
55 | ------- | |
56 | ||
57 | The flashrom command line used was: | |
58 | ||
59 | flashrom -p ft2232_spi:type=2232H,port=A -w filename | |
60 | ||
61 | where 'filename' is a 2MByte file filled with lots of consecutive "HelloWorld" | |
62 | ASCII character strings. | |
63 | ||
64 | The sigrok command line used was: | |
65 | ||
66 | sigrok-cli -d 0:samplerate=25mhz --samples 8388608 \ | |
67 | -p '1=CS#,2=MISO,3=SCLK,4=MOSI,5=WP#,6=HOLD#' \ | |
68 | -o mx25l1605d_write.sr | |
69 | ||
70 | The capture is only partial, it contains a small part of the write process | |
71 | (it does not contain the chip identification, chip erase, etc. which comes | |
72 | before the actual write parts; it also does not contain anything after that, | |
73 | the flashrom command took quite a bit longer than what the capture shows). | |
74 | ||
75 | ||
76 | Reading | |
77 | ------- | |
78 | ||
79 | The flashrom command line used was: | |
80 | ||
81 | flashrom -p ft2232_spi:type=2232H,port=A -r dump.dd | |
82 | ||
83 | The sigrok command line used was: | |
84 | ||
85 | sigrok-cli -d 0:samplerate=25mhz --samples 8388608 \ | |
86 | -p '1=CS#,2=MISO,3=SCLK,4=MOSI,5=WP#,6=HOLD#' \ | |
87 | -o mx25l1605d_read.sr | |
88 | ||
89 | The capture only contains a small part of the read procedure. The data in | |
90 | the chip consists of consecutive "HelloWorld" ASCII strings. | |
91 | ||
92 | ||
93 | Erasing | |
94 | ------- | |
95 | ||
96 | The flashrom command line used was: | |
97 | ||
98 | flashrom -p ft2232_spi:type=2232H,port=A -E | |
99 | ||
100 | The sigrok command line used was: | |
101 | ||
102 | sigrok-cli -d 0:samplerate=25mhz --samples 8388608 \ | |
103 | -p '1=CS#,2=MISO,3=SCLK,4=MOSI,5=WP#,6=HOLD#' \ | |
104 | -o mx25l1605d_erase.sr | |
105 | ||
106 | The capture does not contain the full erase process, only a small part of it. | |
107 |