Perhaps the section 13.3.3.3 wording for edge mode has sound basis but seemingly makes no difference.
Edge count capture mode timer B up count auto resets 0x00 on match CHR count. So setting the load value higher than match seems plausible but setting load value higher than match makes no difference to either timer 5A/B asserting an interrupt for their handlers to then clear.
Why are the interrupts not asserting on a match count? -- that is assuming they should assert by timer design.
Previous split-pair timer configuration issue: https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/463303
/* Configure Timer-5A 120Mhz 20ns SYSCLK clock source.*/ ROM_TimerClockSourceSet(TIMER5_BASE, TIMER_CLOCK_SYSTEM); /* Configure Half-width Timer-5A GPTMTaMR down count * mode for PWM-CCP0 PM6-Pin72. * Configure Half-width Timer-5B GPTMTbMR 16/24 bit up count * edge counter CCP1 for taco signal. */ ROM_TimerConfigure(TIMER5_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM | TIMER_CFG_B_CAP_COUNT_UP); /* Set the initial fan PWM 100% or half the PWM frequency .*/ g_ulFanDutyCycle = 0x30D4 //g_ui32SysClock / PWM_TICKS_PER_SEC; /* Set the load timer GPTMTaILR value 4800*40us=25Khz*/ ROM_TimerLoadSet(TIMER5_BASE, TIMER_A, 0x12C0); /* Set the value for the PWM modulator reload interrupt */ ROM_TimerIntEnable(TIMER5_BASE, TIMER_TIMA_MATCH); ROM_TimerEnable(TIMER5_BASE, TIMER_A); ROM_IntEnable(INT_TIMER5A); /* Set Timer-5A match character value GPTMTaMATCHR * with the PWM duty cycle set near 50% */ ROM_TimerMatchSet(TIMER5_BASE, TIMER_A, g_ulFanDutyCycle / 5.0); /* Preform an GPTMTAMR Reg0x4 timer5 update on * match character and GPTMTaPR load regisers */ TimerUpdateMode(TIMER5_BASE, TIMER_A, TIMER_UP_MATCH_IMMEDIATE); /********************************************************** * Timer-5B Fan Tacho CCP1 16 bit up counter * 24 bit with 8 bit prescaler enabled, PM7-Pin71 * AltClk PIOS 16Mhz 62.5us/.25 Tc or 1/4 frequency * edge detection up to 250us or 4kHz or 240,000 RPM. **********************************************************/ /* Set the prescaler 20Tc*62.5us=1.25ms */ //TimerPrescaleSet(TIMER5_BASE, TIMER_B, 0x14); /* Set the load timer GPTMTbILR value just above *bMATCHR * counting 0x00 up to 60 +/- edges set in GPTMTbMATCHR */ ROM_TimerLoadSet(TIMER5_BASE, TIMER_B, 0x3E); /* Set Timer-5B match character value GPTMTbMATCHR * count-up to 60 edges CCP1 Pin 71 taco interrupt. */ ROM_TimerMatchSet(TIMER5_BASE, TIMER_B, 0x3C); /* Set the Capture Edge Counter reload interrupt */ ROM_TimerIntEnable(TIMER5_BASE, TIMER_CAPB_MATCH); ROM_TimerEnable(TIMER5_BASE, TIMER_B); ROM_IntEnable(INT_TIMER5B); /* Configure signal edge(s) that triggers events for CCP1 capture mode. */ ROM_TimerControlEvent(TIMER5_BASE, TIMER_B, TIMER_EVENT_BOTH_EDGES); /* Preform an GPTMTAMR Reg0x4 timer5 update on * match character and GPTMTbPR load regisers */ TimerUpdateMode(TIMER5_BASE, TIMER_B, TIMER_UP_MATCH_IMMEDIATE); //TIMER_UP_LOAD_IMMEDIATE /* Synchronizes the counters in a specified set of timers. * Running in half-width mode, each half can be included or * excluded in the synchronization event. */ //TimerSynchronize(TIMER5_BASE, TIMER_5A_SYNC | TIMER_5B_SYNC);
Timer5A/B Ports: // CCP0-PWM0 mode: // Enable pin PM6 (MPU-72) for TIMER5A T5CCP0 PWM-0 ROM_GPIOPinConfigure(GPIO_PM6_T5CCP0); ROM_GPIOPinTypeTimer(GPIO_PORTM_AHB_BASE, GPIO_PIN_6); // CCP1-Edge count mode: // Enable pin PM7 (MPU-71) for TIMER5B T5CCP1 edge capture ROM_GPIOPinConfigure(GPIO_PM7_T5CCP1); ROM_GPIOPinTypeTimer(GPIO_PORTM_AHB_BASE, GPIO_PIN_7);