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.

24-Bit SPI Serial Flash programmer.out for C5515 DSP

Other Parts Discussed in Thread: TMS320C5515

Hi,

I'm Designing a board using TMS320C5515 DSP where in I'm planning to use 24 Bit SPI serial Flash to load my application program and boot from it. Is there a programmer available using which I can program the 24 bit SPI flash. The available programmer for C5515 EVM doesn't have the 24 Bit SPI programming functionality. I have tried different programmers like C5535 eZDSP etc but to no avail.

To test this feature I have replaced the SPI EEPROM on the C5515EVM board with a dropin replacement SPI Flash from Spansion.

Regards

Supreeth

  • Supreeth,

    Which programmer did you look at?

    I'm not sure if you are referring to the programmer at:

    C55XCSL-LOWPOWER\c55_csl_3.04\c55xx_csl\ccs_v5.0_examples\programmer

    This particular programmer does 16-bit addressing if you are using the C5515 EVM as defined in programmer.c. However, if you follow the code in spi_eeprom.c you will see that there is some logic looking for 16 or 24 bit addressing. You should take a look and step through this code to see if it offers some guidance in getting it to work with 24-bit addressing. Also note that 24-bit SPI encrypted boot is NOT supported.

      /* Create the command to be sent to the eeprom */
       if(sixteenbitdevice){	// 16-bit SPI device
          commandbuffer[0] = SPI_EEPROM_READ;
          commandbuffer[1] = byte_address >> 8;
          commandbuffer[2] = byte_address & 0xFF;
       }
       else {	// 24-bit SPI device
          commandbuffer[0] = SPI_EEPROM_READ;
          commandbuffer[1] = byte_address >> 16;
          commandbuffer[2] = (byte_address >> 8) & 0xFF;
          commandbuffer[3] = byte_address & 0xFF;
       }

    Also some e2e threads that may help.

    https://e2e.ti.com/support/dsp/c5000/f/109/t/138477 

    https://e2e.ti.com/support/dsp/c5000/f/109/t/96045 

    https://e2e.ti.com/support/dsp/c5000/f/109/p/68376/334178#334178 

    Lali

  • Hi Lali,

    Pls Note: I have replaced CAT25C256K SPI EEPROM on C5515EVM with SST25VF016B SPI Flash from Microchip to test the SPI flash boot functionality. Also I'm planning to finally use S25FL116K flash from Spansion since the microchip one is not recommended for new designs..

    Below listed are a few programmers I have tried.

    1. EVM_Sample (from Spectrum digital example code)

    2. programmer_c5515evm_ccs4 from Google code (https://code.google.com/archive/p/c5505-ezdsp/downloads)

    3.  programmer_C5535_eZdsp (Someone recommended this on a community thread)

    I did try programming with C55XCSL-LOWPOWER\c55_csl_3.03\c55xx_csl\ccs_v5.0_examples\programmer and C55XCSL-LOWPOWER\c55_csl_3.04\c55xx_csl\ccs_v5.0_examples\programmer, both producing same results (see below).

    SPI FlashTest:

    Choose the device...

    1x - NAND Flash [CSx: 2,3,4,5]

    2x - NOR Flash [CSx: 2,3,4,5]

    4 - IIC EEPROM

    5 - MMC

    6 - SD

    7x - SPI Serial Flash (24 bit address) [PinMap x: 1=MODE5,2=MODE6]

    8 - MCSPI Serial Flash

    71

    SPI Serial Flash...

    SPI Flash ID is: 0xbf, 0x41, 0x0, 0x0

    ERROR: Invalid programming choice

    SPI EEPROM Test:

    Choose the device...

    1x - NAND Flash [CSx: 2,3,4,5]

    2x - NOR Flash [CSx: 2,3,4,5]

    4 - IIC EEPROM

    5 - MMC

    6 - SD

    7x - SPI Serial Flash (24 bit address) [PinMap x: 1=MODE5,2=MODE6]

    8 - MCSPI Serial Flash

    3

    ChipSelect [1=EVM,2=USB Stick]?

    1

    Operation to perform...

    1<file> - Program device with <file>

    2<file> - Read device data to output <file>

    1E:\Test\EVM_Sample.bin

    SPI EEPROM...

    Writing data to device...

    Opening E:\Vuon\EVM_Sample.bin...

    Input file opened

    WRITE ERROR! at 0x0

    Wrote 0x09aa  Read 0x0009

    My question:

    1. Am I using the right SPI Flash chip.

    2. Do I have to modify the programmer source code to make it work.

    3. Why is there no reliable solution for this issue. (I have referred all the threads you have listed, none providing a workable solution)

    Regards,

    Supreeth