The premise of the project was to create a programmer from scratch for popular Flash NAND memories, to fill a gap in the market in the low-budget segment of programmers. Sometimes there is a need to read a Flash NAND chip found, for example, in a memory stick, but also in various types of navigation devices, modems, routers, televisions and so on. And it does not necessarily become right to buy a professional tool at a cost of at least 5x the price to read/program a single chip. I have been dealing with Flash NAND memories for a relatively long time, a little over 3 years now, you could say. When I first applied such memory to a device I was designing, I saw the advantages alone: low price, high capacity, ease of use. After years of use, I can also see the disadvantages, but about that in a moment.
The programmer I designed, for cost-cutting reasons, contains only one socket to accommodate the Flash NAND in a TSOP48 permanently soldered housing.
The entire board is powered from the USB port with 5.0V, while the FlashNAND chip and processor are powered with 3.3V supplied from the LDO TPS781330220 stabiliser. The advantage of this stabiliser is the built-in 150mA overcurrent protection, which works great if the chip is inserted backwards into the socket without damaging the memory chip, as well as the fact that I had them in stock in large quantities.
I added two LEDs, indicating voltages of 5.0V (D5), and 3.3V (D1), by which you can quickly check that everything is OK.
I have used the full FlashNAND connection layout, where four CE lines, and four RB lines are present, so that it is possible to support all types of memory available in the TSOP48 chassis, while the power supply(3.3V) is only applied to the VSS(13,36), VCC(12,37) leads.
The whole programmer is managed by the XMEGA-A4U processor, which fits perfectly in terms of the number of leads, with which the PC software communicates, via the FT245 USB converter.
I used here a very interesting solution based on the parallel bus, connecting the DATA0-7 lines of the FT245 chip directly to the port of the XMEGA processor, additionally connecting them to the FlashNAND memory chip.
I gained from this a high data rate and a lot of freedom of communication.
The results obtained surprised me myself:
FT245 XMEGA = 980kB/s
NAND XMEGA = 2.7MB/s
So an example communication then looks as follows:
1. PC -> XMEGA - NAND read command
2. PC NAND - prepare to read, execute sequence
3. PC
Link to software:
http://software.progelo.pl/NANDLite/publish.htm
Cool? Ranking DIY