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.

TMS320F28377D: SCI, I2C and Flash boot modes

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Hello,

I'm new on using F28377d and I'm designing a control card with it. We are used to have several boot modes as in F28335 (with 4 pins switch), so we would like to keep this options with F28337D. We are interested in have SCI, I2C and Flash boot mode (Flash boot mode in stand-alone). Reading SPRUHM8F I understand the following:

1. We must have only a 2-pin swith, that is only 4 boot modes: Parallel IO, SCI, Wait, Get/Flash. Am I right?

2. If I want SCI boot mode option 0 (default) to affect CPU1 and CPU2, I must use GPIO84 and GPIO85 for SCI-A, so my boot mode selection pins cannot be the default ones (GPIO84 and GPIO72). I can change these boot mode pins by using BOOTCTRL Register writing on OTP.  SCI boot mode will be possible when boot mode pins will be 01. Am I right?

3. If I want I2C boot mode option 0 to affect CPU1 and CPU2 I need I must use GPIO91 and GPIO92.  I2C boot mode will be possible when boot mode pins are in Get/Flash mode (11) and BOOTCTRL is configured with BMODE = 0X05 on CPU1. I want this option for stand-alone applications to program flash memory from an external EEPROM, for instance. What happens with CPU2 and I2C boot mode? How do I have to configure BMODE register on CPU2? 

4. If I have configured I2C in get/flash mode (mentioned above),  how can I have Flash boot mode in stand-alone applications? 

5. What is Wait boot mode?

Thank you very much.

Maite

  • Maite

    1. Yes, you are correct, only 2 pins.
    2. Yes, you can change the boot mode select pins in BOOTCTRL and SCI is selected when 01. You can use emulation flow to test writing these values before using OTP.
    3. Yes, you set 0x05 in BOOTCTRL. You use IPC command from your CPU1 application to boot CPU2 and set the boot mode. Refer to the F2837xD dual core examples in C2000Ware on how this is done.
    4. In I2C boot, it checks for a data header, if the value is incorrect, it will branch to the flash entry point. The boot source is in C2000Ware if you want to look through it.
    5. Wait boot is just a infinite loop that boot enters. This is best used to avoid JTAG complications. Read more in the TRM ( http://www.ti.com/lit/spruhm8 )

    Best regards
    Chris
  • One thing to note:
    In SCI boot mode, GPIO84 is being used as SCI-TX.  If the C2000 device is the only driving source for the net, then you may not need to generate a workaround.  A pull resistor on GPIO84 will be adequate to pull the pin high or low early in the boot process (which is when the GPIO state is queried).  After the pin is queried it can then be used as desired (and gets used, in this way, as the default SCI-TX pin when doing bootloading).

    -Brett