Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > Problem of F/W Code Size

Bookmark and Share
Cypress Developer CommunityTM
Forums | Videos | Blogs | Training | Rewards Program | Community Components



Problem of F/W Code Size
Moderator:
RSKV

Post Reply
Follow this topic



Problem of F/W Code Size

jackyccchen posted on 11 May 2010 12:13 AM PST
Member
3 Forum Posts

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~




Re: Problem of F/W Code Size

aasi posted on 12 May 2010 10:42 AM PST
Cypress Employee
1090 Forum Posts

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



Re: Problem of F/W Code Size

jackyccchen posted on 12 May 2010 06:34 PM PST
Member
3 Forum Posts

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



Re: Problem of F/W Code Size

jackyccchen posted on 13 May 2010 10:37 PM PST
Member
3 Forum Posts

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






ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Spec No: None; Sunset Owner: KXP; Secondary Owner: VWA; Sunset Date: 01/01/20