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.

CCS/TMS320F28379D: TMS320F28379D Boot Mode Pin configuration

Part Number: TMS320F28379D
Other Parts Discussed in Thread: TMS320F28377S, C2000WARE

Tool/software: Code Composer Studio

hi everyone,

I am using Launchxl 28377s. I read TRM about tms320f28377s and user guide for launchxl8377s and I understood all boot mode configuration types and their settings. But I couldn't find my question's answer actually. In TRM there are 4 different boot mode by default. You can set GPIOs 72-84 pins and you can boot what you selected. And in get/flash mode you can use other boot modes ( SPI , I2C , CAN) through some register settings , right ?

But my question is that can I use other boot modes ( SPI , I2C , CAN ) like default ? In other words, when I set GPIO72-84 pins with 0-1 values, boot mode will be SCI boot mode. But I want to that ,when I set GPIO72-84 pins with 0-1 values, boot mode should be CAN mode or others. Can I do this ? 

Regards,

Adem.

  • Adem,

    No, SPI / I2C / CAN isn't available in default bootmode option. With GPIO72 = GPIO84 = 1, you use CAN bootmode if you program either Z1-BOOTCTRL register for Zone1 (or) Z2-BOOTCTRL register for Zone2.

    For using CANBOOT0,
    Z1-BOOTCTRL register (0x7801E) = 0x0000 075A
    (or)
    Z2-BOOTCTRL register (0x7802E) = 0x0000 075A


    For using CANBOOT1,
    Z1-BOOTCTRL register (0x7801E) = 0x0000 875A
    (or)
    Z2-BOOTCTRL register (0x7802E) = 0x0000 875A

    Note: When you program both Z1-BOOTCTRL register and Z2-BOOTCTRL register, Z1-BOOTCTRL register settings will take precedence.

    Regards,
    Manoj
  • Thanks Manoj, I understood. Is there any way to use CAN bootmode without register setting ? When I develop a secondary bootloader, can I use CAN bootmode like default ? I want to set CAN bootmode with S1 switches only. Is it possible ?
  • Adem,

    Yes, it is possible with custom secondary boot loader. You have use GPIO72 = GPIO84 = 1, which boots to flash if you don't program TI OTP. Once it boots to flash, you can set a condition for custom bootloading (or) just jump to your application project.

    In the below example, it used SCIBOOT1 in custom bootloader. You can modify this example for custom CAN bootloader.

    <C2000Ware>\device_support\f2837xs\examples\cpu1\F2837xS_sci_flash_kernel\cpu01

    Regards,
    Manoj
  • Manoj,

    I have another question. I want to do boot mode selections as the following:
     
    GPIO72 GPIO84 (These are S1 switches on device)    Boot Mode
          1            1      ---------------------------------------------->    Flash
          1            0      ----------------------------------------------->   CAN
          0            1      ----------------------------------------------->   SPI (or I2C , USB)

          0            0      ----------------------------------------------->   Wait 

    Can I do all these configurations with Z-OTP-BOOTCTRL registers ?

    ( It doesn't matter where they are. CAN may be with GPIO72-0 GPIO84-0.) Clearly, I want to use CAN (or I2c,USB) mdoes with GPIO72-1 GPIO84-0  or GPIO72-0 GPIO84-0, but not GPIO72-1 GPIO84-1. Is there any way to do this ?

    Thanks !   

  • Adem,

    Sorry, you don't have a way change boot mode selections like what you have shown.

    If you plan to use CAN boot, you have either change Z-OTP-BOOTCTRL register (or) write custom bootloader. But, you are stuck with using GPIO72 = GPIO84 = 1 for either case.

    Regards,
    Manoj
  • Ok, thanks !

    Best Regards
  • Hi Manoj ,

    I work to develop a custom CAN bootloader and I refer to your suggested example. But, I can't modify it for custom CAN bootloader. Could you give some more advices ?

    Regards
  • Adem,

    This is new request. Please open a new thread. Also, please elaborate on the problem you are facing.

    Regards,
    Manoj

  • Manoj,

    I want to know that my understanding is true or not. When I develop a custom bootloader, I can program the flash again. But If I change Z-OTP-BOOTCTRL register settings, I can't program it again, right. It's a difference between writing custom bootloader and changing OTP register settings, right?

    Regards.

  • Adem,

    Programming OTP (BOOTCTRL registers) and having GPIO72 = GPIO84 = 1 will just helps you to do different CAN boot option as shown below. It doesn't program flash by itself. It will help you to load any hex code to RAM location.

    For using CANBOOT0,
    Z1-BOOTCTRL register (0x7801E) = 0x0000 075A
    (or)
    Z2-BOOTCTRL register (0x7802E) = 0x0000 075A


    For using CANBOOT1,
    Z1-BOOTCTRL register (0x7801E) = 0x0000 875A
    (or)
    Z2-BOOTCTRL register (0x7802E) = 0x0000 875A

    Custom bootloader is generally written in one of flash sectors which gets executed on powerup. Custom bootloader looks for a specific signature signal / data on power up and decide whether to update the application code and just jump to existing application code and execute it.

    Regards,
    Manoj