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 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.