Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

USB low-full-high speed peripherals Forum Discussions

Anonymous
Not applicable

Dear Sir/Madam,

   

 

   

I have recently purchased the NX2LP-Flex Development board (which comes with a seperate CY3684 board with the FX2LP chip for development purposes) and have issues with getting started.  I am running Windows 7 x64 on an intel I7 computer.   I began to follow the instructions in the dev kit getting started guide,  plugged in the FX2LP board (with NX2LP board mounted on-top) and all the status LEDs (1-5)  were lit.  THe board was configured with EEPROM ON and LARGE EEPROM.  Windows detected the USB as an unkown device and I proceeded the install the drivers.   I used the windows vista x64 driver, but it resulted in a "Cypress NX2LP - Unprogrammed USB Device" to appear in Device manager, so I thought the installation of drivers was sucessful.  However upon connecting the RS232 cable and loading Keil, the Green LED D7 remained unlit and the PC did not mount my device as a drive letter, as suggested by the getting started guide.    The Nandmfg.exe program could not find the device either.

   

 

   

I wanted to get this to work, so uninstalled the drivers and tried reinstalling the windows 7 drivers x64 for  CY7C68013.  Now the device was detected as cypress fx2lp dev kit.  But i still could not detect the device using Nandmfg.exe.  In order to try to get the whole thing working I ended up following a forum support note which suggested that I should flash the NAND chips on my NX2LP board with firmware.. So on USB Control Centre I flashed the 4k page file.iic file using the ProgramFX2>64kb eeprom menu  , (as I had a 4k NAND chip installed in U4 and U8 on the NX2LP board as it came shipped with these).  The operation completed sucessfully, but now my device does not appear in the device manager at all, even with view hidden devices setting on.  I am worried that I may have made the EEPROM inaccesiblle.

   

 

   

Furthermore when I switch to small eeprom the device is detected under Other devices  as an unkown device, but I can't install any of the drivers successfully.  The PID and VID are as follows in this case: \VID_04B4&PID_0082&REV_0000.

   

When I switch the eeprom off, the device, after installation of drivers installs sucessfully as FX2LP Development Kit in device manager.  But again I can't seem to detect the device on Nanmfg.exe, although the device is found in the Cypress USB suite control centre. This time the PID and VID are as follows: USB\VID_04B4&PID_8613&REV_:001.

   

Can you please help me to get the kit back to factory settings and help me get started to mount the device as a drive (which your kit promises comes out the box!)?

   

Your help is much appreciated.

   

 

   

Many Thanks,

   

 

   

Sach

0 Likes
1 Solution
Anonymous
Not applicable

 Hi Sachin,

   

 

   

Now that you have changed the contents of EEPROM, you will have to load bootloader.iic file first into EEPROM. Please follow the below steps:

   

 

   

1. Connect FX2LP with EEPROM seitch in "NO EEPROM" position.

   

2. Change the EEPROM switch to "EEPROM" position and EEPROM SELECT switch to "LARGE EEPROM" position.

   

3. Open Control centre.

   

