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.

TM4C129x Ethernet questions

For the new line of PLCs we are developing we've gotten most of the functionality working.  We held off on the Ethernet because neither of our two early prototype customers needed Ethernet.  However Ethernet is a key feature of the PLC.

 

Our original product development, several years back, was based on a Stellaris processor.  We developed our own TCP/IP stack, due to the performance demands of the applications and the poor state of what was then the LWIP stack that TI had.  LWIP has improved, but the stack that we developed is still beyond what is the current LWIP.

 

I would like to replace the very low level code that we used for the Stellaris development with what is required for the TM4C29 chips.  All we need to do is initialize the Ethernet functionality, and do TCP/IP message transfers.

 

Unfortunately, the TIVAware examples do HTTP or use or use an RTOS.  They also assume that you will be using the pre-packaged stack and do not have explanations of just what is required to set up the port and achieve low level message transmit and receive.  If I can get to that point, I can handle everything above it.

 

I am trying to piece together what I can.  However, if you could either find a good application note on how to do this, or find someone that I could talk to, I'd appreciate it.

  • Hi Shawn,
    Are you looking for Ethernet APIs for TM4C129? The TM4C EMAC is completely different from the LM3S. For system designers who use lwIP for their Ethernet stack, moving their code should not be hard as they just have to include lwIP version 4 in their project. For system designers who do not use lwIP, code must be rewritten using the EMAC APIs instead of the EthXxxx APIs in Driver Library. Please refer to the chapter 10 in the TivaWare Peripheral Driver Library.
  • I appreciate the response. I am going through both the hardware manual and the TIVAware library documentation. The hardware manual is well written. The TIVAware manual is something that I have struggled through for every function that we've implemented - to be as polite as possible, it is marginal. It does provide a list of individual functions. Parameters are not clearly defined. There is not a discussion of which functions are required, in which order, to accomplish basic tasks. The examples in the library are also quite marginal - they perform the operations that they purport to perform, but there is no explanation, no description of alternative functions, etc. If you are not wanting to do exactly what the example is written to do, it is very difficult to pull apart to something else.

    I've gone through this with USB, A/D, various configurations of timers, CAN, SPI, UARTs, etc. We get there, but the time it takes is often quite painful. There is a very good App Note for A/D set up & use. If there were such an App Note for Ethernet, it would be very helpful. That is what I hope you either had in written form, or you had an expert who could tell me use function A to do this, then function B to do this, etc. Having had to go on previous Easter Egg hunts for this type of thing, it is not unusual to figure out 95%, but spend a month looking for that last 5%. I don't have the time to do that again.
  • I'm strictly curious - where do you find the recent versions of LWIP lacking?  I'm pushing a huge amount of data through TCP and UDP connections using LWIP, considering this is only a 120MHz processor.

    Ethernet performance is definitely not my bottleneck using LWIP, so I'm really just interested how it's hampering you.

    Ben