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.

Debugging in release mode using CCS6 to try and load a program for stand alone testing but it is not working.

Other Parts Discussed in Thread: CONTROLSUITE

I have the control CARD PN TMDXCNCD28377D.

I have used CCS6.0 and the controlSUITE examples to make a program for testing out this chip and a few other key components in the lab (a wind tunnel) where there are no computers.

The release mode and debug modes were configured as outlined in controlSUITE document F2837xD-FRM-EX-UG.

I can build the release build configuration and run it on the controlCARD using the CCS debug which appears to be clearing the FLASH and loading the program.

After exiting the CCS program and disconnecting the debugger cable I power the docking station using the +5V in connector. Verified that the 3.3V and 5V rails are at the proper voltages.  The problem is that the program is not running. The BOOT switches SW1 on the ControlCARD are in the right position per document TMDSCNCD28377D-Infosheet_v1_5.pdf. I tried switching off the JTAG using A.SW1 on the controlCARD but this has no effect.

I need to run the program without being hooked up to the computer. Should I be able to do this and what could be wrong?

Thanks,

Jason

*************** Update ************************

The software is running, but the DACs are putting out bad values. Something is different between running in debug (release build) and running stand alone. Continuing to troubleshoot. Any suggests for the problem source would be nice. The program is simply a motor controller using the ADC then driving two DACs (one DAC is high and the other is low).

************** Update **************************

The DACs are working properly during the adc's interrupt service routine, but outside of it the DACs are toggling. Im looking to get more info.

**************Update***********************

The DACS are fine and so is the ADC as far as I can tell. The code below works fine for code running from flash using the CCS debug and JTAG and works for running standalone. All floats.

filtAdcResult++;

AOAp = filtAdcResult;

result = 5*AOAp;

...

DaccRegs.DACVALS.bit.DACVALS = (((Uint16)(result))>>5);

then repeats on adc isr.

The code below works running from CCS debug and JTAG but not when running standalone.

filtAdcResult++;

AOAp = filtAdcResult;

result *= (IIR_old - 1)/IIR_old;

result += (gainP*AOAp + gainI*AOAi + gainD*AOAd)/IIR_old;

...

DaccRegs.DACVALS.bit.DACVALS = (((Uint16)(result))>>5);

then repeats on adc isr.

So the question is now -  What causes this to not work in stand alone?

**************

Specifically the division doesn't work.

**************

Wrong the division works. I think the problem is that some variables are not being created in flash so rebooting means that the variables become garbage. Changed result declaration to volatile and I think it might be working, so Im going back through all the troubleshooting changes to verify.