Driveworks 6.0 Canbus Communication Issues

Our team updates our two px2 cards recently. When I tested the can-bus communication I found that both of them works fine as a receiver but it is not working as a sender.

I read carefully the doc and the readme file in sample_canbus folder. And I follow the steps to set the ip link of the can channel. I tested the sample_canbus_interpreter and sample_canbus_logger, and also use the can-utils tool with the command cansend and candump to test the communication. But the sending can-message could not be received by the receiver side. Because of the receiving action works, so I think the can channel is opened but maybe just as one-way.

I also test the same functionalities on driveworks 3.0 and it works well. So I confirmed that the configuration steps are correctly. And it could be a bug of driveworks 6.0.

Could you help me with that?

Dear yunjie.li,

Could you let me know Aurix FW also was updated? Thanks.

Hi,

Thanks for your response.

I think so.
I checked the two updated cards, the version is 4.02.02.00, but the old one is 2.02.04.00.

Best regards

Hi,
Any updates? Is it a bug of Aurix FW ? Could you confirm that ? Or give me a workaround.

Thanks
Best regards

Dear yunjie.li,

I checked canbus logger sample on PC(sender) <-> DPX2(recevier).

$ sudo apt-get install can-utils
Step 1. Connected PCAN to can-5 port.
-. can-5 → can0 on Tegra A

Step2. Enable can0 on Tegra A.
$sudo ip link set can0 type can bitrate 500000
$sudo ip link set can0 up

Step3. Run sample canbus logger
$./sample_canbus_logger --driver=can.socket --params=device=can0

=====================================
nvidia@nvidia:/usr/local/driveworks-0.6/bin$ ./sample_canbus_logger --driver=can.socket --params=device=can0
Program Arguments:
–driver=can.socket
–filter=000:000
–hwtime=1
–params=device=can0
–send_i_understand_implications=0
–send_id=6FF

Initialize DriveWorks SDK v0.6.54
Release build with GNU 4.9.2 from v0.6.0-rc5-0-g3f25786 against Vibrante PDK v5.0.5.0
TimeSource: monotonic epoch time offset is 1516347889358950
TimeSource: PTP ioctl returned error. Synchronized time will not be available.
TimeSource: Could not detect valid PTP time source at ‘eth0’. Fallback to CLOCK_MONOTONIC.
SDK: Resources mounted from /usr/local/driveworks-0.6/data/resources
nvrm_gpu: Bug 200215060 workaround enabled.
SDK: Create NvMediaDevice
egl::Display: found 2 EGL devices
egl::Display: use drm device: drm-nvdc
SDK: Default GPU Device set to device number 0. Total number of devices detected: 2
SAL: identified board as DrivePX2-TegraA
SensorFactory::createSensor() → can.socket, device=can0
CANSocket: ioctl(SIOCSHWTSTAMP, can0) failed → Operation not permitted. Cannot enable HW timestamps, try with root user.
CANSocket: use SW based timestamps for can0
CANSocket: started can0
1517193443315867 → 010 [8] 01 02 03 04 05 06 07 08
1517193443475647 (dt=159780) → 010 [8] 01 02 03 04 05 06 07 08
1517193443643726 (dt=168079) → 010 [8] 01 02 03 04 05 06 07 08
1517193443796038 (dt=152312) → 010 [8] 01 02 03 04 05 06 07 08
1517193443948490 (dt=152452) → 010 [8] 01 02 03 04 05 06 07 08
1517193444100507 (dt=152017) → 010 [8] 01 02 03 04 05 06 07 08
1517193444252094 (dt=151587) → 010 [8] 01 02 03 04 05 06 07 08
1517193444404068 (dt=151974) → 010 [8] 01 02 03 04 05 06 07 08
1517193444556058 (dt=151990) → 010 [8] 01 02 03 04 05 06 07 08
1517193444707707 (dt=151649) → 010 [8] 01 02 03 04 05 06 07 08
1517193444859895 (dt=152188) → 010 [8] 01 02 03 04 05 06 07 08

Under same setting.
Aurix shell> cansend e 0x75 0xffff0000 0xaaaa5555

Check CAN messages via PC monitoring program.

=================
Timestamp CAN ID DLC MSG
51608 074 8 FFFF0000AAAA5557
31493 074 8 FFFF0000AAAA5555
37818 074 8 FFFF0000AAAA5556
36044 074 8 FFFF0000AAAA5555