4. Select "Program FX2 -> 64KB EEPROM" and browse to the bootloader.iic that you can find at "C:\Cypress\USB\NX2LP-Flex\Boot-Loader" after installing NX2LP DVK (http://www.cypress.com/?rID=14320).

   

5. Now, if the NX2LP-Flex board if it is already mounted on FX2LP base board (with Nand flashes on socket), just unplug and connect the whole thing. Else mount them and connect.

   

6. Open the NandMfg utility. It will show as "Unprogrammed device" as you saw initially, and  the Program button would be enabled.

   

7.  Only after you program the flash, the PC will assign drive letter.  

   

8. Now, select your desired "nx2" file (which you can find at "C:\Cypress\USB\NX2LP-Flex\MfgTool" after installling NX2LP DVK)  using FILE -> Select Configuration option in the NandMfg.exe menu. You can find:

   

defualt.nx2 --> for 512 page size

   

default2k.nx2 --> 2k page size

   

default4k.nx2 --> for 4k page size

   

9. Accordingly, select the nx2 file and then click on the program button as to program the device.

   

10. Once it is programmed (Statusbar displays "Device programmed and formatted"), unplug and replug the device. Now the PC will assign the drive.

   

 

   

Regards,

   

Gayathri

View solution in original post

0 Likes
25 Replies
Anonymous
Not applicable

 PS i did start windows while pressing F8 and Enabling Unverified Drivers setting

   

 

   

Thanks

0 Likes
Anonymous
Not applicable

 Hi Sachin,

   

 

   

Now that you have changed the contents of EEPROM, you will have to load bootloader.iic file first into EEPROM. Please follow the below steps:

   

 

   

1. Connect FX2LP with EEPROM seitch in "NO EEPROM" position.

   

2. Change the EEPROM switch to "EEPROM" position and EEPROM SELECT switch to "LARGE EEPROM" position.

   

3. Open Control centre.

   

4. Select "Program FX2 -> 64KB EEPROM" and browse to the bootloader.iic that you can find at "C:\Cypress\USB\NX2LP-Flex\Boot-Loader" after installing NX2LP DVK (http://www.cypress.com/?rID=14320).

   

5. Now, if the NX2LP-Flex board if it is already mounted on FX2LP base board (with Nand flashes on socket), just unplug and connect the whole thing. Else mount them and connect.

   

6. Open the NandMfg utility. It will show as "Unprogrammed device" as you saw initially, and  the Program button would be enabled.

   

7.  Only after you program the flash, the PC will assign drive letter.  

   

8. Now, select your desired "nx2" file (which you can find at "C:\Cypress\USB\NX2LP-Flex\MfgTool" after installling NX2LP DVK)  using FILE -> Select Configuration option in the NandMfg.exe menu. You can find:

   

defualt.nx2 --> for 512 page size

   

default2k.nx2 --> 2k page size

   

default4k.nx2 --> for 4k page size

   

9. Accordingly, select the nx2 file and then click on the program button as to program the device.

   

10. Once it is programmed (Statusbar displays "Device programmed and formatted"), unplug and replug the device. Now the PC will assign the drive.

   

 

   

Regards,

   

Gayathri

0 Likes
Anonymous
Not applicable

 Thanks Gayathri that was very helpful!

   

 

   

I had already sucessfully programmed the NAND Flash, i just didn't realise I had to flash the large EEPROM before I could use it! 

0 Likes
Anonymous
Not applicable

 Hi Gayathri,

   

 

   

The issue with the small EEPROM switch on still persists though - I'm trying to install the driver (to be able to use the Keil debugging tool) with no success. PID VID:  \VID_04B4&PID_0082&REV_0000.

   

 

   

Thanks

   

 

   

Sach

0 Likes
Anonymous
Not applicable

 Hi Sachin,

   

 

   

Can you please check if Cymonpre.inf is present under "C:\WINDOWS\inf" and mon.spt is found under "C:\WINDOWS\system32\cymon" ?

   

 

   

Regards,

   

Gayathri

Anonymous
Not applicable

 Hi Gayathri,

   

 

   

CyMonPre.inf is present however the mon.spt file and folder cymon are not present in system 32.

   

 

   

Thanks

0 Likes
Anonymous
Not applicable

 I've installed the FX2lP dev kit, which should have copied these files to the appropriate locations.. I just don't know whether to do this manually, as some of the drivers in the folder with mon.spt are xp and me compatible..

0 Likes
Anonymous
Not applicable

Additonally hoping I can get the right filesoto be in place in the windows directory. Which iic file shall I program the small EEPROM with, to get the Keil Dev tools working?

   

Thanks

   

Sach

0 Likes
Anonymous
Not applicable

 Hi Sachin,

   

 

   

The small EEPROM must be programmed with  Fx2LP_C0.iic which can be found at location  "C:\Cypress\USB\Examples\ FX2LP\EEPROM Images".

   

 

   

REgards,

   

Gayathri

Anonymous
Not applicable

 Hi,

   

   

Still can’t get the monitor to work using the small eeprom (and get green led 7 on).  I’ve managed to load the monitor using Cy-Console EX USB interface though.     

   

Thanks     

0 Likes
Anonymous
Not applicable

 Hi Sachin,

   

 

   

After installing FX2LP DVK, is mon.spt present under "C:\WINDOWS\system32\cymon ? What is the error seen when you are trying to bind the driver? Can you please try the following when youa re trying manually bind using inf. Place the script file and CyUSB.sys file in the same directory as inf.

   

 

   

Regards,

   

Gayathri

Anonymous
Not applicable

 Hi,

   

 

   

The cmon folder is not present in the system32 directory, and so the mon.spt isnt present there.  I placed mon.spt in the same folder as cyusb.inf and .sys, I modifiied the inf to match the PID and VID of the dev kit with small eeprom on, and the driver is installed correctly.  However the gren light /monitor still doesn't automatically work.  THe cyusb.inf contains no reference to the mon.spt file, so I can't understand how it calls it - do i have to modify cyusb.inf using the cyload.inf example to call mon.spt.  

   

Thanks

0 Likes
Anonymous
Not applicable

 Hi Sachin,

   

 

   

You are supposed to use Cymonpre.inf and not CyUSB.inf. Cymonpre.inf has reference to the mon.spt.

   

 

   

Regards,

   

Gayathri

Anonymous
Not applicable

 I've tried it ..When I try to force its installation using the have disk procedure (and with mon.spt and cyusb.sys (x64) in the folder..), windows complains that the folder i specified doesn't contain a s compatible software driver for your device.. make sure it is designed to work for windows for x64-based systems..)  .. in addition do i have to put in my own custom GUID at this stage (just for using Keil debug)?

   

Thanks for your continued support

0 Likes
Anonymous
Not applicable

 Plus the comments in the cymonpre.inf file mention its a driver only for Windows ME/2000/XP..

   

 

   

Thanks

0 Likes
Anonymous
Not applicable

 Hi Sachin,

   

 

   

Sorry that it did not stike me that you were trying to use Cymonpre.inf in 64 bit systems. The inf that is available on web currently does not have support for 64 bit systems. But we have updated the inf now, and are on the process of putting that to web. It might take some more time to get that onto web. If you are in need of this urgently, please create a tech support case, so that we can provide you the latest updated cymonpre.inf file that has support for 64 bit systems as well. You can create the case at http://www.cypress.com/ -> support -> Technical Support -> Create  a case.

   

 

   

Regards,

   

Gayathri 

Anonymous
Not applicable

Thanks I've filed a case.

   

ON another note, once my NAND is programmed successfully,it does not appear as a removable device in my computer.  The Computer Management Tool detects an unallocated space, and using the tool if I assign a volume and drive letter (and FAT32, default allocation unit) the drive then mounts as a local drive.  I don’t know why it isn’t mounting as a removable device…  is the NX2LP mass storage reference design supposed to implement this feature or is this occurring because of a limitation of the NAND flash chip I am using?   I am using one of the recommended NAND flash chips: HY27UF081G2M.

       

Thanks Gayathri

0 Likes
Anonymous
Not applicable

Hi Sachin,

   

 

   

Is the problem of drive appearing as unallocated space seen only once? Or does it happen every time you plugin a newly programed flash?

   

One thing that I want you try is to just modify the VID/PID of the CY3686 firmware, and then program with this fw with new VID/PID. Sometimes windows is seen to show such issues taking some values that is already there in the regostry entry (not sure). Just try.

   

The issue has got nothing to do with NX2LP or the Nand flash. It is something specific to the OS, I believe.

   

 

   

Regards,

   

Gayathri

Anonymous
Not applicable

Hi Gayathri,

   

This unallocated disk space issue is happening each time for new copies of the Hynix nand flash chips i referred to earlier.  Changing the PID and VID whilst programming the NAND doesn't change the issue.  This unallocated issue didn't occur with the Samsung chips I first mentioned though...

   

I guess in my previous post the drive mounts as a local drive because when I initialize it I use the Master Boot Record (MBR) formatting method in Computer Management.. But why it needs to be initialized and is unallocated at first is unclear.

   

 

   

Thanks

0 Likes
Anonymous
Not applicable

 I managed to resolve the issue of the drive appearing as a local drive, all I had to do was enable formatting and EnableWriteProtect in NandMfg.exe..  Now it is appearing as a removable drive!  Also got the x64 premon.inf file working thanks very much for your assistance!

   

Now trying to increase the read / write speeds from a measly 7 and 1.5 MB/s... I'm guessing the nand flash firmware overheads are the major contributor to this poor perfomance?

   

Thanks

0 Likes
Anonymous
Not applicable

 Hi Sachin,

   

 

   

The performance seen for Nand flashes are in ths order, since the firmware does other housekeeping processes like Wear levelling, logical to physical address mapping etc apart from read and write to Nand flashes. If you see, with any USB Nand controllers, the performance will be either in this order or less. It will also vary from Nand to Nand. If the Nand supports internal move, then it is possible to get somewhat better performance by enabling Internal move, which can be done via Nandfg utility prior to programming.

   

 

   

Regards,

   

Gayathri

Anonymous
Not applicable

 Thanks gayathri.

   

On another completely different note, I am trying to edit your default firmware to get create a composite USB mass storage / custom class device and am currently editing the dscr.a51 file. I have added another interface for my custom application, which has uses  endpoints 6 and 8.  However when program the device, when using a device descriptor viewer the interface and (2) endpoint descriptors I have defined don't seem to be recognised by windows, but the mass storage stuff is seen by windows , and the device loads as a removable drive.   Do I need to edit   the periph.c file to enable the endpoints 6 &8??

   

Additionally, in the file dscr.a51 file, I am not sure what the purpose of DeviceDscrOffset (used at the end of the file), and other publically defined Descriptor Offsets are , hence I haven't introduced a similar term for my interface.  

   

 

   

Thanks Again.

   

S

0 Likes
Anonymous
Not applicable

 Please find attached my edited dscr.a51 for reference.

   

 

   

Thanks

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Aaahhh.. attached?

   

Bob

0 Likes
Anonymous
Not applicable

 Didn't realise it doesn't take non text files...

   

 

   

Thanks

0 Likes