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.
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.
Hi Jason,
Check this link: f28377d flash programming - C2000 microcontrollers forum - C2000™︎ microcontrollers - TI E2E support...
Regards,
Gautam
Hi Jason,
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
If your issue is not yet resolved, could you be a little more clear on what you are trying to accomplish and what the DACs are doing.
I know its working because Im monitoring the Oscope watching the DACs, and toggling a GPIO pin. The standalone toggles the GPIO but doesnt update the DAC with the right value (only two values: zero and maybe inf which is limited to a constant value).
This code is a PID controller which I have been able to tune and verify good behavior in debugging mode from RAM and FLASH.
All GPIOs are constant during this. Before I used them to find what part of the code wasnt working.