大家好、
我们有02ADYLUG3/DP83620SQ 批次的 DP83620 IC 和 IC 的配置工作正常,
但在2AAXXLUG3 / DP83620SQ 批次中,我们有一些与配置设置 IC 不响应和 LED2发光强度较低相关的问题。
初始化代码如下所示
静态空 eth_init (void)
{
// Pinmux 设置
PIO_CONFIG_PIN_GROUP (PIOD、0x1FFFF、PIO_PERIPH_A);
PMC_ENABLE_PERIPH_clk (ID_GMAC);
gmac_option.uC_copy_all_FRAME = 1;
gmac_option.uC_no_boardcast = 1;
gmac_option.uC_mac_addr[0]= Ethernet_CONF_ETHADDR0;
gmac_option.uC_mac_addr[1]= Ethernet_CONF_ETHADDR1;
gmac_option.uC_mac_addr[2]= Ethernet_CONF_ETHADDR2;
gmac_option.uC_mac_addr[3]= Ethernet_CONF_ETHADDR3;
gmac_option.uC_mac_addr[4]= Ethernet_CONF_ETHADDR4;
if (device_role == device_role_PEV){
gmac_option.uC_mac_addr[5]= Ethernet_CONF_ETHADDR5;
}否则{
gmac_option.uC_mac_addr[5]= Ethernet_CONF_ETHADDR5+2;
}
gs_gmac_dev.p_HW = GMAC;
GMAC_DEV_init (GMAC、&GS_GMAC_dev、&GMAC_OPTION);
GMAC_SET_MDC_CLOCK (GMAC、SYSCLK_GET_CPU_Hz ());
NVIC_setpriority (GMAC_IRQn、6);// 6.
NVIC_EnableIRQ (GMAC_IRQn);
GMAC_ENABLE_MANAGEMENT (GMAC、1);
GMAC_PHY_READ (GMAC、0x01、0x11、_VALUE_x);// MICR
REG_VALUE_x = 0x0003;//设置 INTEN 和 INT_OE
while (gmac_OK!= gmac_phy_write (gmac、0x01、0x11、reg_value_x);
while (gmac_OK!= gmac_phy_read (gmac、0x01、0x12、_value_x);// MISR
REG_VALUE_x = 0x0060;// LINK_INT_EN
while (gmac_OK!= gmac_phy_write (gmac、0x01、0x12、reg_value_x);
//单时钟 TX/RX MII 模式(SCMII)!!! ->对于100BASE-FX 很重要:
while (gmac_OK!= gmac_phy_read (gmac、0x01、0x17、_value_x);
REG_VALUE_x |=(1<<6);//发送
REG_Value_x |=(1<<7);//接收
while (gmac_OK!= gmac_phy_write (gmac、0x01、0x17、reg_value_x)
{
}
while (gmac_OK!= gmac_phy_read (gmac、0x01、0x19、_value_x);
REG_VALUE_x &=~(1<<5)|(1<<6));
while (gmac_OK!= gmac_phy_write (gmac、0x01、0x19、reg_value_x);
while (gmac_OK!= gmac_phy_read (gmac、0x01、0x1D、_value_x);
REG_VALUE_x |=(1<<12);
while (gmac_OK!= gmac_phy_write (gmac、0x01、0x1D、reg_value_x);
while (gmac_OK!= gmac_phy_read (gmac、0x01、0x1C、_value_x);
REG_VALUE_x |=(1<<9);
while (gmac_OK!= gmac_phy_write (gmac、0x01、0x1C、reg_value_x);
执行{
while (gmac_phy_read (GMAC、0x01、0x1C、_value_x)!= GMAC_OK);
} while (reg_value_x &(1<<9));
GMAC_ENABLE_MANAGEMENT (GMAC、0);
}
集成电路的2AAXXLUG3/DP83620SQ 批次中
它在 while 循环中处于残桩
while (gmac_phy_read (GMAC、0x01、0x1C、_value_x)!= GMAC_OK);
} while (reg_value_x &(1<<9));
请提供您的建议
此致、
Nikunj