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.

C5515 USB Boot Errata

Other Parts Discussed in Thread: TMS320C5515

Hi,

 

Based on the C5515 Silicon Errata, http://focus.ti.com/lit/er/sprz308a/sprz308a.pdf  in advisory 2.0.9 named "USB Boot Does Not Work if the On-Chip USB_LDO Supplies Power to the USB Core" it is specified this as a workaround  "For the applications that require USB boot, the USB Core (USB_VDD1P3, USB_VDDA1P3) must be powered externally".

My question, is this the only Core that should be powered directly from an external LDO or is it there anything else additionally for another Core, that is required to be powered externally in order to have succesful USB Boot?

Is the USB LDO the only LDO that is left out from the bootloader or are there more integrated LDO's that been left out not enabled and more Cores are required to be powered externally in order to perform USB Boot?

Are the ANA_LDO and DSP_LDO powered properly from the C5515 bootloader during the USB boot process or should we power the relevant Cores externally too?

 

Christos

 

  • Christos,

    The C5515 has several power domains and all of the power domains should be powered properly.  

    - If you use the DSP_LDO to power the DSP Core (CVDD), DSP_LDO is enabled by the DSP_LDO_EN pin by pulling it down or connecting it to GND directly. 

    - ANA_LDO is always enabled at reset. 

    - USB_LDO should be 

    - DVDDRTC should be powered externally

    - DVDDIO  should be powered externally

    - DVDDEMIF should be powered externally if EMIF is being used, otherwise, it should be grounded. 

     

    Regards,

    Peter Chung

     

     

  • Hi Peter,

     

    Thank you for the answer.

     

    Yep, I just finished some re-wiring on our design and the C5515 presented itself  on the USB bus giving me the following descriptor, I guess the "TMSC5505" string is hardcoded in C5515 ROM too so that is why it gets reported here.

     

    Device Descriptor:
    bcdUSB:             0x0200
    bDeviceClass:         0x00
    bDeviceSubClass:      0x00
    bDeviceProtocol:      0x00
    bMaxPacketSize0:      0x40 (64)
    idVendor:           0x0451 (Texas Instruments)
    idProduct:          0x9010
    bcdDevice:          0x0000
    iManufacturer:        0x01
    0x0409: "Texas Instruments"
    iProduct:             0x02
    0x0409: "TMSC5505"
    iSerialNumber:        0x03
    0x0409: "0000320"
    bNumConfigurations:   0x01

    ConnectionStatus: DeviceConnected
    Current Config Value: 0x00
    Device Bus Speed:     High
    Device Address:       0x01
    Open Pipes:              0

    Configuration Descriptor:
    wTotalLength:       0x0020
    bNumInterfaces:       0x01
    bConfigurationValue:  0x01
    iConfiguration:       0x00
    bmAttributes:         0xA0 (Bus Powered Remote Wakeup)
    MaxPower:             0x00 (0 mA)

    Interface Descriptor:
    bInterfaceNumber:     0x00
    bAlternateSetting:    0x00
    bNumEndpoints:        0x02
    bInterfaceClass:      0x00
    bInterfaceSubClass:   0x00
    bInterfaceProtocol:   0x00
    iInterface:           0x00

    Endpoint Descriptor:
    bEndpointAddress:     0x81  IN
    Transfer Type:        Bulk
    wMaxPacketSize:     0x0040 (64)
    bInterval:            0x00

    Endpoint Descriptor:
    bEndpointAddress:     0x01  OUT
    Transfer Type:        Bulk
    wMaxPacketSize:     0x0040 (64)
    bInterval:            0x00

     

     

    Thanks again,

    Christos

     

  •  

    Hi Christos,

     

    I am trying to boot a program using the USB on the TMS320C5515 eZDSP board, and I have already obtained the secureBootImageTool, but now I don't know how to go on.

    What I am doing is checking the usb port for the id's that appears on SPRABD7 document. (0x0451 and 0x9010), but without any success.

    I have loaded a not-valid image in the NOR flash to not load the image from there and checks the rest of the devices, but those id's are not recognized.

     

    Do i have to do something more at the beginning? Do I have to write also a code in the DSP?

     

    Probably you have seen that I asked to Steve Tsang about the same problem in another thread, and he can not send me the program to do it.

     

    Thank you.

    Regards,

    Alvaro.

     

     

  • Hi Alvaro,

     

    You have to review the C5515 errata as I mention in my initial post.

    For USB boot, the USB core needs external voltage and not via the USB LDO.

    Check the ezdsp schematics.

     

    Regards,

    Christos

     

  • Hi Christos,

     

    first of all, thank you for answering so fast.

     

    I have checked the schematics given by Spectrum Digital, and I saw there is a common point  (USB_LDO_OUT) that supplies both (USB_VDDA1P3 and USB_VDD1P3) pins. But I still don't understand if it is a software issue, i mean, configurating the power registers corectly or I should supply the voltage using a wire to some pins on the board. In that case, where are those pins?? Are the GND and VBUS pins situated next to the usb-mini connector?

    Now the power is being supplied by the JTAG USB port. Should I power the board by the mini usb connector?? I now that according to the "usbstk5515 technical reference revison A" document the jumper JP1 must be shorted to do that. Is this relevant for the bootloading??

     

    Thanks.

    Regards,

    Alvaro.

  • Hi Alvaro,

     

    The board used and discussed here in this thread, is a design and manufacture of our own and we have the versatility on the pcb to perform the re-wiring according to the errata and it is working ok for us.

     

    Regards,

    Christos

     

     

  •  

    Christos,

     

    I finally found some points to supply the voltage, and now it is recognized by my PC with Linux. Windows at the beginning did not recognize it, so I had to download the trial version  of  WinDriver, and now I can interface with the bootloader feature.

    I have created a simple program that waits for the device bootloader id's, and whenever they are found, sends the data of the secureimage file previoulsy created. I do it by the endpoint 1, and with a transfer size of 1 packet, and when there is no data, it closes the communication with the board.

    Apparently It sends all the data succesfully, but then nothing happens. I tried to boot a secure image created from the "uled" test from Spectrum Digital.

    I tried with the three possibilities of secure image, but no one works.

     

    I also have a usb_boot.exe file, but I don't know how it works. Just a command window is oppened when I execute it and then is closed so fast.

     

    Does the usb_boot work like that?? Could be a problem of the creation of the secure image?? For the moment I fill all the fields with "0".

     

    Thank you for all.

    Regards,

    Alvaro.