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.

AMIC110: PROFINET with only 1 Port

Part Number: AMIC110

Hi,

we designed a board similar to the evalboard with 2 PHYs and successfully implemented the EtherCAT and PROFINET applications. In the new Prototype the second PHY was cut, so that we now have to adapt the Software. The EtherCAT application is working fine. However, i am struggeling to get the PROFINET device running with only 1 Port.

So far i have adapted the Hardware Init to only 1 PHY. This leads to a PROFINET device, which i can find while scanning with TwinCAT. However, no communication can be established (only LLDP packages from the device?). I think i need to configure the EMAC_Switch to only use 1 PHY but thats where i am stuck at the moment.

Thanks in advance and best regards,

Philipp

  • Hi
    One clear requirement is that both PRUs should be running and we need to keep the memory maps intact. Can you confirm if you are doing the same? We have not tried this combination.

    Can you also share the versions of software packages you are using?

    Regards
    Dhaval Khandla

  • Hi

    following versions are used:

    - Bios 6.73.00.12 

    - edma3_lld_2.12.05.30

    - nkd 3.4.01.01

    - am335x pdk 1.0.12

    - PRU-ICSS v01.00.03.04

    -xdctool 3.50.7.20 and gnu v7.2.1 compiler

    - Profinet Stack VERSION 5.5.0.0

    i dont know how to observe if the PRU's are running or not and would need some assistance.

    However i have made the following observation. Using this Software (Init changed to 1 phy and switchEmacCfg->phyAddr[1] = 0 ) with a Board where 2 Phys are present, the application is working on port 1 and as expected the port 2 which has the "not initialized/to the software unknown phy address" PHY is not working. With a similar Board where the second PHY is desoldered it is not working. For both boards i can obsevere that in the "CSL_MDIO_phyLinkStatus" function returns link down for the second PHY. In the case where the software is not working i can observe that the Profinet has errors/problems with receiving DCP multicast frames.

    EDIT: I remembered i can simply connect to the PRUs with CCS Debug. I am not sure how to figure out if the PRUs are running correctly except that they happily run circles through the assembler code (which is the case for both PRUs in both setups). The only noticable difference between the two setups described above, is in  the "MDIOALIVE" register of the PRUs shared MDIO register. For the board with 2 phys it shows 0x2002 which is bit 13 and bit 1 which afaik corresponds to the 2 PHY addresses and for the one with only 1 phy this register is 0x02. In both cases MDIOUSERACCESS1 is 0x0.

    cheers

    Philipp

  • Hi
    Can you confirm that "PRUICSS_pruWriteMemory()" calls in "PN_initDrv()" are passing? "PN_initDrv()" is called from "taskPruss".

    In the case where the software is not working i can observe that the Profinet has errors/problems with receiving DCP multicast frames.

    Can you provide more details here? Do the frames drop? Is there any CRC error or anything of such sorts?

    Regards
    Dhaval Khandla

  • Hi

    so i figured i had some weird Profinet or SNMP config stored in the Flash and a factory reset via TwinCat now leads to a running device. The remaining problem is that the DefaultProfinetConfig i get after flashing a new device wont work until i do a factory reset. Thus, i think the remaining problem is probably best solved by the Molex support with which i am already in contact. However, if i have some relevant insights i try to post it here so that it might help someone in the future.

    Regards

    Philipp