Other Parts Discussed in Thread: SYSCONFIG,
Hi all TI experts,
I am currently using the AM2431 for developing our company's product. I am connecting to another switch IC - RTL8363 via the AM2431's RGMII for Ethernet usage. This is based on modifying the "Enet Layer 2 CPSW SWITCH" example program to suit the needs of my product. My SDK version is mcu_plus_sdk_am243x_09_01_00_41, and the sysconfig version is 1.18.1. This is my basic situation.
The issue I'm encountering is that Ethernet is unable to instantly return packets each time a specific packet is received, as per my requirements. My product receives a packet of approximately 1500 bytes every 10us to 30us, with the speed varying slightly under different conditions. Periodically, a specific packet that requires a response will be received. This packet is also scheduled to be sent at regular intervals, ranging from 5ms to 60ms. However, the program modified from the "Enet Layer 2 CPSW SWITCH" example is unable to promptly respond to this specific packet, resulting in several specific packets being received before a response is sent.
Based on another discussion, I modified the program by disabling the DMA event and using a timer to periodically trigger EnetApp_rxIsrFxn(). The link is as follows: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1290363/lp-am243-enet-layer-2-cpsw-switch-example-is-missing-interrupts This method did speed up the response time, allowing for two packets to be sent back after every two specific packets received. However, it still doesn't achieve a response for every specific packet received. Is there a way to accomplish this?
Another problem is that our products will be chained together, connected via two ports on the Ethernet IC - RTL8363. RTL8363 has three ports: the first port serves as the product's input to receive Ethernet frames, the second port connects to the AM2431, and the third port acts as an output to connect to the next product's input port. In this manner, multiple products are chained together. I found that when only one product is connected to our controller, although it does not respond to every specific packet as described above, it does respond once every two times. However, when two products are connected, the frequency of responses drops significantly. I connected to the AM2431 in debug mode and found that the program does indeed receive specific packets and executes the packet sending part, but the packet transmission is not visible on Wireshark. What could be the possible reason for this?
Additional information: Since all the products run the same firmware, they initially have the same MAC address. I addressed this by adding entries to the ALE (Address Lookup Engine) table, allowing products to receive packets with specific MAC addresses. I wonder if this could be the cause of the issue.
Best,
Larry