Hello All,
from past few days I was facing an intersting prob with CAN driver implementation. I was using the Star12 Xgate processor. The CAN driver was initialized properly and it was working with vector CAN Card XL. The frames transmitted from the CAN controller were seen on the Oscilloscope and the frames were appearing on the CANAlyzer Trace window properly. Everything worked perfectly fine. But when I replaced the vector CAN Card XL with CAN Card X, the frames stopped appearing on the trace window. But they were present on the CAN bus, I could verify the same with an oscilloscope. The code downloaded on the ECU was same as it was in case of CANCardXL.
after so much debugging I found that the DLC register was creating the problem. I wanted to transmit always an 8 bytes long frame. I was putting the value of dlc as -->> DLC_Reg |= 0x08; with this the frames were observed on the CAN CardXL. but not with CAN Card X.
When I changed the implementation to -->> DLC_Reg |= 0x08; The CAN Card X also worked fine. All frames started appearing on the CANalyzer trace window.
In both the cases, there were no error frames, no error counter increament, CANalyzer bus statistics window also showed the standard data frames increamenting on the bus.
So can any one of you please point out the DLC value was responsible for the frame reception on the CANalyzer trace window.
The same frame was not seen on CANCardX but on CANCardXL, it was visible and in both the cases the oscilloscope was showing the frame on the bus.
Please provide your feedback in understanding the root cause of the problem.
Regards Akhilesh