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.

EK-TM4C1294XL: enet_uip example trouble

Part Number: EK-TM4C1294XL

Hello All,

I am new to using the ethernet port on the EK-TM4C1294XL launch pad. I am trying to get a raspberry pi to connect to the TM4C chip. I am using the static IP address on the TM4C chip which is "169.254.19.63". For some reason I can send a "SYN" command to the TM4C chip using a TCP Debugger tool on my laptop and the TM4C chip returns a "SYN, ACK" packet and a connection is established.

On the other hand, if I send a "SYN" command from the raspberry pi the TM4C chip does not send anything back or sends an ARP packet instead of a TCP packet. Interesting enough, the "g_pui8TxBuffer" shows that the "SYN, ACK" packet is being constructed correctly but the "MAP_EMACTxDMAPollDemand(EMAC0_BASE);" command simply does not send a TCP packet onto the bus. It is driving me crazy...

I have attached Wireshark captures and the EMAC0 registers right before the MAP_EMACTxDMAPollDemand(EMAC0_BASE); command is called. The code is the provided "enet_uip" example verbatim but with the static IP uncommented.

Any help is greatly appriciated

  • Hi,

      Please don't put your images side by side. It is really hard for me to read. I run the enet_uip example as is (using DHCP) and I don't see a problem. Can you repeat the same problem on when running the example as is with your raspberry pi. enet_uip is a simple server. You will need to enter the server IP address acquired from the DHCP to the browser URL. My acquired IP address is 192.168.254.136. Yours will be different. I'm running the example with both my PC and the LaunchPad connected to a switch. If you are connecting directly between the LaunchPad and the Raspberry Pi then I think you will need to cross-over cable instead of straight-through. As far as why the LaunchPad is not sending the SYNC,ACK when connecting to the Pi board, I don't really know. I will suggest:

      - Run the example as is first. Can you see the webpage?

      - Run the example with your static address. Can you see the webpage?

      - Not sure what your modified program is about when connecting to the Pi. Can you run them with both connected to a switch?

      - If not connected through a switch, can you use a cross-over cable? Does it make a difference?

      - my understanding about the SYNC is that the client sends the SYNC to the server. The server replies with SYNC, ACK and the client finally sends ACK again. In your modified program, who is the server and who is the client? I will suggest you compare the wireshark log on the SYNC transaction between the working example and your modified code. I hope you can find some subtle difference.