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.

TMS320F2800157: Zero Pin Boot for Universal MotorController Lab

Part Number: TMS320F2800157
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

Hi,

I am using TMS320F2800157 to run the Universal MotorController Lab and the PCB we created is using GPIO 24 and 32 for other peripherals. 

My goal is to run the code on Flash with zero boot pin mode. I checked the forums https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1247072/tms320f2800137-how-to-set-zero-boot-mode-and-how-to-write-to-otp and https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1245895/tms320f280039c-how-to-write-to-otp-for-standalone-boot/4718074?tisearch=e2e-sitesearch&keymatch=OTP#4718074 so I got to know how to change the linker file and pragma in my main.c but the Universal lab controller already has two different cmd files: f280015x_headers_nonbios.cmd and f280015x_flash_lib_is.cmd


I tried to add below two line in my main.c file

#pragma DATA_SECTION(Z1_OTP_BOOT_CONFIG,"Z1_OTP_BOOT_CONFIG");
const uint32_t Z1_OTP_BOOT_CONFIG = 0x5AFFFFFF;

and Z1_OTP_BOOT_CONFIG      : origin = 0x078008, length = 0x000002 in f280015x_flash_lib_is.cmd file. But I got an error that the origin is already there in cmd files. When I checked, I found 

DCSMZ1OTP                  : origin = 0x00078000, length = 0x00000020 and    DcsmZ1OtpRegsFile          : > DCSMZ1OTP, type=NOINIT lines in  f280015x_headers_nonbios.cmd

I tried commenting them but my code was still not loaded on the Flash. I am using CCS 12.7 to Flash the code on the PCB with XDS110 Debug Probe.

When I was running this code with Z1_OTP_BOOT_CONFIG on a LED blinky example on LAUNCHXL_F2800157 board, I was able to flash the code but I noticed that GPIO 24 and 32 should both be initialized to 0 or a 1 for the code to work. When it is in opposite states, the code doesn't run.

Thank you in advance for your help.

  • If you revert the original project back to it original state, can the flash be loaded successfully? If you read the values at BOOT_CONFIG with a memory window is it all 0xFFFFFFFF or is there some other value?

    If still erased, I would try and use the flash tools to program the BOOT_CONFIG and see if that resolves things.  If we cannot program the location, we will need to determine why this is getting blocked.

    Best,

    Matthew

  • Hi, I read the BOOT_CONFIG register through UniFlash and it showed 0xFFFFFFFF.

    I then Changed it to 0x5AFFFFFF and clicked program.

    Then I used CCS to Flash my code and it is flashed now.

    Thank you for help.