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.

TMS320F28377D: Interrupt service routine problem

Part Number: TMS320F28377D
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

HI. I have big trouble HW setting in F28377D.

I finished setting up the ADC, PWM and CLA peripheral register.

I checked ADC starts of conversion at PWM count zero and at the EOC, adca1_isr function to be executed in a RAM section.

After that, I wanted to run a code standalone in the flash area without a debugger but there was a problem.

When I click CPU reset icon in the CCS debug window, PWM and ADC worked well

When I pushed HW reset button on my board(/XRS), PWM was well but ADC interrupt didn't work

I checked PWM output doing well from an oscilloscope.

I've touched a lot of the code to find the cause, but I haven't. 

The variable 'i' is counter for main function, 'ii' is for adca1_isr interrupt and 'iii' is for CLA interrupt.

GPIO84, 72 are pulled up.

Please give me some advice. 

Thanks 

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main(void) {
asm(" setc INTM");
DINT; // Clear all __interrupts and initialize PIE vector table:
IER = 0x0000; // Disable CPU __interrupts
IFR = 0x0000; // Disable CPU __interrupts and clear all CPU __interrupt flags:
InitSysCtrl(); // Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the F2837xD_SysCtrl.c file.
InitGpio(); // Initialize GPIO:
// This example function is found in the F2837xD_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
InitPieCtrl(); // Initialize PIE:
// InitPieCtrl - This function initializes the PIE control registers to a
// known state.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX