Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

AWR2944: The can interrupt has some errors

Part Number: AWR2944

Tool/software:

Hi TI support,

          The can interrupt I currently use is The first interrupt line (INT0), which is interrupt number 44.

           I operate the register as follows:

                    • Interrupt Register (MCAN_IR)

                                     /* Register interrupt */
                                 HwiP_Params_init(&hwiPrms);
                                 hwiPrms.intNum      = MCAN_INTR_NUM;
                                 hwiPrms.callback    = &FblFlash_RegistermcanIntrISR;
                                  status              = HwiP_construct(&gMcanHwiObject&hwiPrms);

                              

                    • Interrupt Enable (MCAN_IE)      

                               MCAN_INTR_MASK (MCAN_INTR_SRC_TRANS_COMPLETE | MCAN_INTR_SRC_DEDICATED_RX_BUFF_MSG | MCAN_INTR_SRC_BUS_OFF_STATUS)

                               MCAN_enableIntr(gMcanBaseAddr, MCAN_INTR_MASK , TRUE);

                    • Interrupt Line Select (MCAN_ILS)                    

                                            typedef enum
                                           {
                                                 MCAN_INTR_LINE_NUM_0 = 0U,
                                                 /**< MCAN interrupt line 0 */
                                                  MCAN_INTR_LINE_NUM_1 = 1U
                                                   /**< MCAN interrupt line 1 */
                                            }MCAN_IntrLineNum;

                                      MCAN_selectIntrLine(gMcanBaseAddr, MCAN_INTR_MASK, MCAN_INTR_LINE_NUM_0);

                    • Interrupt Line Enable (MCAN_ILE)

                                       MCAN_txBufTransIntrEnable(gMcanBaseAddr0UTRUE);

     I still can't communicate through the above configuration. Is there anything wrong with my usage?

 

When I read the register values, they are all zero.
       MCAN_getNewDataStatus(gMcanBaseAddr,&newDataStatus);
       linest = MCAN_getIntrLineSelectStatus(gMcanBaseAddr);
I read the value of the register, except that ACT is 1, the others are all zeros.
     MCAN_getProtocolStatus(gMcanBaseAddr, &protStatus);

     
  • Part Number: AWR2944

    Tool/software:

    Hi TI support,

              The can interrupt I currently use is The first interrupt line (INT0), which is interrupt number 44.

               I operate the register as follows:

                        • Interrupt Register (MCAN_IR)

                                         /* Register interrupt */
                                     HwiP_Params_init(&hwiPrms);
                                     hwiPrms.intNum      = MCAN_INTR_NUM;
                                     hwiPrms.callback    = &FblFlash_RegistermcanIntrISR;
                                      status              = HwiP_construct(&gMcanHwiObject, &hwiPrms);

                                  

                        • Interrupt Enable (MCAN_IE)      

                                   MCAN_INTR_MASK (MCAN_INTR_SRC_TRANS_COMPLETE | MCAN_INTR_SRC_DEDICATED_RX_BUFF_MSG | MCAN_INTR_SRC_BUS_OFF_STATUS)

                                   MCAN_enableIntr(gMcanBaseAddr, MCAN_INTR_MASK , TRUE);

                        • Interrupt Line Select (MCAN_ILS)                    

                                                typedef enum
                                               {
                                                     MCAN_INTR_LINE_NUM_0 = 0U,
                                                     /**< MCAN interrupt line 0 */
                                                      MCAN_INTR_LINE_NUM_1 = 1U
                                                       /**< MCAN interrupt line 1 */
                                                }MCAN_IntrLineNum;

                                          MCAN_selectIntrLine(gMcanBaseAddr, MCAN_INTR_MASK, MCAN_INTR_LINE_NUM_0);

                        • Interrupt Line Enable (MCAN_ILE)

                                           MCAN_txBufTransIntrEnable(gMcanBaseAddr, 0U, TRUE);

         I still can't communicate through the above configuration. Is there anything wrong with my usage?

     

         I read the status and they are all zero.

                    clockack = MCAN_getClockStopAck(gMcanBaseAddr);  ->0

                    clcokatop = MCAN_getClkStopAck(gMcanBaseAddr); -> 0
         

       I read the ECR register, ECR.rec =20

  • Part Number: AWR2944

    Tool/software:

    Hi Ti support

             why  I want to use Hwip produce mcan interrupt number 44,but my callback

    can not enter?

  • Hi Cheyrl,

    Let me check and get back to you by end of this week.

    Regards,

    Ajay

  • HI Cheyrl,

    You will get the interrupt when there is a CAN activity not during registration.

    Please refer to the MCAN example in the SDK for reference.

    Regards,

    Ajay