Other Parts Discussed in Thread: AWR2944
Tool/software:
Hi,
In the demo High end corner radar demo, in the AWR2944 EVM ,only DP83tc812 works. There are two PHY addresses as belows:
in the ti_board_config.c file:
static const EnetBoard_PortCfg gEnetCpbBoard_awr294xEthPort[] =
{
{ /* "CPSW3G" */
.enetType = ENET_CPSW_2G,
.instId = 0U,
.macPort = ENET_MAC_PORT_1,
.mii = { ENET_MAC_LAYER_GMII, ENET_MAC_SUBLAYER_REDUCED},
.phyCfg =
{
.phyAddr = 1,
.isStrapped = false,
.skipExtendedCfg = false,
.extendedCfg = &gEnetCpbBoard_dp83tc812PhyCfg,
.extendedCfgSize = sizeof(gEnetCpbBoard_dp83tc812PhyCfg),
},
.flags = 0U,
},
};
Here phyAddr is PHY device address.
In the ti_board_open_close.c file,
/* Show alive PHYs */
if (status == ENET_SOK)
{
Enet_IoctlPrms prms;
bool alive;
uint32_t i;
for (i = 0U; i < ENET_MDIO_PHY_CNT_MAX; i++)
{
ENET_IOCTL_SET_INOUT_ARGS(&prms, &i, &alive);
ENET_IOCTL(hEnet,
coreId,
ENET_MDIO_IOCTL_IS_ALIVE,
&prms,
status);
if (status == ENET_SOK)
{
if (alive == true)
{
EnetAppUtils_print("PHY %d is alive\r\n", i);
}
}
else
{
EnetAppUtils_print("Failed to get PHY %d alive status: %d\r\n", i, status);
}
}
}
Here i should be equal to phyAddr, is that right?
In the D83TC812 datasheet, there is a PHY address ID as below:
Here the value of PHY address ID is decided by the pins RX_CTRL and RX_ER strap mode. Is there any relation between PHY address ID and the above two addresses? Must they be consistent?
Now we have encountered a problem: for the hardware view ,RX_CTRL is in the mode 1 ,RX_ER is in the mode 1 and we can obtain that PHY address is 0. But in the high end corner radar demo, i is 1, and phyAddr should also be 1, Dp83tc812 can work well. If we set phyAddr as 0, Dp83tc812 can not work well, what is the reason for that?
BR,
Rata