Other Parts Discussed in Thread: TMS570LS3137, HALCOGEN
Hello to all,
We are trying to upgrade our hardware from TMS570LS3137 to TMS570LC4357.
While dealing with EMAC, we observe the following problem: When data rate of ethernet interface is fixed to 10 Mbps Full Duplex from computer, system works quite good, no ping sequence misses, however when data rate is set to 100 Mbps, most of the replies to ping requests are not sent. Therefore a reliable link is not established.
Between TMS570 and computer there is no device (switch, router etc.). Connection and hardware units (Phy chip, cable, connection layout) are proved because this system works at 10 Mbps.
To better understand we observe system when we can debug with JTAG. We put a breakpoint to the EMACRxIntISR. At 10 Mbps we clearly get Rx interrupts frequenty. However, when we repeat same procedures for 100 Mbps, device do not stop at EMACRxIntISR even I see an arp request or ping request for it from wireshark in the computer.
I thought this might be because of interrupt manager is dealing with some other high priority interrupts, therefore in a thread I started to control the registers RXINTSTATRAW and RXINTSTATMASKED registers. I put another breakpoint to the places when RXINTSTATRAW and RXINTSTATMASKED fails to be handled. Yet, no difference. Our system handles the interrupts perfectly when they occur, there is no extra need to check these registers.
Already there are threads how EMAC module is problematic for this MCU. By the way thanks a lot to Jiri Dobry in this thread: we were able to make the MCU work in 10Mbps by the help of his difference text.
I want to ask if there is anyone who was able to make EMAC of this MCU work in 100 Mbps. If yes, did she/he changed anything in the HalCoGen code? Can you share these changes? I am using HalCoGen version 04.07.01, created in 11 December 2018.
Thanks for your help