I'm working with a Cypress EZ-USB FX Development Kit. Per the EZ-USB Contents and Tutorial manual, I'm trying to run the dev_io example program by loading it from the Keil debugger. After following the directions per this pdf file, when I try to download the file with Keil uVision2 application it gives me CONNECTION TO TARGET SYSTEM dialog box. It seems the Kit / Keil debugger is not establishing the comm channel properly. I know the target hardware is working properly because I can run the ezUSB control panel application and download C:\Cypress\USB\Examples\EzUsb\dev_io\dve_io.hex and the example runs fine on the kit. I've tried other examples to download with the Keil debugger, same problem I performed the following steps: 1) Connect USB cable to EZ-USB FX development board. 2) Serial comm cable is connected from COM1 of PC to SIO-1 of the EZ_USB FX board. 3) Run EzUSB application and select LoadMon to load the Keil debug monitor into memory. Its loading the correct default monitor file, mon-ext-sio1-e0.hex. For some reason when I disconnect and re-connect the USB to this board it is not automatically loading the Keil debug monitor. I notice on my PC in the device manager that sometimes the USB driver loaded is Cypress Ez-USB ( 2235) - EEPROM missing or Cypress EZ-USB sample device. Perhaps this is somehow related to my problem. All the jumpers on the FX board are set to default. The only ones that may not be set to default are JP8 ( small EEPROM ) and JP9 ( EEPROM CONNECT ). I currently have JP8 jumpered and JP9 unjumpered. 2) The green LED on the FX is lit indicating the Keil debug monitor has been loaded. 6) Run Keil uVision2 application and open project C:\Cypress\USB\Examples\EzUsb\dev_io\dev_io.Uv2 7) Under Projects -> Option for Target 'Target1' -> Debug tab -> Settings, set comm port settings to Port: Com1, Baudrate: 34800 Ensured the Xtal(MHZ) is 48.0 8) Do start debug session 9) comm problem is occuring. I've already when thru all the obvious stuff. - Yes, the COM1 port and serial cable are correct and functional - Yes, I looked at the Keil and Cypress website and read all doco concerning this problem. No help in resolving this problem tried everything I read about - Contacted Cypress, they gave me the same suggestions as all the troubleshooting documents I have read. Tried them, still does not work I can even modifiy the dev_io program code, build, and using the the EzUSB application download without the Keil debug monitor and it runs no problem. The Keil monitor info is as follows: - Keil Monitor - 51 Driver - uVision2 - v2.10, Evaluation Version, Running in Eval Mode (4K) When I use the EZ-USB Control Panel to load the Keil Monitor and then do GetDev I am getting the following device info: VID = 0X547 PID = 0x2235 Is this correct ? Need to be able to start writing firmware for the FX and using the Keil debugger to download and debug code. Without the Keil debugger I cannot debug firmware I am writing on the FX board. I've now spend 2 whole days trying to get this to work. Please help. David Parent TRW Automotive Software Development 248-442-5129
Hello David, It's been a while since I used this Cypress device so take the following with a pinch of salt. The first 9 bytes of the I2C EEPROM on this system define the PID\VID. There is a specific PID\VID that will load the Keil ROM monitor automatically. The one you quote does not and is the one that will be reported if the I2C EEPROM is disabled or unrecognizable as a valid sequence. This is consistent with you having JP9 unjumpered or having a corrupted i2c EEPROM. I seem to remember that there is a config byte in the first 9 bytes of EEPROM that defines the clock speed for the 8051. This would have an obvious effect on the Keil monitor in terms of the baud rate used. I think that if the I2C EEPROM is not readable then the 8051 is running twice as slow by default. Try one of the following 1) Try 19200 baud in the ROM monitor settings. or 2) Enable the EEPROM by jumpering JP9 You can read the EEPROM by using the vend_ax example program.
I'm starting to think that the eeprom device is corrupted. I'm very confident I did not attempt to reprogram the EEPROM though!! When I have J9 jumper connected, ( J8 jumper is open ) plug the USB cable into the EZ-USB FX board and then run EzMr.exe I get an error saying No Cypress USB device detected, Windows also states USB Device Not Recognized. The only way I can get the EzMgr.exe to run and recognize the device is to disconnect the eeprom by unjumpering J9. With J9 disconnected, Windows is loading the Cypress EZ-USB( 2235) - EEPROM missing device driver. The VID/PID read in this configuration is idVendor: 0x547 idProduct: 0x2235 Is there anyway to allow me to restore the eeprom on the EZ-USB FX to the factory default without having to remove the eeprom device and reprogram with an external device programmer ? Any thoughts on how to proceed now ?
Hello David, It does sound like the small eeprom has been corrupted. AFAIK the Cypress sample device PID\VID is programmed into the large EEPROM. The driver for this would not be loading the Keil Rom Monitor. You need to reprogram the small EEPROM or at least verify the contents of it. The vend_ax example program that comes supplied with the evaluation board has "Vendor Requests" that will allow you to read\write to the I2C EEPROM. Power the board up as an "EEPROM Missing" device and replace the jumper once the power-up has completed. You should now be able to download the vend_ax program via the Cypress control manager and perform the appropriate requests to view\update the EEPROM contents. The documentation should tell you somewhere what the correct 8 bytes at the start of EEPROM for this device is. I don't remember offhand. Rest assured that it can be recovered without physically removing the device. I'm sure Cypress has an app note somewhere that tells you how to recover from a corrupted (or incorrectly programmed ) EEPROM. I would guess that it is not an uncommon occurrence.
Using the EZ-USB Control Panel, I programmed the eeprom with the image file 2200_48MHz.iic which is the default EZ-USB FX 48MHZ eeprom load. There was a section in the EZ-USB Contents and Tutorial.pdf about the procedure, EZ-USB Developer's Kit EEPROM tutorials. After doing this, I have J9 jumper connected, I unplugged and replugged the USB cable. At least now the device comes up recognized and the green monitor LED is lit indicating the monitor is loaded automatically. The VID\PID looks correct for the ezmon.sys driver to me EZ-USB Control Panel - built 11:31:58 Sep 17 2002 Get PipeInfo Interface Size 16 Device Descriptor: bLength: 18 bDescriptorType: 1 bcdUSB: 272 bDeviceClass: 0xff bDeviceSubClass: 0xff bDeviceProtocol: 0xff bMaxPacketSize0: 0x40 idVendor: 0x547 idProduct: 0x80 bcdDevice: 0x1 iManufacturer: 0x0 iProduct: 0x0 iSerialNumber: 0x0 bNumConfigurations: 0x1 The driver from the Window USB controller now show Cypress EZ-USB Development Board. I still cannot get the Keil Monitor debugger to connect !!! I think I am at least one step closer
I suspect that the baudrates might not be correct now. The Keil ROM monitor will have set-up the 8051 UART assuming a particular core frequency (i.e. 12 MHz, 24 MHz or 48 MHz). If this is now different then you will not be able to communicate at the expected baudrate. Check this.
I'm reviewing the jumper settins section of the EZ-USB Getting Started document. J11 affects the SIO UART Buffers. It the table it shows the default for 1-2,3-4,5-6,7-8. It states these jumpers connect the RS-232 buffers to the SIO port pins. When these pins are used for functions other than serial I/O, the corresponding JP11 jumper should be removed. It further states the default serial debug port is SIO-1, therefore be sure JP11 pins 1-2 and 3-4 have shunts in place when using the default configuration for application debug via the RS-232 serial port. On my board currently all the jumps of JP11 are open. Should pins 1-2,3-4 be connected in order for the serial comm on the debugger to work ? Also, what do they mean by having shunts in place ? I don't want to just connect these blindly if it may cause hardware damage to the board
SUCCESS !!!!! I was able to download and run the Keil debug monitor !!! I connected the 1-2,3-4 pins of JP11 and now the board is behaving as expected. Thanks. During all the trial and error I must have disconnected these jumpers. Thanks again for all your effort in helping me to resolve this problem. Your support has been excellent compared to the support from Cypress in debugging this problem.