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.

CCS/EK-TM4C1294XL: MAC PHY Communication example

Part Number: EK-TM4C1294XL

Tool/software: Code Composer Studio

Hi,

How can I modify the programming example given in the Ethernet Controller section of the document "TivaWare Peripheral Driver Library User's Guide" to send a raw Ethernet frame from the TM4C1294XL LaunchPad?

I have created an Ethernet frame by filling a buffer with MAC destination address, MAC source address, Ethertype, Payload  and passed that to the PacketTransmit() function along with its length. But I could not observe any frame from the board in Wireshark in my PC. In the example, the ProcessReceivedPacket() function is inside another function EthernetIntHandler().  Inside the ProcessReceivedPacket() function there is another function ApplicationProcessFrame() which is called and doesn't have any definition.  I have tried using these functions in various ways but  could not succeed in transmitting a frame. Please help me how to use this example or what changes are to be done to send a raw Ethernet frame over physical layer without the TCP/IP stack.

  • Hi,
    I will suggest you start with the TivaWare ethernet example and see how the TCP/IP stack interfaces to the lower level EMAC drivers like what you see in the example in the TivaWare Peripheral Driver User's Guide. The example shown in the user's guide only serves as a guide on how to build upon a real application and it is by no means a ready-to-run example. Why don't you ping the device after the the device is initialized and see if the device is taking the EMAC interrupt and receiving the ping command? Note that you will also need to initialize the vector table to include the EthernetIntHandler.
  • Hi,
    I hope you are making some progress here. Please note that an Ethernet frame must be a valid frame that can be understood by other hosts as well as the WireShark on the network. The payload cannot be just random. There is a 4 byte FCS (frame check sequence) that must verify against the payload. What you might want to try is to first run a real TCP/IP example on your board. Use the wireshark to capture the entire frame content. Copy the entire frame content into your non TCP/IP project as the Ethernet frame and see if that has any chance of working.