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.

TMS320DM6437ZWT400 V1.3 PLL1 Error

Other Parts Discussed in Thread: TPS54160

To Whom Has the Answer

I have designed a custom TMS320DM6437ZWT400 V1.3 board for video surveillance. Of a batch of 100 populated boards about 75% fail setup of the PLL1.

I will describe the setup of the hardware before describing the error, after which I will describe an attempt at a solution and lastly the error message will be shown.

Note: The code was modified from development kit code and is attached.

Hardware Description:

The voltages supplied to the DSP is regulated by three TI TPS54160 SMPS with sequencing and meets requirements on an oscilloscope. A voltage of 1.2V is used instead of 1.05V

A 27MHz crystal is used with 22pF capacitors that are connected to MXvss via a 0Ohm resistor, with MXvdd connected to 1.8V via a 0Ohm resistor.

The PLL power is derived from the 1.8V supply and passed through a ferrite (Murata BLM21PG221SN1D) and then bypassed by a 1uF, 100nF and 1nF before being sent to ball L16 (ZWT).

EMU0 and EMU1 are left floating (little documentation on these balls have been found) but both balls can be pulled high or low. Any link to documentation would be appreciated.

The reset (M4, ZWT) ball is ‘pulled’ high via a 10kOhm resistor. A 1uF capacitor is connected between reset and ground.

The emulator header (14 way keyed) is directly connected to the emulator balls of the DSP. Only EMU0 and EMU0 have extra components connected for potentially connecting ‘pull up’ and ‘pull down’ resistors.

Ball H16 (ZWT) has a 10kOhm resistor to ground, and ball H17 (ZWT) has a 10kOhm resistor to +3.3V.

The fastboot, bootmode0 and bootmode1 balls are connected directly to ground. The bootmode 2 ball is connected to +3.3V via a 0Ohm resistor, but can be connected to ground. The bootmode 3 ball is connected to ground via a 22kOhm resistor, but can be connected to +3.3V. The AEM0 and AEAW2 balls are connected to +3.3V via 22kOhm resistors. The AEM1, AEM2, AEAW0 and AEAW1 balls are connected to ground via 22kOhm resistors. CS2 and CS4 are ‘pulled’ high by 22kOhm resistors. This is setup for bypass flash boot, but is not used at present until debug is complete. Will having bypass flash boot effect emulation boot at all? Connection using the emulator is achieved despite this setting.

Problem Description:

A modified GEL file was used to connect and setup the custom DSP board. Upon attempting to setup the PLL1, which supplies the clocking for the DSP core, the DSP would lock up and further attempts to connect to the DSP via the emulator would result in errors, see Error 01 below. This is the PLL Multiply Control Register, which is checked after the PLL is setup to indicate the core frequency via the debug output, at line 117 of GEL_SETUPPLL1 in the attached file. Emulation loss is confirmed at line 115 of GEL_SETUPPLL1 in the attached file, and an external reset or power cycle is required for emulator reconnection.

Solution Attempt:

A workaround has been found, but this workaround only create more questions.

Firstly the setup of the PLL1 and PLL2 is removed from the GEL file; the removal of lines 8 to 11 in GEL_ONTARGETCONNECT in the attached file.

After connecting to the unit with this modified GEL file a program is loaded. This program is run and if the LEDs on the custom board light up and the word “FINE” is output on the serial port setup of the PLL1 is successful. The source code loaded on the DSP is shown in the attached file.

Error 01:

Trouble Reading Memory Block at 0x1c40910 on Page 0 of Length 0x4:
Error 0x00000002/-1139
Error during: Memory,
Device driver: Emulation Connection Loss Detected on Target CPU.
It is recommended to RESET EMULATOR.  This will disconnect each
target from the emulator.  The targets should then be power cycled
or hard reset followed by an emureset and reconnect to each target.


Sequence ID: 69
Error Code: -1139
Error Class: 0x00000002

I would really really like a solution to and explanation of this error.

 

Thank you

Francois

  • I'm pretty sure the minimum pll1 multiplier is listed as 14 in the docs, and you are using a value of 13.  If you really want that particular frequency, you probably need to do a multiply by 26 and then divide by 2 instead.

     

  • Thank you MattLipsey

     

    I will test the code with a 26 and 2 as you reconmend. As a note; on the working boards, as a test, I tried PLL values that range from 11 to 15 with success - I did not however test if the DSP was running at the resultant frequencies.

     

    Francois

  • I have made the fix with;

    PLLM = 26

    Div1 = 1

    Div2 = 5

    Div3 = 11

    I have tested that the fix works on a working unit. A faulty units has exactly the same symptoms as described before.

    More suggestions are warmly welcomed.

     

    Francois

  • I'm a little confused about the symptoms you are describing... 25% of your boards successfully pass pll1 init with the gel, and the rest give you an error.  Do all the "bad" boards fail when you substitute your code with the modified gel file as well?  Can you get the "bad" boards to do something that doesn't require the pll?

    As far as documentation, you might find the dm6437 evaluation module schematic handy.  You can find that on spectrum digital's website with a little digging.  You'll have to get support from one of the TI guys on this forum as to whether your problem might be design, manufacturing, or code.  I modeled my schematic off the evm board, and I see a few differences with pullups/pulldowns but don't know if that could be causing your issue.  Good luck.

  • You are correct; 25% pass with no problems with the complete GEL file and 75% fail with the complete GEL file. The 'bad' boards successfully setup the PLL, as well as the 'good' boards. On the 'bad', as well as 'good' boards, I am able to output text on the UART as well as flash LEDs.

    Thanks for the help MattLipsey.

     

    Any other comments and suggestions are welcome.

     

    Francois