Problem of F/W Code Size

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

cross mob
Anonymous
Not applicable

Dear All,

   

  I have a problem about F/W code size. I use CY7C68013A and it has 16KB RAM. EEPROM is 24LC128 and its size is 16KB. When F/W code size is smaller than 8KB, everything is ok. When F/W code size is over 8KB, I use following command to generate iic file :

   

Hex2bix -V 0x04CA -P 0xAF10 -M 0x4000 -I -F 0xc2 -O AtPDCMFw.iic AtPDCMFw.hex

   

  After I download iic file by CyConsole, the device appears as "Unknown USB device". But if I download hex file directly, the device is ok. What is the problem? Thanks~

0 Likes
3 Replies
Anonymous
Not applicable

The issue looks a little confusing. You should be seeing this only if you are using FX2 or earlier of the EZ-USB family. If the hex file works then the iic file is bound to work.

   

Is it possible to attach the hex file and iic file here???

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Dear Sir,

   

  Thanks for your reply. The attached zip file includes hex and iic file. I use following command to convert hex file to iic file :

   

C:\Cypress\USB\bin\Hex2bix -V 0x04CA -P 0xAF10 -M 0x4000 -I -F 0xc2 -O AtPDCMFw.iic AtPDCMFw.hex

   

  I read EEPROM data by Genius NSP program and check with iic file. They are the same. So the data downloaded to EEPROM is correct. Is it possible that iic file is wrong? Thanks!!

0 Likes
Anonymous
Not applicable

Dear Sir,

   

  My problem is solved! To generate over-8KB F/W code, I duplicate the code of ISR_Sudav like following:

   

void ISR_Sudav(void) interrupt 0
{
   GotSUD = TRUE;            // Set flag
   EZUSB_IRQ_CLEAR();
   USBIRQ = bmSUDAV;         // Clear SUDAV IRQ
   GotSUD = TRUE;            // Set flag
   EZUSB_IRQ_CLEAR();
   USBIRQ = bmSUDAV;         // Clear SUDAV IRQ
   GotSUD = TRUE;            // Set flag
   EZUSB_IRQ_CLEAR();
   USBIRQ = bmSUDAV;         // Clear SUDAV IRQ
   GotSUD = TRUE;            // Set flag
   EZUSB_IRQ_CLEAR();
   USBIRQ = bmSUDAV;         // Clear SUDAV IRQ
}
 

   

  This is the reason EEPROM does not work.

   

  Thanks for your help!!!

0 Likes