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.

F28M36P63C2: BIOS ePWM

Part Number: F28M36P63C2


I have a dual core project and the ePWM module is not working and I am at a loss.

  1. When I run MY_M3_RTOS and DEMO_C28_NON_RTOS the ePWM module works just fine.
  2. When I run MY_M3_RTOS and MY_C28_RTOS the ePWM modules do not work.
    1. I have verified that the section mappings in the cmd file are correct.
    2. The counter increments and resets at the period.
    3. I have muxed the pins as GPIO and they toggle.
    4. In both DEMO_C28_NON_RTOS and MY_C28_RTOS the programs execute identical code and the ePWM registers are exactly the same (with the exception of the counter which is free running.

Does anyone have any suggestions for why the ePWM module refuses to work?

  • Hi John,

    Is everything else working (e.g. you run to main(), tasks are starting, the Clock tick is advancing, etc.)? The easiest way to confirm some of these are to look in CCS->Tools->ROV->Task Detailed (to see that things are running and stacks are not blown) or ROV->Clock->Module to see the ticks are advancing. Note: ROV only works when you halt the target.

    Are you manually setting up an interrupt for the ePWM? If so, how are you doing this?

    Also, what version of TI-RTOS (or SYS/BIOS) are you using?

    Todd
  • Todd,

    One thing I've learned is that actual problems can be solved in a day or two.  When it takes three days, then it is going to be something embarrassing.

    The issue was because after the main task would pass through it's first loop and sleep a lower priority task that was responsible for blinking the status LED would run and in its first loop would initialize the GPIO.  While I checked to make sure each register was set properly I never checked to make sure it stayed set properly.  This issue was compounded by having the PWM set to stop on breakpoints.

    I moved the GPIO initialization to main and the code now works as expected.