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.

TMS320F28388D: The communication from CPU1 core to CM

Part Number: TMS320F28388D
Other Parts Discussed in Thread: TMDXIDDK379D, C2000WARE

Hi team,

Here're some issues from the customer may need your help:

During the debugging of the communication of F28388_IPC:

1) There are 2 RAM blocks,  MSGRAM_CM_TO_CPU and MSGRAM_CPU_TO_CM(2k byte) per datasheet. Regardless of the configuration, it can be used to exchange data between the C28 core and the CM core. So what is the approximate delay time of a 2k data exchange?

2) Here're 2 IPC communication routines, respectively using IPC_sendCommand and IPC_sendMessageToQueue function. What's the difference between these 2 functions? 

Also Readdata is defined in the program in the RAM area of MSGRAM_CPU_TO_CM and can change data in memory browser even if this function is not called. From the customer's understanding: IPC_sendCommand/IPC_sendMessageToQueue is used for the transmission of large amounts of data, for example, the data in GSx_RAM?

3) During the debugging of TMDXIDDK379D, c2000\C2000Ware_MotorControl_SDK_3_03_00_00\solutions\tmdxiddk379d\f2838x this document provide the routine with EtherCAT (only including the PDO process data). The creation of the object dictionary requires the addition of the object dictionary library in the original ti_cia402.XML and then modify the object dictionary of object.h. Since it's complex, the customer would like to know is there a simpler way? Just providing the standard CIA402_xlxs documentation, then execute the Add Object Dictionary to generate the cia402appl.c.h file.

Could you help check this case? Thanks.

Best Regards,

Cherry

  • Hi Cherry,

    We have assigned the thread to EtherCAT subject matter expert. We should receive response by tomorrow.

    Thanks & Regards,

    Santosh

  • Hi Cherry,

    For questions #1 and #2 I will need to ask someone else on the team to respond.

    For #3, if they're wanting to evaluate CiA402 on F2838x EtherCAT then we do have an example for it in the C2000WARE installation. Beckhoff has additional documents available about the same CiA402 example solution as well.

    C:\ti\c2000\C2000Ware_4_01_00_00\libraries\communications\Ethercat\f2838x\examples\f2838x_cm_cia402_solution

    C:\ti\c2000\C2000Ware_4_01_00_00\libraries\communications\Ethercat\f2838x\docs

    Best,

    Kevin

  • 1. The message RAMs are essentially shared RAMs with the same access times as the other RAMs. You can declare variables and buffers and put them in the message RAMs like normal. The delay depends on how the software is writing the data to the RAMs. Note that the message RAMs also can be accessed by the DMA, so that's an option if there's a need to transfer large amounts of data with little CPU interference.

    2. The queue functions create and manage a circular buffer for message objects. As the name suggests, the queue functions will queue up messages if more than one has been sent before the other side has a chance to read them. The IPC_sendCommand function doesn't have this queuing integrated and it's up to the application calling the IPC functions to check for acknowledgment/response before sending another.

    The IPC functions are just providing a software framework for sending commands and queuing up messages. Their use is totally optional. If you wanted to simply to declare and write to an array in a known location in the message RAM and write directly to the IPC flags to notify the other core that data is ready without ever calling the IPC functions, you can do that.

    Whitney

  • Hi Kevin and Whitney,

    Thanks for your help.

    Here's a follow up questions:

    EtherCAT routines for F2838X have been evaluated and also tested f2838x_cm_cia402_solution (add modify object dictionary, add SDO parameter read and write). Is there any more guidance or documentations?

    Thanks and regards,

    Cherry

  • Hi Cherry,

    EtherCAT routines for F2838X have been evaluated and also tested f2838x_cm_cia402_solution (add modify object dictionary, add SDO parameter read and write). Is there any more guidance or documentations?

    Yes, Beckhoff has some in Application Note ET9300 Section 10 "CiA402 drive profile". I think this is available in the Slave Stack Code download (https://www.ethercat.org/en/products/54FA3235E29643BC805BDD807DF199DE.htm).

    Also I found section 7 in https://www.ti.com/lit/tidu800 helpful in the past.

    Best,

    Kevin