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.

SCI Boot Loading TMS320F28335 - Boot ROM Memory Assigning

Other Parts Discussed in Thread: TMS320F28335, CONTROLSUITE, MAX232, MAX3221

Hai all,

I am working with TMS320F28335 Peripheral Explorer Board and I have configured the GPIO's 84, 85, 86, 87 to select Boot mode through SCI-A.

I am using c2prog tool to download the code into the flash location.

To down load the code to flash we need  Boot Mode code where we configure the SCI-A port driver.How to configure the memory location to Jump the code to Boot Mode memory. Please help in resolving this issue.

Please Provide some Application notes or code examples for Boot Loading through SCI-A.

Thankyou,

Lakshmi.

  • Hi Lakshmi,

    Something isn't making sense.

    At boot up the C2000 device will look at the boot pins and depending on the state of these pins, it will attempt to boot from that given peripheral.  If you've configured the boot pins such that the device is in Boot-to-SCI mode then C2Prog will be able to connect to the device and will flash the output file you've given it into the device.  Nothing else is needed - no boot code, etc.

    However, if your intent is to try to boot from SCI without using C2Prog then you'd need more information.  If this is your intent, then the following guide may help.  This appnote was written for an older device but it outlines the general procedure.  The BootROM code in the F28335 device can also be looked at and can be found in controlSUITE:
    http://www.ti.com/lit/spraaq2


    Thank you,
    Brett

  • Thankyou Brett.

    My intention is to boot from SCI itself.

    I will refer the suggested document and try to follow the procedure.

     

    Regards,

    Komali.

  •      Hi Breet

     We are using "TMS320F28335 Peripheral Explorer" Evaluation Board.
    We are trying to establish SCI Boot Loading in order to avoid JTAG and USB Emulation in our application.

    We have downloaded "C2Prog" from "codeskin" for SCI Boot Loading.
    The settings we have followed is 'attachment 1':



    When We tried to program with Boot mode pins(GPIO84=0, GPIO85=86=87=1 ) set to SCI-Boot Mode, we are getting the following issue:
    1. Connected SCI port of Board from Max232 to PC through DB9 connector.
    • DB9 Tx - Eval Board Rx
    • DB9 Rx - Eval Board Tx
    • DB9 GND - Eval Board GND - In this case we are getting 'attachment 2' saying
                       

    And this is happening only with SCI Boot loading as we have verified loading with JTAG and got the expected output.

    We referred the FAQs in Codeskin.com and didn't get any information on this.

    Please support us to resolve the issue as soon as possible. 

    Lakshmi

  • Lakshmi,

    OK.  I think I understand, but to verify:
    1) you plan to use C2Prog to program the F28335 device via SCI
    2) you are using the Peripheral Explorer kit
    3) there are two paths to the SCI pins of the C2000 MCU.  You want to use the path that goes through the MAX3221 on the controlCARD.  You are connecting to J12 on the Peripheral Explorer to try this.
    4) Bootloading over SCI is not working.  The code however is known to work since this code can be programmed via JTAG correctly.

    ---

    A few questions:
    1) On the controlCARD, can you make sure that SW1 is put in the 'ON' position?
    2) On the Peripheral Explorer board, can you make sure that [M1]-J8 is not jumpered? 
    (these 2 steps will make sure that the SCI via MAX3221 path is fully connected and free of contention)
    3) I assume that you are setting the boot mode by configuring the controlCARD's SW2 appropriately, correct? 
    4) If the above doesn't help, what revision controlCARD and what revision of Peripheral Explorer board are you using?


    Thank you,
    Brett

  • Hai Brett,

    Thankyou for your time.

    1) On the controlCARD, can you make sure that SW1 is put in the 'ON' position?

    Yes it is ON position.

    2) On the Peripheral Explorer board, can you make sure that [M1]-J8 is not jumpered?

    On the Peripheral Explorer board, [M1]-J3 is not jumpered which is Boot to SCI-A Jumper as the Peripheral Board schematics/datasheets. J8 is not available with this version of board.

    3) I assume that you are setting the boot mode by configuring the controlCard's SW2 appropriately, correct?

    I have set to GPIO84 = 0, GPIO85 = 86 = 87 = 0.

    4) If the above doesn't help, what revision controlCARD and what revision of Peripheral Explorer board are you using?

    TMS320F28335 Peripheral Explorer Board with F28335 Control card release 2.2.

     

    The problem is solved now. It is working fine with a USB to RS232 connector, we are able to boot to flash. Earlier I was using my PC(Windows XP) COM Port, Bootloading fails with that. Anyway I am not sure with the reason.

    But the problem here is during Boot load we have to 'Set GPIO84 to Low' and RESET the Controller. After Booting, again we have to 'Set GPIO84 to High' and RESET the Controller to make the code Run.

    Our requirement isn't supporting to change the switch that is changing the hardware.

    Please suggest if any other method is there for this to work without changing the hardware?

    Thankyou,

    Lakshmi.

  • Hi Lakshmi,

    One way to do this is to call the Boot-from-SCI function in the bootROM whenever you expect to update. 

    Another option is to boot from OTP.  You'd then program some code into OTP which will allow you either jump to the SCI bootloader or into FLASH depending on whatever smarts you wish to put in.  This option would still require a system reset, but at least you wouldn't have to deal with the pin issue.

    I'd take a look at this thread:
    http://e2e.ti.com/support/microcontrollers/c2000/f/171/p/244450/864118.aspx


    Thank you,
    Brett

  • Hi Brett,

                   Thankyou for your time.

    "One way to do this is to call the Boot-from-SCI function in the bootROM whenever you expect to update."

    I am little confused here..

    1. How we will decide when it is expected to update, then call the Boot-from-SCI function in the bootROM?
    2. Where do I to call the Boot-from-SCI function? 

    Please help me with some examples.

    Thankyou,

    Lakshmi.

  • Lakshmi,

    lakshmi komali said:
    • How we will decide when it is expected to update, then call the Boot-from-SCI function in the bootROM?
    • Where do I to call the Boot-from-SCI function? 

    it is up to the customer application to decide when to update. there are two things here, one is to decide when to update and other is how to update it. We can suggest some possible solutions on how to update but when to update is completely product dependent.

    Usually the host or a person trying to update the Firmware on the device will have the ability to reset the device and toggle some pins. So when the decision to update the firmware on the device is made if the HOST or the PROGRAMMER can reset the device and set the boot mode pins to boot to SCI and when done if it can reset the device and reset the boot mode pin to boot to FLASH then that will work.

    or as Brett suggested, you can allways leave the boot mode pins to boot to flash and let the application call in to the SCI loader  based on a pin status (FW upgrade signal). The ROM source code for your device should be available in control Suite C:\ti\controlSUITE\libs\utilities\boot_rom. You can load symbols from the provided OUT files and do source level debug (you don't have to rebuild the ROM project, but just load symbols) .

    Best Regards

    Santosh Athuru