Aug 15, 2020
01:10 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 15, 2020
01:10 AM
In order to enable the interrupt response of TC297MultiCAN+, we have done the following work:
(1) Enable interrupt source, such as enable the Message object reception or transmission interrupt;
(2) Enable and configure the Service Request Control Register (SRC) of Service Request Nodes (SRN) inInterrupt Router module .
We have tested the Message object receiving and sending interruptsof CAN and CANR module and CAN node transmission interrupts. Testing all interrupt output line INT_Om(m = 0 , 1 … 15 ),
but currently it can only be triggered through SRN0, which is the interrupt function under SRC_CANINT0.The link cannot trigger the other SRNm (m=1,2 … 15), that is,
the interrupt function under the SRC_CANINTm(the SRC_CANINTm register has been enabled and configured ) .
So, how to link the receiving and sending interrupts of different Message objects to different SRC_CANINTm so that different ISRs can respond to the interrupts of different Message objects ?
(1) Enable interrupt source, such as enable the Message object reception or transmission interrupt;
(2) Enable and configure the Service Request Control Register (SRC) of Service Request Nodes (SRN) inInterrupt Router module .
We have tested the Message object receiving and sending interruptsof CAN and CANR module and CAN node transmission interrupts. Testing all interrupt output line INT_Om(m = 0 , 1 … 15 ),
but currently it can only be triggered through SRN0, which is the interrupt function under SRC_CANINT0.The link cannot trigger the other SRNm (m=1,2 … 15), that is,
the interrupt function under the SRC_CANINTm(the SRC_CANINTm register has been enabled and configured ) .
So, how to link the receiving and sending interrupts of different Message objects to different SRC_CANINTm so that different ISRs can respond to the interrupts of different Message objects ?
3 Replies
Aug 16, 2020
06:33 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 16, 2020
06:33 PM
Have you read 22.7.6 Interrupt Control and 22.4.10.1 Message Object Interrupts? You also need to set MOIPRn.RXINP, to select which CAN interrupt is triggered (i.e., which SRC_CANINTn).
Aug 18, 2020
12:32 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 18, 2020
12:32 AM
Thank you for your reply. I have read 22.7.6 Interrupt Control and 22.4.10.1 Message Object Interrupts. I have tested that MOIPRn.RXINP=(0,1,2...15), but they all are only responed to SRC_CANINT0.
I used version iLLD_1_0_1_11_0.
I used version iLLD_1_0_1_11_0.
Aug 19, 2020
09:08 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 19, 2020
09:08 AM
As an experiment - can you let your application set up CAN, stop the CPU with a debugger, have your CAN tool send just the message that triggers MOIPRn.RXINP<>0, and then capture the values of SRC_CANINT0..15? I'm presuming your debugger is set up not to halt MultiCAN in this case.