TDA4VH-Q1: Facing issue while enabling MCAN5 and MCAN3 in j784s4 evm

Part Number: TDA4VH-Q1

Tool/software:

I am referring the link  TDA4VH-Q1: Enabling MAIN_MCAN5 for Linux on EVM. I followed those steps, but unfortunately still I can not receive the data from MCAN5 and MCAN3.

I am outputting high the AUDIO_MUX_SEL on exp1, similarly for making B2 lines are outputted, enabled all signals into high in exp2.

Enabled the status of MCAN5 and MCAN3 as okay

At the same time disabled mcasp0

Pin controls are added in &main_pmx0

configured transceiver4 and 5 for MCAN3 and MCAN5 respectively.

I can bring the interfaces up in the board and I can see the interface name 

but, unable to receive the data from any other devices.

the logs are 

Am I missing something? Do I have to enable/disable more ?

I would like to get the the support for resolving this issue. I got stuck in it. Please support on this.
Thanks in advance.

  • Hi Roshan,

    Muxing looks correct in shared screenshot.

    Can you confirm if internal loopback mode works for the configured CAN devices? Following step 3 of this FAQ:  [FAQ] TDA4VEN-Q1/AM6x/TDA4x/DRA8x: How to enable, troubleshoot, and debug MCAN, CAN-FD interface not working in Linux 

    And if internal loopback works, could you try an external loopback (connecting MCAN5 to another known working MCAN interface)?

    Regards,

    Takuma

  • I tested the internal loop back test, it is working fine.

    but I am not receiving any external data.

  • Hi Roshan,

    Could you try commenting out the standby-gpios property for transceiver4 and transceiver5 nodes? 

    And could we also get a picture of how the Main MCAN5 is connected? 

    Regards,

    Takuma

  • I did the testing of commenting out standby gpios already, but it was not working. 

    Please look into this picture, I can not show the physical device right now, because I am away from the device now.

    I am using J44 for CAN5 and J41 for CAN3.
    In J44 there are 3 pins in the order - CAN-H, GND and CAN-L. The connection from CAN5 given to CAN16 through wires. connected CAN-H of CAN5 to CAN-H of CAN16 and CAN-L of CAN16 to CAN-L of CAN16.
    I was able to send/receive data from/to other CAN interfaces CAN4, CAN16, MCU CAN0 and MCU CAN1.

  • Hi Roshan,

    Just noticed while reviewing dts while I was trying to implement on my end.

    There is a resource conflict with mcasp0_pins_default and the pinmuxing for main mcan 3 and 5 in the shared screenshot for devicetree. I was thinking that resource conflict would give a runtime error, so I missed it. 

    Can you try removing the pinmuxing for mcasp0 and removing any nodes that may be depending on that mcasp pinmuxing?

    Regards,

    Takuma

  • Hi Takuma,

    I did the test by commenting the mcasp0 pins_default and related lines, but it didn't work.
    but I noticed one think that if I am enabling one of the can interface (MCAN4,MCAN3 and MCAN5 ) , one of the can is working. If I am enabling 2 or 3 can, then one of the can is working. I think it is based on the transceiver node. whichever node is called first, it will work. 

    In my device tree, can4 is calling first then can3 and can5. if enabling all these can4 will work. 
    If can4 disabled and enabling can5 and can3, then can3 will work.
    If only can5 is enabled, then can5 will work.

    Is this related to standby gpios, I removed the standby gpios from the transceiver node and added here, but no luck.

    Thanks in advance

  • Hi Roshan,

    but I noticed one think that if I am enabling one of the can interface (MCAN4,MCAN3 and MCAN5 ) , one of the can is working.

    That might be the issue. Most likely, the standby gpio pin needs to be pulled down and unused by the transceivers. Will try out today on my end.

    Regards,

    Takuma

  • p7-hog {
                            /* P13 - CANUART_MUX_SEL0 */
                            gpio-hog;
                            gpios = <7 GPIO_ACTIVE_HIGH>;
                            output-low;
                            line-name = "R_CAN_STB";
                    };

    This changes resolved my issue.

  • Hi Roshan,

    Awesome to hear! And thanks for posting the resolution.

    Regards,

    Takuma