Other Parts Discussed in Thread: TMDS243EVM
Hi support team,
We're using the board TMDS243EVM.
Our final goal it to load our own EtherNet/IP stack on the AM243x CPU.
I followed this guide to use ICSS-EMAC:
https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/ICSS_EMAC.html
But I can see no link detection when trying to send Ethernet packets.
Because of the issue i2329 [MDIO interface corruption (CPSW and PRU-ICSS)]So, I followed this guide to load the MDIO in Manual Mode:
https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/INDUSTRIAL_COMMS_MDIO_MANUALMODE_FW_USAGE.html
(For details about i2329, see https://www.ti.com/lit/er/sprz457g/sprz457g.pdf?ts=1680680167338&ref_url=https%253A%252F%252Fsoftware-dl.ti.com%252Fmcu-plus-sdk%252Fesd%252FAM243X%252Flatest%252Fexports%252Fdocs%252Fapi_guide_am243x%252FINDUSTRIAL_COMMS_MDIO_MANUALMODE_FW_USAGE.html)
First, I load the PRU FW for on PRU0 and PRU1 with this:
C:\ti\mcu_plus_sdk_am243x_08_05_00_24\source\industrial_comms\ethernetip_adapter\icss_fwhal\firmware\mii\ethernetip_adapter_pru0_bin.h
C:\ti\mcu_plus_sdk_am243x_08_05_00_24\source\industrial_comms\ethernetip_adapter\icss_fwhal\firmware\mii\ethernetip_adapter_pru1_bin.h
Then, I load the MDIO FW for Manual Mode located here:
C:\ti\mcu_plus_sdk_am243x_08_05_00_24\source\industrial_comms\ethercat_slave\icss_fwhal\firmware\g_v1.3\mdio_fw_bin.h
After that, I call ICSS_EMAC_Params_init(), initialize the struct icssEmacParams field before calling ICSS_EMAC_open().
When I step into ICSS_EMAC_open() with the debugger, I can see no link on both of the stacked ICSSG Ethernet ports even if I connect/disconnect a cable on it.
In MDIO_phyLinkStatus(), I can see theses MDIO registers:
I wonder if is normal as in the API guide page, it is mentioned that some registers are not available (MDIO_VERSION_REG, MDIO_CONTROL_REG...) (See § "Impact")
If don't load the MDIO FW for Manual Mode setup, just to compare, I can see exactly the same reg values, weird...
It is as if the loading of MDIO FW in Manual Mode didn't work, that could explain the link not detected, according to i2329.
What could be the cause of the link status not detected on both Ethernet ports in my implementation?
Did I miss something?
Just to see, I also tried to load the demo project "enet_lwip_icssg_am243x-evm_r5fss0-0_freertos_ti-arm-clang", I can see the link state changing when I connect/disconnect the Ethernet cable, so the hardware is working fine.
Thanks for your help.