This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: MCAN register

Part Number: TDA4VM

Hi,Ti.

I want to ask a question about CAN network.I found thart all CAN have "MCAN_PSR register",from which the busoff status can be read,but the main domain can be read directly through the register ,but the mcu domain cannot.

the physical address of main domain   is (0x02701044 +n *0x10000),the range of n is 0 to 13.

the physical address of mcu domain is (0x40528044 + m*0x20000),the range of m is 0 to 1.

so I want to know that how to get the value of mcu domain registers.

Thanks .

Best wishes to you!!!

  • Hi,

    main domain can be read directly through the register ,but the mcu domain cannot.

    The MCU domain MCAN_PSR register:

    MCU MCAN0's MCAN_PSR: 0x40528044

    MCU MCAN1's MCAN_PSR: 0x40568044

    Both these registers can be accessed directly if the corresponding MCAN modules are enabled.

    the physical address of mcu domain is (0x40528044 + m*0x20000),the range of m is 0 to 1.

    The formula you have is not correct. For MCU MCAN1 the MCAN_PSR is at 0x40568044. See table 12-7788 of public TRM.

    Regards

    Karan

  • Hi TI,I want to know how to be sure that the corresponding MCAN modules are enabled.I can't throght  core2_0 to get the value of the MCU MCAN0's MCAN_PSR: 0x40528044 or MCU MCAN1's MCAN_PSR: 0x40568044 .

    Do me a favour ,please.

    Thanks you !!!

    May you have a nice day!!!

  • Hi,

    Hi TI,I want to know how to be sure that the corresponding MCAN modules are enabled.

    You can read the MCAN_CREL (Core Release Register) to check if the module is enabled or not, an access to the MCAN_CREL for a MCAN module which is not enabled will lead to a crash. If the module is enabled, this register will give you a valid value.

    Regards

    Karan

  • mcan core register address

    The pictuer adove shows the picture of address

    main register access

    I use devmem2 to get the value of main mcan1 register.I can get the value of this register(0x02701000)

    mcu register access

    but I can't get the value of this register(0x40528000),so I can't figure out how to make sure the mcu mcan are enabled??

    so there are some ways to solve it.

    Best wishes!!!

  • Hello,Ti.

    I change my dts,change the mcu_mcan0 and mcu_mcan1 to be disabled,the question of below has been closed.

    SDK Version 7.3 set the mcan enable in dts file,those register can be accessed through mcu2_0。

    Thanks,best wishes to you!

  • Hi,

    Sorry I'm a little confused here. Below is my recommendation:

    If you are trying to control MCAN (any instance) from RTOS core, then you should enable the MCAN module from that core using the Board_init() API. In this case the Linux DTS should have these nodes disabled so that there is no conflict.

    In case the MCAN needs to be controlled via A72 running Linux then the DTS needs to have these nodes enabled.

    Hope this clarifies, let me know if you have more questions.

    Regards

    Karan