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.

DCAN Message RAM Problem

Hi,

The platform is TDA2XX, under SYS/BIOS.

The DCAN is in normal mode, only want to send data.

The registers were configured according to datasheet, but the DCAN could not send data.

By finding the value of the registers, I meet  the following problems.

Question 1:

The TxRqst bit is set (TxRqst = 1),  the NewData bit is set (NewData = 1). And the registers of IF1DATA/IF1DBTB has the data need to be send. But the value of the Message RAM (0x4ae3d0000 + offset) is 0x00000000, which means no data in the Message RAM.

According to the datasheet, when the bit of TxRqst and NewData are both set to one, the transmit begin. But there is no any data is sent out.

Question 2:

The Message Object (0x40) find the parity error. But I don't enable the function of parity check. 

Question3:

Whether need to enable the function of  Automatic Retransmission?? (Normal mode, only want to send data).

Question4:

Whether need to enable the function of  Auto-Bus -On?? (Normal mode, only want to send data).

Hope to get some advice. 

Ann

  • The TDA2xx device is not supported in this forum. Please contact your TI support representative for help on this topic.

    Thanks
    Kyle
  • Which forums could I post this problem?

  •   Hi Ann,

     I'm using the VAYU board that I think is similar to the TDA2xx and I'm experiencing the same problem with DCAN, with some trying I found that you dont have to configure the message ram with the HW so simply skeep the  PlatformDcanMessageRamInit(0); of the starterware that is don't do :

    REG32((SOC_CTRL_MODULE_CORE_CORE_REGISTERS_BASE + CTRL_CORE_CONTROL_IO_2)) |= CTRL_CORE_CONTROL_IO_2_DCAN1_RAMINIT_START_MASK;


    Maybe there is some problem with this HW ram init.

    The transmission is also problematic I've used the line of the DCAN example in starterware.


    If you get news on the msg ram configuration please share it.


    Best regards.

    Aligi.

  • No need to use Automatic Retransmission nor Auto-Bus -On for experimental purpose these are for the real world if you want make the communication more reliable

    Regards.
    Aligi.
  • Hi Aligi.
    What is the meaning of the "skeep the PlatformDcanMessageRamInit(0)"? Do I need to delete the PlatformDcanMessageRanInit(0) in DCAN init?

    And the "REG32((SOC_CTRL_MODULE_CORE_CORE_REGISTERS_BASE + CTRL_CORE_CONTROL_IO_2)) |= CTRL_CORE_CONTROL_IO_2_DCAN1_RAMINIT_START_MASK;" you mentioned, should I add this in the DCAN init?

    This RAM problem has bothered me for aran long time. I can write the data I want to send in the message ram, but the transmission still has problem.

    If you have any idea about DCAN message RAM, please share it . Thanks a lot.

    Best regards.
    Ann
  •  HI Ann,

    yes the right sentence was skip the PlatformDcanMessageRanInit(0).

    Consider that I'm working with the Jacinto 6 (Vayu evaluation board) and I've had some similar problem so I assume you are working with J6.


    The PlatformDcanMessageRanInit(0) do something like:

    REG32((SOC_CTRL_MODULE_CORE_CORE_REGISTERS_BASE + CTRL_CORE_CONTROL_IO_2)) |= CTRL_CORE_CONTROL_IO_2_DCAN1_RAMINIT_START_MASK


    while (REG32((SOC_CTRL_MODULE_CORE_CORE_REGISTERS_BASE + CTRL_CORE_CONTROL_IO_2))  &  DCAN1_RAMINIT_DONE_MASK != DCAN1_RAMINIT_DONE_MASK) { /* wait */ }

    I've try to set a timeout in the while otherwise the J6 loop there forever but doing this seems to compromise the msg ram and I can't set it any more to the value I want.

    I'm waiting answers from a TI FAE I will tell you more when I get it.


    I've tryed the linux CAN driver (soketcan: github.com/linux-can) and this are working well on my A15 core, you can download the sources from the link.

    Regards.

    Aligi.

  • Hi Aligi,
    I'm working with J6 too. With trying, the DCAN can send data now.
    I configued the DCAN to normal mode before, but it couldn't send data. Changing it into test mode, it works.

    Now, the configuration about DCAN:
    DCAN_CTL: The value of TEST bit is 1; (0x00011480)
    DCAN_TEST: The valude of EXL bit is 1; (0x00000100)

    Using the way you told me to init the message ram.
    I haven't found the way to send data in normal mode. Do you solve you problem, or get the response from TI?

    Best regards
    Ann.
  •   Hi Ann,


    I have received the starterware_01_03_00_09 but unfortunately it seems not to solve the CAN problem I'm investigating with a TI FAE, I'll tell you if I'll find a solution.


    Best regards.

    A.

  • Hi,
    I had solved the DCAN problem, and now the DCAN can send the data I want. I made the following changes:

    Changing it into test mode, it works.
    Now, the configuration about DCAN:
    DCAN_CTL: The value of TEST bit is 1; (0x00011480)
    DCAN_TEST: The valude of EXL bit is 1; (0x00000100)

    Best regards.

    Ann