This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C5535 booting from I2C

Other Parts Discussed in Thread: TMS320C5535

Hello,

I am using TMS320C5535 DSP and 24AA1025T, 128 Kbytes (1024K I2C Serial EEPROM ) with slave address Read/Write Address : '1010000R/W' , schematics is as shown below diagram.

After converting my projects "out" file to binary using hex55 tool I could successfuly flashed EEPROM by using programmer_C5515_EVM.out through CCS.

BUT, the device is not booting from I2C EEPROM. Can somebody help me to address this issue.

Regards,

Rajaram

  •  

     Mr. Lakade,

     Your circuit looks correct.

     You should read and understand the bootloader document, SPRABL7A, and also the 'Boot Sequence' section of the C5535 datasheet.

    Using a hex editor, make sure your binary image starts with the boot signiture 0x09AA.

    Make sure your image is less than 64kB in size.

    Other than that, use a logic analyzer to inspect SDA and SCL and make sure the data is what you expect.

    Regards,

    Bill

     

     

     

     

     

     

  • Thanks Bill.

    My program code is more than 64K. Is this means I2C EEPROM can not be used for code size more than 64K?

    Size may be going beyond 64K because of declaration of global  memory.   Is there any way to reduce memory size below 64K.

    Regards,

    Rajaram

  • Rajaram,

    Although I did not find that explicitly stated in the datasheet, it was the case for the C5515 and other processors, so I would assume it to still be the case here.  Basically the bootloader assumes all the code is stored on one device, which traditionally has a maximum size of 64k (because of 16-bit addressing).  The part you use essentially contains two devices glued together into one package.

    To reduce the code size below 64k, you must either better optimize your code so it takes less space, or reduce the number of initialized variables.  The latter is often easier; are there a lot of data that can be generated at run-time, like twiddle tables for FFT, etc?

    Start by looking at your map file and seeing where the bloat lies.

    Regards,

    Bill