Part Number: TMS320F28375D
Section 15.6.5 of SPRUHM8I suggests keeping the CMPR values within a range of 1 to TBPRD-1 to ensure proper PWM operation. It then references an old (2006) appnote SPRAAI1 that has a work-around for achieving 0% and 100% duty cycle. After some searching on this forum I've found several incomplete answers as to whether this is actually necessary on newer devices that have a Type 4 ePWM module. The most complete answer I've found is here:
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/646249
The linked thread seems to indicate that CMPx = 0 should work fine but there may be an issue transitioning from CMPx = 0 to CMPx != 0. The thread kind of dies after that. Does this mean we don't have to do anything special transitioning to CMPx = 0 but the workaround still applies transitioning back to a non-zero value? What about CMPx = TBPRD?
My configuration
- Up/Down count mode
- shadow load CMPx registers on ZRO and TBPRD
- There is an ISR on both ZRO and TBPRD events so I am loading the CMPx registers twice per PWM period
- Action qualifier is configured to set on up count and clear on down count
Assuming this work-around is necessary, and since I'm loading CMPx registers on both ZRO and TBPRD, would I need to implement the work-around for both CMPx = 0 and CMPx = TBPRD?