AnsweredAssumed Answered

CAN Rx Interrupt is not generated

Question asked by Georgi Petrov on Nov 9, 2016

Hello,

I have a simple code warrior 10.6 project that uses the processor's expert capabilities to generate an OS and a CAN driver (CAN_LDD). There are some periodic tasks defined that do some specific work, but they have nothing to do with the problem I am facing. Basically, I call once

CANPtr = CAN1_Init(NULL);

to initialize the driver, followed by periodic calls in a task to the function below:

Error = CAN1_SendFrame(CANPtr, 1U, &Frame);

 

The transmission works flawlessly and I can see that

PE_ISR(CAN1_InterruptRxTx) in CAN1.c gets called to signal the frame is transmitted. So far so good...

However, when I send a CAN frame to the device (of course an external CAN transceiver is connected) I see that no CAN Rx interrupt is ever called, in fact it should be processed in the same PE_ISR (CAN1_InterruptRxTx). At first I thought I had some issues with the CAN transceiver, but a logic analyzer showed me that the CAN data arrived at the RX pin of the processor. I tried to use the loopback mode which again led to a CAN Tx interrupt being generated, while no Rx interrupt occurred. I attach screenshots of my configuration as I might be doing something wrong there.

Any advice appreciated.

 

 Regards

Original Attachment has been moved to: ConfigScreens.zip

Outcomes