Flash memory
As per issue #1656, the M25P32-VMF6P SPI NOR flash memory, in the SOIC16 package, on the conv-ttl-rs485 (and other projects, such as the SVEC, SPEC, CONV-TTL-BLO) appears to be EOL.
The main requirement is Spartan 6 support. Xilink
lists
the SPI chips supported by iMPACT with Spartan 6.
In the case of the Micron (Numonyx) chips proposed, all the families
have been obsoleted by MICRON end of 2016.
In the case of the conv-ttl-rs485, a minimum size of ~12Mb is required to hold the bitstream of XC6SLX45T-3FGG484C [1].
| * Manufacturer | Flash family | Available packages |
Available sizes | Projected EOL | Remarks*|
|/3. MICRON |/3.
MT25QLxxxABA1E
| W-PDFN-8, SO8 wide |/3.From 128 Mb |/3. Part of the Product longevity
program
(PLP) - 7
to 10+ years life cycle | Supported by 7-Series and Zynq |
|/2. SO16 wide | Used in CTRV v5 |
|.Not directly supported by iMPACT. Use environment
variable
|/3. WINBOND |/3. W25QxxJV |SO8, VSOP8, WSON8, XSON8 |/3. 8Mb -
256Mb |/3. In production until at least 2019 |/3. Directly supported by
iMPACT |
|SO16 |
|TFBGA24 |
|/2. MACRONIX |/2.
MX25Lxx33F
(133MHz clock) |SOP8, WSON8, USON8 |/2. 16-128Mb |/2. Production for
new design. Life cycle of up to 3 to 5 years. After EOL, replacements
proposed. Part under longevity support since Feb 2015. |Not directly
supported by iMPACT. Use environment
variable |
|SOP16|Detailed longevity
program
available|
Decision
The final choice went for the Macronix MX25L3233FMI-08G in the SOP16 package. The decision was made for the following reasons:
- Macronix has longevity program making this flash future-proof for new productions as of the current date (2017).
- The Micron MT25Q series, though viable option, was not available through suppliers at the time of testing.
- The Winbond component does not have clear end-of-life timeline.
The Macronix component footprint, though defined as SOP16, is in fact pin-compatible with identical dimentsions to the the M25P32 in SOIC16W, see [2] and [3].
How to modify xc3sprog in order to program new flas memory:
Loosely you can follow these instructions for the Macronix MX25L3233F flash memory (change device and manufacturer ID according to the specific device in question)
* Download xc3sprog source code. Type following command:
Git clone https://github.com/matrix-io/xc3sprog.git
* Follow install commands from this page
http://xc3sprog.sourceforge.net/guide.php
* You may need the instructions on this page if xc3sprog is looking for
additional libraries
https://www.howtoinstall.co/en/ubuntu/xenial/libftdi1-dev
* Before building the project, it is important to edit file
progalgspiflash.cpp by adding the following lines in the macronix case
switch(*)
case 0x16:
pages = 16384;
sector_size = 65536;
break;
This will correspond to the MX25L3233F SPI NOR flash memory.
(*) change the values according to the Micron device being used
* You can carry on following build instructions on http://xc3sprog.sourceforge.net/guide.php
References:
[1]
https://www.xilinx.com/support/documentation/user_guides/ug380.pdf ,
page 77-78
[2]
http://www.macronix.com/Lists/Datasheet/Attachments/6268/MX25L3233F,%203V,%2032Mb,%20v1.6.pdf
, page 81
[3]
http://docs-europe.electrocomponents.com/webdocs/09a4/0900766b809a4206.pdf,
page 47
Denia Bouhired, November 30th, 2017