F28-F29 Software Migration Guide  1.00.00.00
EPWM

EPWM IP remains mostly the same across F28 and F29 devices.

This is the summary of changes in the device related to EPWM :

  1. The hw_hrpwm.h file is not available in F29 driverlib. All the registers are part of hw_epwm.h itself. The driverlib source is updated to use these macros instead
  2. EPWM XBAR updates - Refer to XBAR chapter for more details.
  3. XLINK Feature is implemented in a different manner in the device.
Note
The EPWM register XLOAD is a write-only registers. Any read attempts to this register causes NMI. Application using bitfield based code must update the code accordingly. Note that the following code does a read-modify-write and will cause NMI.
EPwm1XcmpRegs.STARTLD = 1;

XLINK Feature update

In case of F28 devices, application could use the function EPWM_setupEPWMLinks to link the required set of registers across multiple EPWM instances. In F29 devices, this is implemented in a slightly different and easy to use manner. There is now a dedicated XLINK region in the memory map to support writes to any of the EPWM registers to reflect in other EPWM instances. Here are the steps to follow to use the XLINK feature in an F29 device :

  1. Use the function SysCtl_enableEPWMXLINK to enable XLINK feature for required set of EPWM instances.
  2. To configure a register across all XLINK enabled instances, write to the XLINK region. Eg : EPWM_setCounterCompareValue(EPWM1XLINK_BASE, EPWM_COUNTER_COMPARE_A, CMPAVAL);

Any writes to the EPWMnXLINK_BASE memory region will write to all other EPWMs. If you only want to update an independent EPWM's register value then do not use the XLINK base memory mapped regions; use the individual base address instead. Eg: EPWM_setCounterCompareValue(EPWM1_BASE, EPWM_COUNTER_COMPARE_A, CMPAVAL);

Driverlib API mapping

F28 Function F29 Function Comments
EPWM_setupEPWMLinks SysCtl_enableEPWMXLINK Refer to the section XLINK Feature update