Tivaware text suggest 2 half width timers should be configured separately. When configured timer A/B separately the PWM on timer A stops. PWM regulates fan speed well at this point. The fans tachometer signal need to have edges counted by a timer interrupt that will not interrupt on match count up.
BTW: Seems a Typo in section 13.3.3.3 page 963. That make works well for down-count.
In up-count mode,
the timer counts from 0x0 to the value in the GPTMTnMATCHR and GPTMTnPMR registers. Note
that when executing an up-count, that the value of GPTMTnPR and GPTMTnILR must be greater
than the value of GPTMTnPMR and GPTMTnMATCHR. Table 13-7 on page 963 shows the values
that are loaded into the timer registers when the timer is enabled.
The configuration both ways.
ROM_TimerConfigure(TIMER5_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM | TIMER_CFG_B_CAP_COUNT_UP); Seperate TimerConfigs kills PWM and still get no interrupt on B capture edge match count up. ROM_TimerConfigure(TIMER5_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM); ROM_TimerConfigure(TIMER5_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_CAP_COUNT_UP); //! Configures the timer(s). //! //! \param ui32Base is the base address of the timer module. //! \param ui32Config is the configuration for the timer. //! //! This function configures the operating mode of the timer(s). The timer //! module is disabled before being configured and is left in the disabled //! state. The timer can be configured to be a single full-width timer //! by using the \b TIMER_CFG_* values or a pair of half-width timers using the //! \b TIMER_CFG_A_* and \b TIMER_CFG_B_* values passed in the \e ui32Config //! parameter. //! //! The configuration is specified in \e ui32Config as one of the following //! values: //! //! - \b TIMER_CFG_ONE_SHOT - Full-width one-shot timer //! - \b TIMER_CFG_ONE_SHOT_UP - Full-width one-shot timer that counts up //! instead of down (not available on all parts) //! - \b TIMER_CFG_PERIODIC - Full-width periodic timer //! - \b TIMER_CFG_PERIODIC_UP - Full-width periodic timer that counts up //! instead of down (not available on all parts) //! - \b TIMER_CFG_RTC - Full-width real time clock timer //! - \b TIMER_CFG_SPLIT_PAIR - Two half-width timers //! //! When configured for a pair of half-width timers, each timer is separately //! configured. The first timer is configured by setting \e ui32Config to //! the result of a logical OR operation between one of the following values //! and \e ui32Config: