I am working on a USB drive prototype using cy7C68033 and a NAND flash (Samsung K9KWBG08U1M, 4G byte chip), and found that, upon plug in, the device will be enumerated as "Cypress FX2 - No EEPROM"; however, once I start NX2LP Programmer utility, it will be enumerated as a mass storage device (and drive letter will come out). Firstly I though it was my firmware error and programmed the default firmware (CY3686FW included in the development kit) but the result was the same.
When the device is enumated as "Cypress FX2 - No EEPROM", it has a VID of 04B4 and PID of 8613, which is different from what I programmed using the NX2LP programmer utility, so probably the chip just failed to read the nand flash - am I correct?
Could someone help me to determine what is keeping the chip from working? Thanks in advance.
Are you using the NX2LP mounted on FX2LP DVK? Or are you using it in stand-alone mode? When using the first mode, i.e. when no chip is mounted on U1 and the NX2LP-Flex board is mounted on the FX2LP 3684 DVK, bootloader.iic code has to be stored inside the Large EEPROM of the FX2LP board. Please ensure the same.
Also, while programming using the NX2LP Programming utility, please check and let e know whether the 'Auto Program on device connect' option is checked or not. If checked, please uncheck and try programming.
Can you please try out the following once again and let me know.
1. Connect the NX2LP with Nand Flash mounted.
2. Open the NandMfg utility
3. Do 'CTL + W' as to erase the Nand Flash.
4. Download the default firmware into it with Formatting option enabled. (If you have disabled formatting, please do 'CTL + F' as to enable the formatting again. This command will toggle formatting of the media ON and OFF. By default, the utility imposes a FAT32 format on the media at the conclusion of the programming process.) -
[ * Also ensure "Auto proggram" option is unchecked.
* Try with Enable write protect checked and unchecked.
* Check / uncheck 'Nand Page size == 512 Bytes" according to the page size of your nand flash. ]
5. Once the programmed, please ensure Status bar in Nandfg utility shows " Device programmed and Formatted".
Now try plugging the NX2LP device, with Nand flash mounted, without the utility open.
If it doesn't still work, please get us one USB trace using any USB traffic analyzer like CATC, with the utility open when it works, and without the utility open when it fails to enumerate.
Also, I would like to clarify one thing: once the utility is open, and the Mass storage drive appears, are you able to do read and write into the Nand flash, with the utility open, and also after closing the utility?
Have you tried with different Nand flashes? Is this the case with only one particular nand flash that yiu are trying? Or is the behaviour similar for whichever Nand flash you try?
The flash chip is Samsung's K9WBG08U1M (4k page, 64 page per block, 8192 blocks, 2 CE). I didn't try other chip.
A new finding is that, after formatting is disabled, it always said "programming failed"
If util is active, then read/write is ok just as normal usb drive.
Havn't use USB analyser. Would try later..
I think you got confused with my long previous response. I wanted you to enable formatting if it was accidently disabled before. Since it is already enabled, it is okay.
So, I understand that with utility open, you are able to read and write normally. Does it continue to do so even after closing the NandMfg utility?
Get us the USB trace as soon as you get it.
Please also attach the trace when it is failing to enumerate, i.e., with NandMfg utility close. I would like to see what exactly is happening, like whether the command is being stalled etc. Also, if it is possible for you to attach the trace (Ellisys file as such), instead of screenshot, it would be easy for us to analyze.
I would also like to clarify one more thing. When you are programming Nand flash, what is the status shown in the status bar? Please take a snapshot of the same and attach.
Also, when you are opening the Nandfg utility, with the programmed Nand flash mounted, what is the status shown? Is it " Connected to Cypress NX2LP - Unprogrammed USB Device" ? When you are using default firmware, that would be the status. Please confirm the same.
What is the status when you are programming with your own firmware (Please use a different VID/PID other than 0x04B4/0x4617 or 0x04B4/0x8613 or 0x04B4/0x6823 in your firmware). Please let me know the answers for these three questions.
Also, is it possible for you to attach the Nand datasheet. If possible just give it a try with one different Nand flash.
What is the version of the NandMfg utility that you are using? If you are using an older version, please use the latest version that you can find at: http://www.cypress.com/?rID=14320
When programming, the screen ends with "please use host to format" if formatting is enabled, which I believe is normal because K9WBG08U1M is 4K page which cannot be formatted by NandCfg. Please see attached screen. However, if format is disabled (Ctrl-F), then it will said "Programming failed", although if I remove and then re-attach when NandCfg is running, I can access and format the drive.
If unprogrammed device is connected, then "Connected to Cypress NX2LP - Unprogrammed USB Device" is shown. I can erase the flash (Ctrl-W) and then program.
I tried different VID/PID combinations and there is no difference.
On the NandCfg version, I believe I am using the latest one - please see the version screen capture.
Even though from the screenshot you have attached, the version seems to be the same, but I want you to check with the latest version to be double sure. Since we have made certain minor modifications in the NandMfg utilityin the recent past.
Also, I want to let you know that it is the programming to the Nand flash that is failing in your case. I am inspecting further on this. Please let me know after you check with the latest Nandfg utility.
I have done a re-installation and the result is the same.
Another finding: with NandMfg.exe running and the device is recognized, at first the read/write is ok; but after read/write several MB of data, the drive seems gone (Windows cannot detect the drive). The default4K firmware is used.
I will try use some other Nand flash chip to test.
I think it would be easier and faster to debug the root cause if it is possible for you to ship the Nand flash. as soon as we receive the Nand flash, we will open a tech support case for you, and communicate over that. Please let us know whether it is okay for you to ship the Nand flash. if so, I will tell the shipping address.
As you test with another Nand flash, please do with other Nand flashes that have 4k page, and also that has 2k/512 page size as well.
I have had experience with this "beast", one major issue is if the nand-flash chip has errors on certain critical blocks, then you will get ' programming failed' or format failed issues, and also some other critical curcuit issues.
I'm also in HK
Long time no seeing the forum. I found theproblem was due to the NandMfg utility; it assmes flash page size of 4314 that is only true for Micro flash chips. For Samsung, it should be 4096+128. After made corrections the enumeration is working.
And you are right. It is very difficult to use CY7C68033. Do you have experiene whether the chip can be used as a ordinary 8051 - i.e. without attach to USB?
Hi xingsing, I know its been a while, but how did you get the 4k page nand working in the end with the CY3686 devkit in the end?
I've succeded in making a 2k page nand appear as a mass storage device which works, but can't do the same with a 4k page nand - it gets to the stage were it appears as an unallocated drive in computer management but it appears as a 500mb drive where in fact it is a 8Gbit chip (1GB) , it also fails any attept to format it and initialize it. I changed the page size in the Otherparts.xml to match my devices (4320) and matched all the nand settings to my devices (see below), but it doesn't seem to work.. Did you have to modify the 4k page Firmware that Cypress have provided to get it to work?
<NAND_DEVICE Vendor_Name="Micron" Part_Number="MT29F8G08ABABA" Vendor_Code="0x2C" Device_Code="0x38" Page_Size="4320" Pages_Per_Block="128" Blocks="2048" Read_Cycle_ns="30" Read_Cache="0" Prog_Cache="0" Internal_Move="0" />
The datasheet of the nand I'm trying to get working (MT29F8G08ABABA) is attached.
Another thought - is the incompability perhaps due to the fact that the NAND I am using has 2 planes, and the Cypress firmware is not compatible with a NAND of this structure??
NAND has its own internal differences, unless the part number is there in the NAND compatibility list you can expect issues. We usually find the issue and tweak the firmware to get it to work (this has to been done irrespective of which NAND flash controller you use because of the inherent differences in the NAND)
Size reported is based on the parameters entered while programming the NAND. Most probably there is a entry in Nandparts.xml superseding this. Check that out.
Try putting debug messages in the firmware to see where exactly it is stuck.
Thanks for your reply. I get the feeling it doesnt work correctly with the NAND I have chosen as it has 128 pages per block, whereas your firmware assumes even the 4k page Nands have 64 pages per block. I will try and change the variable where it appears in the code, but am not sure what implications this may have on the rest of the code..
Unfortunately the incorrect assumption that all 4k page devices have 64 pages per block is carried over to large poritons of the code - resulting in an incorrectly programmed nand. could you please highlight where I need to modify the code - I've already changed the code that calculates the size of the drive using zones and modfiied the CopyPages function.
Currently the NX2LP firmware does not support dual-plane nand flash. So, in order to support that you may have to do lot of modifications. As you can find from the Nand datasheets, for dual-plane flashes, it needs a different set of commands for Multi-plane support.
Since this needs a greater effort, you may create a case, so that one of our engineers can take a look at this, consolidate the effort and guide you through this.
Thanks for your reply. That's strange because some of the NAND chips on your NX2lp Compatibility list are Nand chips which have several planes and support (and probably require?) two-plane commands: e.g. the MT29F8G08AA (see attached datasheet). This device apears to have four planes, as it has 8192 blocks (plane size 2048). I will certainly create a case if required, but don't see the need to write extra code if its already supported somewhere in your firmware.
Without using the multi-plane feature, it is possible to use the flash like any normal flash. I wanted to clarify for one of your previous queries that multi-plane commands whatever is being shown in the datasheet of the flash (for eg:Two plane program page: 0x80-0x11 - 0x80-0x10) is not supported by NX2LP firmware.
In order to modify the no: of pages/block, you will have to change variables like c2KPageSize, c2KPageSize2N. As you observed in order to modify the same we will have to look that in a very closer perspective. Try putting debug messages using UART (by using NX2LP DVK = FX2LP DVK + NX2LP daughter card). I think, that will help you understanding what is happening inside firmware better. I think you have already modified the CopyPages function for supporting 128 pages/block.
It is an old design and I could get it to work by modifying the XML used by the NandCfg (otherparts.xml). I found that NandCfg will generate a bad Page_Size entry. By correcting the value I managed to get 68033 to work with Samsung's K9WBG. However, Samsung seemed to EOL this part and I am now searching for replacements..
Hope that it will help others with CY7C68033.
ps Nowadays I seems could not find the compability list for Cy7C68033; the links from the application notes either points to inexisting doc, or to some strange sites. Not to say that cypress.com seems to be using an expired SSL certificate. It is certainly not a good help to engineers trying to use cypress chips.
We are sorry for the inconvenience being caused. Since most of the Nand flashes included in the previous Nand compatibility list are obsolete, we are currently under the process of updating the compatibility list. Please create a tech support case for the current compatibility list for NX2LP. We regret the inconvenience caused due to this.
Also thank you for bringing this to our notice that the link for compatibility list web page has been broken.
Did you get to the bottom of this?
I am using CY7C68033 and the Same chip, MT29F8G08BAA.
I can program it and it appears in the computer management in Windows 7 as unallocated drive. But does not format in windows.
Any solution? please help.
1G byte flash should be formatted automatically by the NANDMfg. If it does not format in windows, maybe it is the nandmfg software locking the drive - did you try to insert it to other computer and format there?