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.

TMS320F28335: Odd uC behavior

Guru 20045 points
Part Number: TMS320F28335

Hello,

I just received a batch of boards having a TMS320F28335 uC.  The first one I programmed works ok.

The next two are behaving oddly.  The odd behavior starts during a call to memset function that it seems to never return from until I halt the code.  When I halt the code, the debugger always stops in some function located in an initialization function that is called before the memset. 

When I try to program the uC again, I get the following:

C28xx: Error connecting to the target: (Error -1156 @ 0x800) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 8.1.0.00007).

As a result, I have to set the EMU pin appropriate to connect to and program the uC.

I verified all uC voltages (1.8 and 3.3V)  with both a voltmeter and oscilloscope.  I also verified the first board has the same firmware as the other two by programming its uC again.

This issue is also occurring whether or not I have the debugger connected.  I can tell because the firmware has is a function that periodically blinks an LED on the board and the LED is not blinking for the two boards that have the issue.. 

Does anyone have any idea what to look at next? 

Thanks,
Stephen 

  • Hello,

    The debugger stop responding in the piece of code shown below.  ptMemLocation points memory in external RAM accessed by the uC external memory interface.

    Does anyone have any idea why the external memory interface would have a problem on these two boards and not the first board?

    void EXTERNAL_RAM::vRead(RAM_ADDRESS tAddress,RAMDATA * ptData,Uint32 u32NumberOfDataItems)
    {
        Uint32 i;
        RAMDATA * ptMemLocation = (RAMDATA*)(EXTERNAL_RAM_BASE_ADDRESS + tAddress);
        for(i=0;i<u32NumberOfDataItems;i++)
        {
    	    DINT;
    	    DRTM;
                ptData[i] = ptMemLocation[i];  <---- C28xx: Can't Single Step Target Program: (Error -1156 @ 0x800) Device may be operating in low-power mode....
    	    EINT;
    	    ERTM;
        }
    }

  • The External RAM's External memory interface function wasn't being called. The code works as normal after I add it to the code.  Not sure why the first board works since it has the same code as in the repo...

  • Steven,

    I am glad you got it resolved, thanks for the update

    Regards,
    PETer