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.

[参考译文] DP83620:2AAXXLUG3/DP83620SQ IC 批配置错误

Guru**** 666710 points
Other Parts Discussed in Thread: DP83620
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1201796/dp83620-2aaxxlug3-dp83620sq-ic-batch-configuratation-error

器件型号:DP83620

大家好、

我们有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、Registered_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、Registered_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、Registered_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、Registered_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、Registered_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、Registered_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、Registered_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、Registered_value_x)!= GMAC_OK);
   } while (reg_value_x &(1<<9));

请提供您的建议

此致、

Nikunj

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Nikunj:

    我不确定我是否正确理解了您的问题。

    当 02ADYLUG3/DP83620SQ 时、DP83620上的一切都可以正常运行、 但当您更改为 2AAXXLUG3/DP83620SQ 时、会出现问题吗?

    在我看来、 当您从 02ADYLUG3切换到2AAXXLUG3时似乎存在问题 ?  

    当 2AAXXLUG3/DP83620SQ 时、您是否能够建立链路?

    --

    谢谢!

    林希尔曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Hillman:

    谢谢您的重播,

    Achualy 我的问题解决,问题是时钟振荡器,在组装他们安装错误的部件,没有提供适当的电压 LEVLE (频率与建议匹配)的 OSC 建议 DP83620数据表, 我替换为适当的部件,现在通信工作.

    感谢您播放提示。

    此致、

    Nikunj