
The assumption of the project was to create from scratch a programmer for popular Flash NAND memories to fill the gap in the market in the segment of low-cost programmers. Sometimes there is a need to read the Flash NAND chip, for example, in a flash drive, but also various types of navigations, modems, routers, TVs, etc. And it is not necessarily right to buy a professional tool for a price at least 5x more to read / program one system. I have been dealing with NAND Flash memories for a relatively long time, it can be said for a little over 3 years. When I used such a memory for the designed device for the first time, I saw only advantages: low price, high capacity, ease of use. After years of use, I also see disadvantages, but more on that in a moment.
The programmer designed by me, due to cost cutting, contains only one socket for the Flash NAND memory in the TSOP48 housing, permanently soldered.

The whole is powered from the USB port with 5.0V, and the FlashNAND memory system and the processor are powered by 3.3V from the TPS781330220 LDO stabilizer. The advantage of this stabilizer is the built-in 150mA overcurrent protection, which works great in the case of inverted insertion of the chip into the socket, which does not damage the memory chip, as well as the fact that I had a large amount of them in my warehouse.
I added two LEDs indicating 5.0V (D5) and 3.3V (D1) voltage, after which you can quickly check if everything is ok.
I used the full system of FlashNAND memory connections, in which there are four CE lines, and four RB lines, thanks to which it is possible to support all types of memory available in the TSOP48 housing, and the power supply (3.3V) is supplied only to the VSS pins (13 , 36). VCC (12.37).
The entire programmer is managed by the XMEGA-A4U processor, which fits perfectly in terms of the number of pins with which the software on the PC communicates through the USB FT245 converter.
I used a very interesting solution based on a parallel bus, connecting the DATA0-7 data lines of the FT245 chip directly to the XMEGA processor port, additionally connecting them to the FlashNAND memory chip.
This resulted in a high data transmission speed and great freedom of communication.
The obtained results surprised me:
FT245 XMEGA = 980kB / s
NAND XMEGA = 2.7MB / s
So the example communication then looks like this:
1. PC -> XMEGA - reading command from NAND memory
2. PC NAND - read preparation, sequence execution
3. PC
Cool? Ranking DIY