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.

TMS320F28379D: TMS320F28379D Programming failed

Part Number: TMS320F28379D
Other Parts Discussed in Thread: UNIFLASH,

Hi Team,

There's an issue from the customer need your help:

background:

1. Among normal mass-produced products, we found a batch of boards that cannot be programmed through Uniflash;

2. The defective products came from different production lines. Through exchange verification, we determined that the problem came from the TMS320F28379D chip;

Debugging actions:

1. Programming CPU2 through uniflash fails and displays failure;

2. Only when "core settings" is manually set to CPU2 (Slave) can CPU2 be programmed normally;

3. After CPU2 was successfully programmed, we measured the 140th pin (XCLK_OUT) of the chip. Normally it should be 5Mhz, and the defective board is only about 4.5Mhz (the main crystal oscillator uses 10Mhz);

What I know is that the frequency of XCLK_OUT output depends on the definition of the internal register. I want to know what software or tool I can use to read the value of the internal register? At the same time, can this register value be modified manually to change the output frequency of XCLK_OUT?

In addition, why do we need to manually "core settings" during Uniflash software programming? (Through the programming comparison of other good quality boards, this setting should select CPU2 (Slave) by default)

Thanks & Regards,

Ben

  • Hello Ben,

    I want to know what software or tool I can use to read the value of the internal register?

    The register is the CLKSRCCTL3 register, you can read it the same way as any other register in the program.

    There is also a clock divider specifically for XCLK_OUT, so if you want to see the actual frequency make sure it's set to 0:

    At the same time, can this register value be modified manually to change the output frequency of XCLK_OUT?

    Yes, you can use the SysCtl_setXClk function to set the clock divider, and you can use the SysCtl_selectClockOutSource function to set the XCLK_OUT source.

    In addition, why do we need to manually "core settings" during Uniflash software programming?

    This is just how the dual-core device is; it's the same thing in CCS, you need to program both cores separately since they have their own program counters and memory in which to execute from. This is the same situation for the F2838xD and the F28P65x

    Best regards,

    Omer Amir