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.

Bootloader issue BZWTA3 vs EZWTA3

Hi,

We have been told by our PCB supplier that we have replace on our product the TMS3206748BZWTA3 (Retired) with the TMS320C6748EZWTA3.

TI replacement codes is "S" which means "Exact equivalent and parametrically to the compared device".

We received few PCB samples from our supplier with the EZWTA3 . Using the same exact firmware they dont boot. We've been guarranteed by our supplier that the only difference is the DSP. We are a bit shocked since there should be no difference according to the replacement notes from TI.

Our device is using the bootmode [7:0] 0x0A which is the SPI0 Flash boot mode. At startup, on the other side (device containing the flash program) I can see that the communication is not started; the SPI buffer is not sent. Is it possible that something finally change in the SPI interface of this new DSP?

Please could you tell me what I can double check on the DSP or give me some directions?

thank you,

Eric

  • Hi Eric,

    Would you please let us know which method you followed to flash the programs into SPI memory??

    Is it through serial flashing utility or through SPI writer using CCS? 

    Eric said:
    Please could you tell me what I can double check on the DSP or give me some directions?

    Try to boot a small LED blink example using those two DSPs from SPI flash.

     

    Would you please run any working demo example code ( picked up from C6748 starterware package and modified for your custom board) on both the DSP using CCS? In this way you can confirm whether the DSP is functioning properly.

    Run the C6748 ( debug ) gel file on both the DSPs and check whether any difference.

     

  • Hi Shankari,

    On our board we have a dsPIC33 connected to the DSP's SPI, Reset and BOOT pins. At startup the dsPIC holds the DSP's RESET and set the BOOTPI to 0x0A. The dsPIC contains the AIS program which is transfer by the SPI communication. Once the transfer is completed the dsPIC release the DSP's RESET pin.

    Meanwhile I made some tests, I reprogrammed the DSPIC to set the BOOTMODE to 0x00 (no boot) and also release the DSP's RESET pin. After that I was able to use the JTAG port of the DSP to debug with CSS. The main program was running fine.

    At the moment the only regression I got with this new DSP is the SPI communication during the boot. The first packets seem to be not sent by the dsPIC (SPI Slave Mode). The problem is that only the DSP changed on this new revision of the board the dsPIC remained the same. 

    Eric

  • Hello again,

    As I said we got a regression at boot-time only with the new DSP. I would need more information about the SPI protocol used during SPI Flash bootmode (0x0A).

    The only information I found about this protocol is in spraat2f.pdf chapter 9.4. 

    Could you provide exhaustive details and specification on the signals of the SPI communication and the logic of the DSP?

    For example : What are the DSP tolerances for an answer from the slave device? could it starts the data transfer as soon as the command 0x03 is received? Or it needs to read also the following 16 bits address. Is there a timeout if the slave does not answer in time? What are the  other command the slave could receive?

    thanks,

    Eric

  • Hi Shankari,

    I am able to run and debug our main program by using the JTAG port so to me there is no need to run the blinking led program. I am able to control a robot...

    I ran the Debug gel file script after the boot and I got the following ouput :

    C674X_0: GEL Output: ---------------------------------------------
    C674X_0: GEL Output: | BOOTROM Info |
    C674X_0: GEL Output: ---------------------------------------------
    C674X_0: GEL Output: ROM ID: d800k008
    C674X_0: GEL Output: Silicon Revision 2.1
    C674X_0: GEL Output: Boot pins: 10
    C674X_0: GEL Output: Boot Mode: SPI0 Flash
    C674X_0: GEL Output:
    ROM Status Code: 0x0000000A
    Description:C674X_0: GEL Output: Invalid AIS sync opcode
    C674X_0: GEL Output:
    Program Counter (PC) = 0x80000EC0
    C674X_0: GEL Output:


    Using a logic analyser and debugging the dsPIC (Slave SPI device containing the flash program) I have been able to identify that it fails after the processing of the 1st command (0x5853590D) :

    1- 0x41504954 <- Magic word
    2- 0x5853590D <- Function Execute Command
    3- 0x00030006 <- ID:3 #OfParameters:6
    4- 0x00180001
    5- 0x00000205
    6- 0x00000095 <- transfer ends up here slave sent it on MISO but Master (DSP) did not sent its 0x03 on MOSI, SPI communcation is stuck
    7- 0x5853590D
    8- 0x00080003
    9- 0x18010001
    10- 0x00000002
    11- 0x000000C4
    ..... ...... ......

    I looked at the documentation (www.ti.com/.../spraat2f.pdf) in this document, for the command 0x5853590D it is specified that the function ID# 3 should have 8 parameters and NOT 6 parameters as the generated AIS program we got. I am thinking this could be what is causing the DSP to not complete the bootsequence.

    I found that BZWTA3 vs EZWTA3 have different ROM versions (d800k006 vs d800k008). I tried to generate a new AIS program setting the device type to d800k008 and it still fails. I compared the AIS program I generated for d800k006 and d800k008 and they both start with the same first commands (line 1- to 6-).

    I am using AIS-Gen version 1.13 to generate the flash program.

    thanks,
    Eric
  • Refer to this post :

    e2e.ti.com/.../489602

    SPI transfer solve by using default setting in AISGen
  • Hi Eric,
    Glad to hear that you were able to solve the problem.
    Thanks for your update.