Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

C6472 EMAC

We need to interface C6472 DSP with Xilinx FPGA on a custom board. We have two links between DSP and FPGA: sRIO or EMAC.

Using the sRIO requires an expensive core. Here the price is going to be a barrier so we are looking into using the EMAC of the DSP as data link. We wouldn't be running any high level protocol such as IP/UDP/TCP.

I'm hoping to achieve 100MB/sec bidirectionnally per EMAC (1Gbit / full duplex). Does that sound feasible?

We would need to develop a low level driver for EMAC. The CSL doesn't seem to have any example about the EMAC. Everything seems to be in the NDK which does not have low level examples.

I found this AN on the web: "SW Operation of Gigabit Ethernet Media Access Controller on TMS320C645x DSP" which provides low level examples for the C6455. Is there such document / source code for the C6472?

  • This is an excellent way to provide a high-speed point-to-point communication path on a board. You can connect directly from the DSP EMAC pins to the pins on the FPGA without having to go through a pair of PHY chips. I was able to easily do this on a board with multiple DM6467s; it was designed to allow data transfer between 2 of the DM6467s. I have attached a short presentation that shows the connections to make and includes some performance information. With the DM6467, the ARM9 core was responsible for the EMAC interface instead of the C64x+ core.

    jean-philippea said:

    I'm hoping to achieve 100MB/sec bidirectionnally per EMAC (1Gbit / full duplex). Does that sound feasible?

    The biggest barrier to achieving the throughput you want will be your ability to keep the transfer blocks filled. If both sides are constantly pushing data onto the bus and keeping the Buffer Descriptors filled, you should be able to get this performance. But if your protocol requires one side to request something from the other, then there will be latencies involved that will drop the performance. This is mentioned in the attached presentation.

    jean-philippea said:

    I found this AN on the web: "SW Operation of Gigabit Ethernet Media Access Controller on TMS320C645x DSP" which provides low level examples for the C6455. Is there such document / source code for the C6472?

    The C6455 is similar enough to the C6472 that it should be easy to port the code. Conceptually, this is true, but I have not looked at the AN and have not compared the available software libraries for the two DSPs. But the C64x+ core is almost identical in the two devices, and the EMAC and the EDMA3 are, too.

    Inter-DM6467 Communications Using Direct GMII Connections E2E .pdf
  • Hi.

    I am using the EVMC6474 Dev board, and I am having an issue that is exactly the reverse of your issue:

    There are good low level examples for the EMAC in the C6474 CSL. but no TCP/IP stack library with high level examples. Our application requires the use of TCP/IP over Ethernet, but the examples code only covers the Ethernet layer The only available high level TCP/IP examples requires the use of DSP/BIOS and the learning curve for understanding them is quite steap. I might suggest you try the EMAC example code from the C6474 CSL to see if you could perhaps get it going on the C6472.

     

    As from my side, I am looking for a proper TCP/IP stack library that does NOT require DSP/BIOS and has good and proper example projects. Can anyone help??

     

    Regards.

    Estian.