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.

AM572x PRU interconnect with DCAN and MPU

Other Parts Discussed in Thread: AM5728

I was taking a look to the TRM of AM5728, and it seems to indicate that the PRU has access to DCAN module through L3 and L4 interface. PRU is connected to the L3 Interconnect which is connected to the L4 Interconnect which is connected to the DCAN. Is that OK or I am wrong?

It is possible to make a communication channel like this:

|ARM| <---> |PRU| <-----> |DCAN| <----> |Peripherals|

Thanks for your help!

  • Yes, your assumptions are correct.
  • Ok, thanks for your answer!

    Would you be kind enough to provide me some guidance or related information on how to make a communication channel like this one?

    |ARM| <---> |PRU| <-----> |DCAN| <----> |Peripherals|

    The most important point I need guide is in how to make the PRU to talk with the ARM and the DCAN module. I will be very grateful, if you send me some related documentation.

    Thank you in advance for your help!

  • Daniel,

    The TI supported method for the PRU to communicate with the ARM core is RPMsg. From your other E2E post is seems like you are familiar with the RPMsg examples that are provided out of the box in the Linux Processor SDK. These examples can be found in the PRU Software Support Package that is included in the Linux Processor SDK 'example-applications/pru-icss-x.y.z/examples/am572x/' folder. Here is a wiki page that explains how to get started with RPMsg: 

    The PRU to DCAN connection will be handled differently. The PRU has access to the global memory map of the device which means that you can write PRU code that can directly access the registers of the DCAN peripheral. See the 'example-applications/pru-icss-x.y.z/include/am572x_2_0/sys_pwmss.h file for an example of a header file that you can use from the PRU in order to access a peripheral in the global memory map.

    Jason Reeder

  • Thanks for the answer. I will take a look on the documentation and guides you provide me.

    Daniel Garbanzo
  • Hi Jason,

    I played around with the RPMsg examples and found out that the maximum performance I could get out was about 20 MB/s when writing to Host Linux.

    My questions here:
    Should RPMsg be faster?
    Is there a faster way I can use to communicate with other non PRU Cores?

    Regards,
    Matthias