How can we use 6 CAN channels at a single binary?


We are engineers from Hyundai Motor Group.
Currently, we are using PX2 AutoCahuffeur (P2379) to test feasibility of our targeting algorithm.

Basically, we want to use 6 CAN channels at a single binary which is compiled on TegraA (NOT CROSS-COMPILATION)
The detail scenario of our feasibility check is illustrated at below link.

We think that it is strongly related with other topic in this board (at below link).

However, at that topic, there is no final response from NVIDIA and it focused on just one sample ‘aurix_tegra_can’.
At this topic, we want to focus on methodology which is independent from specific sample.

Let me know any possible way.

Dear tiger0219,

Regarding Tegra-AURIX Communication on DrivePX2, please see below link.

From your questions, the problem with using SocketCAN is that there is only 1 CAN bus connected per tegra(CAN-5 for TegraA and CAN-6 for TegraB), all the others are routed through the aurix and have no direct connection to the tegras, need to use the EB code. This is a limitation for your #2 question.

There is some description there on how to configure and route the messages from the Aurix, please see “5.2.5. Message Routing inside of the Tegras” in EB-DrivePX_Software_User_Guide_DPX2_P2379.pdf.

Could you please help to check the symptom with below step?

Setup Detail
Aurix CAN on Harness Mapping to CAN channels
CAN-A(On Harness CAN1) CAN1
CAN-B(On Harness CAN2) CAN2
CAN-C(On Harness CAN3) CAN3
CAN-D(On Harness CAN4) CAN4

  1. Test1 (using
    Prerequisite to run :
    1.Copy EB-DrivePX-Samples/PythonCanSendReceive/ to the Target .
    2.Copy EB-DrivePX-Samples/Configuration/ to the Target
    3.Create eb user #sudo adduser eb
    4.Create eb directory in /etc #sudo mkdir /etc/eb
    5.Copy configuration files from” EB-DrivePX-Samples/Configuration/EasyCanConfigFile.conf & EB-DrivePX-Samples/Configuration/DrivePxApp.conf” to /etc/eb
    6.Also copy \bin\EB-DrivePX-Tegra\LINUX_LXTHREADSX86_DrivePxApp.elf to Tegra

1.Run easy can elf file on Tegra and terminate it later
1.# ./LINUX_LXTHREADSX86_DrivePxApp.elf
2.Terminate the app

2.Start message receiving on Target
1.​# python
3.Send messages from CAN
4.Message received on Tegra