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.

SK-TDA4VM: Registering MCU timer interrupts

Part Number: SK-TDA4VM

Tool/software:

Dear Ti,

I am working on a custom SK-TDA4VM–like board that is identical to the original TI reference design, and I am using Processor SDK RTOS (ti-processor-sdk-rtos-j721e-evm-09_02_00_05). My goal is to set up the MCU GPT timers on the MCU R5F core for different tasks, but I am running into a couple of issues:

  1. Clock configuration issue
    When I call Sciclient_pmSetModuleClkFreq() to change the timer clock frequency (target 12 MHz), the odd-numbered timers (1, 3, 5, 7) fail to set.
    According to the TRM, their clock sources are tied to the RCOSC 12.5 MHz clock:

    • TISCI_DEV_MCU_TIMER1_CLKSEL_VD_CLK_PARENT_J7_WAKEUP_16FF_WKUP_0_WKUP_RCOSC_12P5M_CLK

    • TISCI_DEV_MCU_TIMER3_CLKSEL_VD_CLK_PARENT_J7_WAKEUP_16FF_WKUP_0_WKUP_RCOSC_12P5M_CLK

    • TISCI_DEV_MCU_TIMER5_CLKSEL_VD_CLK_PARENT_J7_WAKEUP_16FF_WKUP_0_WKUP_RCOSC_12P5M_CLK

    • TISCI_DEV_MCU_TIMER7_CLKSEL_VD_CLK_PARENT_J7_WAKEUP_16FF_WKUP_0_WKUP_RCOSC_12P5M_CLK

    By contrast, the even-numbered timers (2, 4, 6, 8) can be set successfully without issue.

  2. Interrupt registration issue
    When I attempt to register interrupts for the MCU timers, the registration fails for all timers.

        rmIrqReq.valid_params           = TISCI_MSG_VALUE_RM_DST_ID_VALID;
        rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
        rmIrqReq.src_id                 = TISCI_DEV_MCU_TIMER0;
        rmIrqReq.global_event           = 0U;
        rmIrqReq.src_index              = 0U;
        rmIrqReq.dst_id                 = TISCI_DEV_MCU_R5FSS0_CORE0;
        rmIrqReq.dst_host_irq           = CSLR_MCU_R5FSS0_CORE0_INTR_MCU_TIMER0_INTR_PEND_0;
        rmIrqReq.ia_id                  = 0U;
        rmIrqReq.vint                   = 0U;
        rmIrqReq.vint_status_bit_index  = 0U;
        rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;
        status = Sciclient_rmIrqSet(
                        &rmIrqReq, &rmIrqResp, APP_SCICLIENT_TIMEOUT);

I this right how am I doing it?
 
Regards,
Ner