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.

TMS320F28379S: Change SCIBOOT mode to use alternate IO

Part Number: TMS320F28379S

How do I configure the part to use the alternate IO configuration (GPIO 28,29) when booting to SCI (GPIO72 = 1, GPIO84 = 0) for flash programming and then boot from flash (GPIO72 = 1, GPIO84 = 1) when powered on thereafter?

  • Dear Andrew,

    Please refer to Section 4.4 entitled: Configuring Boot Mode Pins in the TRM.

    The TRM is available here:  http://www.ti.com/lit/ug/spruhx5f/spruhx5f.pdf

    Cheers!

    Krishna

  • Hi Krishna, thank you for your reply, I appreciate any and all help regarding this matter. My question however relates to how to change the sci port pins that are used for bootloading and subsequently loading the flash. Specifically I'd like to change the default sci_a pins that the bootloader uses in SCI Mode from gpio85 and gpio84 to gpio28 and gpio29. I do see how this is done in the technical reference manual but am unsure if booting will be similar after the change, i.e. will the uC still be able to boot from flash.
    Best Regards,
    Andy
  • Hi Andy,

    Please confirm that you want to do the following:
    1. Use SCI boot mode and then use the SCI port to program FLASH.
    2. You want to change the pins of SCI boot from the default set to an alternate and you know how to do this based on the explanation provided section 4.4 - Configuring boot mode pins in the TRM.
    3. Once the Flash is programmed, you would like to boot from Flash on each subsequent boot.
    4. If the Flash needs to be updated, you would like to boot from SCI again and update the Flash.
    5. Then you want to do Step 3.

    Thanks,
    Krishna
  • Yes, that is correct, thank you for your help Krishna.

    -Andy

  • Hi Andy,

    Thanks! Ok you may consider the following ideas.

    1. Configure the target for SCI boot
    2. Program the application into Flash via SCI
    3. Once the programming is done, launch the application by jumping into the entry point of the application in Flash.

    You may consider developing a simple monitor program that asks a few simple questions.
    Upon startup, the monitor waits for a pre-determined period of time (say 5 secs) for user input
    to see if there is a request for an application update to be made in Flash. If yes, the Flash update
    is started and the application is launched.

    If the answer is “no” or there is no response, the monitor simply launches an existing application
    If there is one programmed in Flash. If there is no application in Flash, it continues to wait in the monitor.
    This is a very simple monitor performing a very simple task.

    You may consider additional ideas for your design. For example, the 5 second startup latency may not be acceptable
    for your system. In this case, once the application is programmed into Flash, you simply launch the application
    immediately on startup. If this option is chosen, then how do you update Flash at a later date? To address
    future updates, the application will need to support accepting a user command by some means to return
    to the monitor because there is a pending flash update.

    Also keep in mind that when programming Flash, you must design the methodology in such a manner that you
    never “brick” :-) the target/product. This means, an error in doing the flash update should not cause a
    permanent failure in your target/product. You should always be able to recover.

    So let us define the potential problem a bit. Let us say that your application cannot afford the 5 sec delay
    In startup and you decide that the monitor will immediately launch the application upon startup.
    You design in the necessary hooks into the application so it knows how to return to the monitor for a
    Potential flash update in the future. Sometime in the future you use this approach and do a flash update.
    Except this time, there is some sort of a problem during the programming ( a power glitch or whatever),
    And the flash update fails during the course of the update. The programming stops and you think it is done
    with the update. You power cycle the target, the application is immediately launched but gets lost part
    way through execution. You cannot command the application to return to the monitor because the
    app is no longer working as designed.

    I will leave it to you to think about ways on how to recover from this type of a problem.

    I hope this feedback is adequate to stimulate thought on how to go about with the design of your system.
    Please do not hesitate to ask if you need further assistance.

    Cheers!
    Krishna
  • Great, thanks for the help Krishna. I was hoping that I missed something in the technical reference and that I could 'simply' change the default sci rx/tx pins using the OTP BOOTCTRL register and that the boot mode behavior would be the same. I guess this is not the case. Have a good weekend!
    Best Regards,
    Andy