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.

TMS320F28069: Bootloader Questions

Part Number: TMS320F28069
Other Parts Discussed in Thread: C2000WARE

I am trying to write a Bootloader program for the Piccolo micro controller, specifically TMS320F28069PZPS, and I have some questions.

All info I am getting from THIS (Piccolo Technical Reference Guide) document.

When using BootMode: SCI, can I use RS-485? Additionally, Can I use SCI-B instead of SCI-A for the communication port?

Can any GPIO pins be used to determine the BootMode or does it have to be GPIO37 (TDO) and GPIO34?

Also is there any prewritten code anywhere that I can use a reference/guide?

  • Dear Matthew,

    Please see answers to your questions below:

    >>Also is there any prewritten code anywhere that I can use a reference/guide?

     You may download the latest C2000Ware from here:http://www.ti.com/tool/c2000ware?jktype=recommendedresults 

    and reference the Quickstart Guide.  You can look at the ROM source as a reference.  For example, \C2000Ware_1_00_06_00\libraries\boot_rom\f2806x\v1_1\rom_sources

    >>When using BootMode: SCI, can I use RS-485? 

    Yes

    >>Can I use SCI-B instead of SCI-A for the communication port?

    No.  The GPIO boot configuration directs the serial boot to SCI-A, if the pins are configured for SCI boot.

    >>Can any GPIO pins be used to determine the BootMode or does it have to be GPIO37 (TDO) and GPIO34?

    No.  The GPIO pins specified in the TRM are the ones that must be used. 

    Please let us know if we can be of further assistance. 

    Cheers!

    Krishna

  • Krishna,

    Thank you for the quick reply.

    If I were to modify the TRM file would I be able to change the GPIO pins for the bootload or the SCI-x channel?
  • Hi Matthew,

    Can you please elaborate on what you mean by modifying the TRM file? I don't understand what you mean by that.

    On Piccolo, the GPIO pins that configure the bootmode are fixed and not configurable. In some newer devices, this could be configurable.
    The SCI channel is not configurable at all and will always default to port A, if SCI boot is selected.

    Cheers!
    Krishna
  • What I mean is can I modify the Bootload code to change the GPIO pins or the SCI port. The way I read the technical document it seems like it may be configurable. But you seem to be sure it is not. 

    Thank you for the information.

  • Hi Matthew, 

    Please point me to the place in the TRM where you get the impression that the boot mode pins are configurable and I will follow up on it and get back to you. 

    Cheers!

    Krishna

  • Page 202: "If the device is in stand-alone boot mode, then the state of two GPIO pins are used to determine which
    boot mode execute."
    Page 204: "Each GPIO pin has an internal pullup resistor that can be enabled or disabled in software. The pins that
    are read by the boot mode selection code to determine the boot mode selection have pull-ups enabled
    after reset by default."
    Page 205: "The
    states of TRST and two GPIO pins are used to determine the desired boot mode as shown in Table 2-4."

    Based on the above sections I feel like the GPIO pin could be configurable.
    If you choose to dig deeper into this can you please double check that SCI-A is the only SCI option available for the bootloader?

    Thanks,
    Matt
  • Hi Matthew,

    Thanks for the TRM references...please see my comments below:
    >>Page 202: "If the device is in stand-alone boot mode, then the state of two GPIO pins are used to determine which
    >>boot mode execute."
    This section is essentially describing the details about standalone boot mode. Standalone simply means that the target is on its own with all the umbilicals removed. nTRST=0, means that the debugger is not connected. On power up, the target relies on the boot mode pins described in Table 2-4. I stand corrected on the OTP availability on this device. While you cannot change which GPIO pins you would use for boot mode detection, you can configure both pins to HIGH and change the boot mode. See Table 2-5 The first four in this table are the standard boot modes available using the two boot mode pins. SCI boot is still SCI-A.
    >>Page 204: "Each GPIO pin has an internal pullup resistor that can be enabled or disabled in software. The pins that
    >>are read by the boot mode selection code to determine the boot mode selection have pull-ups enabled
    >>after reset by default."
    This is just a general comment on how the GPIOs are configured. While it does not call out the exact boot mode pins, that detail is present in Table 2-4.
    >>Page 205: "The
    >>states of TRST and two GPIO pins are used to determine the desired boot mode as shown in Table 2-4."
    Here the TRM is just highlighting that nTRST = 0 means standalone boot and nTRST=1 is emulation boot.

    Hope this helps.

    Thanks,
    Krishna
  • Thank you for the clarification.

    I have a question to confirm that I am understanding the TRM correctly.

    Clarification of TRM Example 2-3:
    By using this approach, it should be possible to send a command through SCI to the Piccolo that would set GPIO 34 = 1 and GPIO 37 = 0 then initiate a POR to enter the SCI_BOOT mode, correct?
  • Matthew,
    Please send us the complete sequence that you would like to use and we can review it.
    Cheers!
    Krishna
  • I have not started to write the actual code but the sequence is as follows:
    Sequence:
    1) MCU is in normal operating mode; running code
    2) Using SCI-A, send a command using RS-485 to MCU
    3) MCU saves command from the receive register to an array and then interprets the information
    4) Upon interpreting the command, the MCU set GPIO34 = 1 and GPIO37 = 0 and then initiates a POR
    5) Upon reset, MCU should enter Bootload Mode SCI_BOOT
  • How are the boot mode pins configured prior to step 1?
    In step 4, is it only a POR or could it also be a power cycle? (OFF then ON)?
  • Hi Matthew, 

    Sorry this slipped through the cracks...I thought I had asked the following...but missed doing so..

    In your 1) step above, what is the boot mode configuration prior to the MCU running in normal mode.

    Thanks,

    Krishna 

  • Hi Matthew,
    Are you still facing any issue ? i didnt see any activity for many days.

    Regards
    Baskaran
  • Hi Matthew, 

    Apologies...but it looks like this thread did not get attention for a while now.  Have you been able to resolve your issue. 

    If not, please let me know in step 1 above where you have stated MCU is in normal operating mode; running code, which boot mode is the target configured for at startup. 

    Regards,

    Krishna

  • Hi Matthew, 

    Apologies...but it looks like this thread did not get attention for a while now.  Have you been able to resolve your issue? 

    I will close this now.  Please re-open, if you still need help. 

    Regards,

    Krishna