ftdi_mpsse_spi_serial_flash


Project maintained by maxpeng Hosted on GitHub Pages — Theme by mattgraham

ftdi_mpsee_spi_serial_flash

This project contains an LibMPSSE-SPI example to program Winbod W25Q64JV serial flash connected to the SPI channel of UM232H module.

One copy of data sheet of W25Q64JV is placed at here.

FTDI UM232H

Connections

SPI Pin UM232H Pin
SCLK ADBUS0
MOSI ADBUS1
MISO ADBUS2
CS0 ADBUS3

Notes

  1. Connections must be made to the VIO and 5V0 power pins of UM232H module before the module will be recognised by a PC.
  2. For th details of pinout, refer pyftdi - FTDI device pinout.

Building the example

Example of output

C:\dev\ftdi_mpsse_spi_serial_flash\cmake-build-debug-mingw32>ftdi_mpsse_spi_serial_flash.exe
Number of SPI channels: 1

# read ID:
ef 40 17

# read page at address 0x000000:
read data:
00 01 02 03 04 05 06 07 - 08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17 - 18 19 1a 1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 - 28 29 2a 2b 2c 2d 2e 2f
30 31 32 33 34 35 36 37 - 38 39 3a 3b 3c 3d 3e 3f
40 41 42 43 44 45 46 47 - 48 49 4a 4b 4c 4d 4e 4f
50 51 52 53 54 55 56 57 - 58 59 5a 5b 5c 5d 5e 5f
60 61 62 63 64 65 66 67 - 68 69 6a 6b 6c 6d 6e 6f
70 71 72 73 74 75 76 77 - 78 79 7a 7b 7c 7d 7e 7f
80 81 82 83 84 85 86 87 - 88 89 8a 8b 8c 8d 8e 8f
90 91 92 93 94 95 96 97 - 98 99 9a 9b 9c 9d 9e 9f
a0 a1 a2 a3 a4 a5 a6 a7 - a8 a9 aa ab ac ad ae af
b0 b1 b2 b3 b4 b5 b6 b7 - b8 b9 ba bb bc bd be bf
c0 c1 c2 c3 c4 c5 c6 c7 - c8 c9 ca cb cc cd ce cf
d0 d1 d2 d3 d4 d5 d6 d7 - d8 d9 da db dc dd de df
e0 e1 e2 e3 e4 e5 e6 e7 - e8 e9 ea eb ec ed ee ef
f0 f1 f2 f3 f4 f5 f6 f7 - f8 f9 fa fb fc fd fe ff


# read status:
00

# enable write

# read status:
02

# erase sector at address 0x000000:

# read status:
03

# read status:
03

# read status:
03

# read status:
00

# read page at address 0x000000:
read data:
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff


# enable write

# write page at address 0x000000:
data to write:
00 01 02 03 04 05 06 07 - 08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17 - 18 19 1a 1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 - 28 29 2a 2b 2c 2d 2e 2f
30 31 32 33 34 35 36 37 - 38 39 3a 3b 3c 3d 3e 3f
40 41 42 43 44 45 46 47 - 48 49 4a 4b 4c 4d 4e 4f
50 51 52 53 54 55 56 57 - 58 59 5a 5b 5c 5d 5e 5f
60 61 62 63 64 65 66 67 - 68 69 6a 6b 6c 6d 6e 6f
70 71 72 73 74 75 76 77 - 78 79 7a 7b 7c 7d 7e 7f
80 81 82 83 84 85 86 87 - 88 89 8a 8b 8c 8d 8e 8f
90 91 92 93 94 95 96 97 - 98 99 9a 9b 9c 9d 9e 9f
a0 a1 a2 a3 a4 a5 a6 a7 - a8 a9 aa ab ac ad ae af
b0 b1 b2 b3 b4 b5 b6 b7 - b8 b9 ba bb bc bd be bf
c0 c1 c2 c3 c4 c5 c6 c7 - c8 c9 ca cb cc cd ce cf
d0 d1 d2 d3 d4 d5 d6 d7 - d8 d9 da db dc dd de df
e0 e1 e2 e3 e4 e5 e6 e7 - e8 e9 ea eb ec ed ee ef
f0 f1 f2 f3 f4 f5 f6 f7 - f8 f9 fa fb fc fd fe ff


# read status:
00

# read page at address 0x000000:
read data:
00 01 02 03 04 05 06 07 - 08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17 - 18 19 1a 1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 - 28 29 2a 2b 2c 2d 2e 2f
30 31 32 33 34 35 36 37 - 38 39 3a 3b 3c 3d 3e 3f
40 41 42 43 44 45 46 47 - 48 49 4a 4b 4c 4d 4e 4f
50 51 52 53 54 55 56 57 - 58 59 5a 5b 5c 5d 5e 5f
60 61 62 63 64 65 66 67 - 68 69 6a 6b 6c 6d 6e 6f
70 71 72 73 74 75 76 77 - 78 79 7a 7b 7c 7d 7e 7f
80 81 82 83 84 85 86 87 - 88 89 8a 8b 8c 8d 8e 8f
90 91 92 93 94 95 96 97 - 98 99 9a 9b 9c 9d 9e 9f
a0 a1 a2 a3 a4 a5 a6 a7 - a8 a9 aa ab ac ad ae af
b0 b1 b2 b3 b4 b5 b6 b7 - b8 b9 ba bb bc bd be bf
c0 c1 c2 c3 c4 c5 c6 c7 - c8 c9 ca cb cc cd ce cf
d0 d1 d2 d3 d4 d5 d6 d7 - d8 d9 da db dc dd de df
e0 e1 e2 e3 e4 e5 e6 e7 - e8 e9 ea eb ec ed ee ef
f0 f1 f2 f3 f4 f5 f6 f7 - f8 f9 fa fb fc fd fe ff

References

  1. FTDI Application Note 178 - User Guide For LibMPSSE-SPI
  2. FTDI Application Note 411 - AN_411_FTx232H MPSSE I2C Master Example in Csharp
  3. pyftdi - FTDI device pinout