09-09-2019 10:12 AM - edited 09-09-2019 10:13 AM
Hello the forum,
I'm having troubles in trying to communicate with an ECU using XNET interface and driver (v19.1). The communication is based on the CAN FD protocol having the following properties (expressed in the Vector way):
Clock frequency [kHz] : 80000 Arbitration phase: - baudrate [kBaud] : 500.0 - SamplePoint [%] : 83.1 - prescalar : 1 - BTL cycles : 160 - TSEG1 : 132 - TSEG2 : 27 - SJW : 27 Data phase : - baudrate [kBaud] : 2000.0 - SamplePoint [%] : 60.0 - prescalar : 1 - BTL cycles : 40 - TSEG1 : 23 - TSEG2 : 16 - SJW : 16
The problem is that I cannot exchange any frame with the ECU and I think that this is due to a configuration problem.
Here's the LV help for the two baud rates that have to be configured:
sessioninterfacecan64bitfdbaudrate
Here's a post on the forum that treats the matter:
So, even if I used the "-1" rule, I don't succeed in get the proper baud rate (500k baud rate.png and 2M baud rate.png).
Do you have any clue? Do you think I need other information from the ECU sw developer?
Thanks 😉
09-10-2019 04:41 AM
NI XNET interfaces works @ 40 MHz, so the Vector parameters shall be not only translated, but also adapted. I'm working in this way and, on the other side, trying to figure out if the Vector configuration can be changed.
More in general, I'm working since few weeks on new products that use CAN FD protocol and one thing is clear to me: NI is not adapting his automotive-related HW and SW offer to the new trends and technologies. It's the case of the clock frequency of the XNET interfaces (40 MHz only), but also of the limited ARXML database support (no E2E, no multiple PDUs, ...).
Don't know what's happening inside NI, but this is quite frustrating and not encouraging, above all because it's the first time in 10 years of activity that I fell like stucked by NI limitations.
09-20-2019 10:48 AM
When you say you're having trouble communicating, what exactly do you mean? Are you seeing error frames on the bus? (You can open an XNET Bus Monitor session and check the box for Enable Error Frames to see.)
You do indeed need to enter the NSJW, TSEG1, and TSEG2 values to be one less than the actual value used by the ECU.
Is this working with any other device? If so, you should be able to just copy over the exact settings from there.
Nick
National Instruments