LAUNCHXL-F28P65X: Wakeup Interrupt is not getting triggered.

Part Number: LAUNCHXL-F28P65X

Hello,

I am trying to get the MCAN wake up interrupt to get triggered by doing the following.

I have enabled the wakeup interrupt by doing the following,

Interrupt_register(INT_MCANB_WAKE,&MCANWake1ISR);
Interrupt_enable(INT_MCANB_WAKE);
__interrupt void MCANWake1ISR(void)
{
    wakeisr = 1;
}

I have enabled MCANSS_CTRL.AUTOWAKEUP and MCANSS_CTRL.WAKEUPREQEN.

I am doing MsgRam configuration by keeping in MCAN_CCCR.INIT = 1. After that I am putting CAN controller in Power down mode by doing Clock Stop Request.

I could see the dominant bit getting set in MCAN_TEST.RX.
So, under power down mode, I expect the wakeup interrupt to get triggered since auto wakeup is enabled and dominant bit is set in RX. But, the interrupt is not getting triggered. What could be the issue ?
 
image.png
  • Hi Siddhartha,
    Thank you for the detailed description of your configuration. Based on your setup, here are the most likely reasons the MCAN wakeup interrupt is not triggering, along with steps to resolve the issue.
    1. Incorrect Interrupt Vector — Most Likely Root Cause
    On the F28P65x, the MCAN wakeup interrupt is not routed to INT_MCANB_WAKE as a standalone PIE channel. Per the F28P65x PIE channel mapping, the MCAN-B wakeup (and timestamp) pulse is routed to PIE INT11.12 (MCANSS-B_WAKE_AND_TS_PLS). If your INT_MCANB_WAKE definition does not correctly map to PIE INT11.12, the ISR will never be triggered, even if the MCANSS hardware is asserting the wakeup signal internally.
    Please verify that INT_MCANB_WAKE in your driverlib maps to the correct PIE group 11, channel 12. If it does not, update your interrupt registration to use the correct PIE entry:
    Interrupt_register(INT_MCANB_WAKE_AND_TS, &MCANWake1ISR);
    Interrupt_enable(INT_MCANB_WAKE_AND_TS);
    Also ensure the PIE group 11 interrupt is enabled at the CPU level:
    Interrupt_enableInCPU(INTERRUPT_CPU_INT11);

    2. Message RAM Configuration Must Be Complete Before Clock Stop
    The MCAN IP requires a fully initialized and valid Message RAM configuration before entering power-down/clock-stop mode. Ensure your Message RAM initialization (including filter elements, Rx buffers, and TXBRP) is complete and that MCAN_CCCR.INIT has been cleared (i.e., the CAN controller has exited initialization mode and entered normal/monitoring operation) before issuing the clock stop request. Issuing the Clock Stop Request while MCAN_CCCR.INIT = 1 may prevent the CAN node from properly monitoring bus activity.
    The correct sequence is:
    1. Complete Message RAM configuration.
    2. Clear MCAN_CCCR.INIT to start CAN operation.
    3. Wait for MCAN_CCCR.INIT to read back 0 (hardware acknowledgment).
    4. Then enable MCANSS_CTRL.AUTOWAKEUP and MCANSS_CTRL.WAKEUPREQEN.
    5. Issue the Clock Stop Request.

    3. Verify MCAN Clock Gating During Power-Down
    When the Clock Stop Request is acknowledged, the MCANSS functional clock is stopped. For the wakeup detection logic to remain active, the MCANSS must retain enough power/clock to monitor the RX pin. Confirm in your device-level power management configuration (LPMCR / CLKCFG registers) that the MCAN wakeup detection path is not being fully clock-gated before it can detect and latch the bus dominant event.

    4. Confirm the Bus is Actually Asserting a Dominant State Post-Power-Down
    You mentioned that MCAN_TEST.RX shows a dominant bit. However, this register reflects the RX pin state at the time of the read — confirm the dominant state is being sustained (not just a momentary glitch) and that it persists while the module is in clock-stop mode, as the wakeup detection requires a qualified dominant detection period.

    Summary of Recommended Checks:
    Item Action
    Interrupt vector Verify INT_MCANB_WAKE maps to PIE INT11.12 (MCANSS-B_WAKE_AND_TS_PLS)
    Initialization sequence Clear MCAN_CCCR.INIT = 0 before issuing Clock Stop Request
    PIE group enable Confirm INTERRUPT_CPU_INT11 is enabled
    Wakeup clock path Check that MCANSS wakeup detection is not clock-gated
    Bus activity Confirm sustained dominant state is present during clock-stop
    Please share your full initialization sequence (particularly around MCANSS_CTRL, MCAN_CCCR, and interrupt configuration) if the above does not resolve the issue and we can take a closer look.
    Best Regards,
    Zackary Fleenor