EtherCAT Slave1.12.02
PHY Configuration

The SDK provides an API to configure the PHYs.

Function Description
EC_API_SLV_cbRegisterPhyReset Register PHY reset function
EC_API_SLV_registerPhy Register PHY index, MII address, link polarity and use of RxLink
EC_API_SLV_cbRegisterPhyLibDetect Register a PHY not covered by the SDK
EC_API_SLV_phyRegRead Read PHY Register
EC_API_SLV_phyRegWrite Write PHY Register

PHY Examples

Register a PHY to SDK

PHYs not covered by the SDK must be registered as described below. Be aware if the new PHY supports EtherCAT network. For more information refer to the Application Note –PHY Selection Guide on the EtherCAT home page.

#define PHY_TLK110_ID 0x2000A211
int16_t EC_SLV_APP_TLK110_phyLibDetect(void* pPhyLibCtxt_p, uint32_t phyId_p, EC_API_SLV_SPhyDescriptor_t* pPhyLibDesc_p)
{
int16_t retVal = -6; /* uknown phy */
/* exact TLK110, uper word is TLK105 also */
if (phyId_p == PHY_TLK110_ID)
{
OSAL_printf("TLK110 detected\r\n");
pPhyLibDesc_p->softwareReset = EC_SLV_APP_TLK110_softwareReset;
pPhyLibDesc_p->softwareRestart = NULL;
pPhyLibDesc_p->enablePhyAutoMDIX = EC_SLV_APP_TLK110_enablePhyAutoMDIX;
pPhyLibDesc_p->setMiiMode = EC_SLV_APP_TLK110_setMIIMode;
pPhyLibDesc_p->setPowerMode = EC_SLV_APP_TLK110_powerMode;
pPhyLibDesc_p->getPowerMode = NULL;
pPhyLibDesc_p->configMLED = EC_SLV_APP_TLK110_mLEDConfig;
pPhyLibDesc_p->enableExtFD = EC_SLV_APP_TLK110_extFDEnable;
pPhyLibDesc_p->enableODDNibbleDet = EC_SLV_APP_TLK110_oDDNibbleDetEnable;
pPhyLibDesc_p->enableRxErrIdle = EC_SLV_APP_TLK110_rxErrIdleEnable;
pPhyLibDesc_p->configLed = EC_SLV_APP_TLK110_ledConfig;
pPhyLibDesc_p->configLedBlink = EC_SLV_APP_TLK110_ledBlinkConfig;
pPhyLibDesc_p->enableFastLinkDownDet = EC_SLV_APP_TLK110_fastLinkDownDetEnable;
pPhyLibDesc_p->enableFastRXDVDet = EC_SLV_APP_TLK110_fastRXDVDetEnable;
pPhyLibDesc_p->configSwStrapDone = EC_SLV_APP_TLK110_swStrapConfigDone;
pPhyLibDesc_p->setLinkConfig = NULL;
pPhyLibDesc_p->getAutoNegotiation = NULL;
pPhyLibDesc_p->setMdixMode = NULL;
pPhyLibDesc_p->getMdixMode = NULL;
pPhyLibDesc_p->disable1GbAdver = NULL;
pPhyLibDesc_p->enableRgmiiLowLatency = NULL;
pPhyLibDesc_p->rgmiiTxHalfFullThreshold = NULL;
pPhyLibDesc_p->rgmiiRxHalfFullThreshold = NULL;
retVal = 0;
}
return retVal;
}
EC_API_SLV_cbRegisterPhyLibDetect(EC_SLV_APP_TLK110_phyLibDetect, pAppInstance_p);
void EC_API_SLV_cbRegisterPhyLibDetect(CUST_PHY_CBextPhyLibDetect_t cbFunc_p, void *pContext_p)
Register an application specific Phy Library.
Definition: ecSlvApi_BoardStub.c:163