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.
Original Attachment has been moved to: ConfigScreens.zip