q405228062 发表于 2012-5-3 13:17:06

stm32f107+dm9161 while (ETH_GetSoftwareResetStatus() == SET); 一直在这...

void Ethernet_Configuration(void)
{
ETH_InitTypeDef ETH_InitStructure;

/* MII/RMII Media interface selection ------------------------------------------*/
#ifdef MII_MODE /* Mode MII with STM3210C-EVAL*/
   GPIO_ETH_MediaInterfaceConfig(GPIO_ETH_MediaInterface_MII);

/* Get HSE clock = 25MHz on PA8 pin (MCO) */
    RCC_MCOConfig(RCC_MCO_HSE);

#elif defined RMII_MODE/* Mode RMII with STM3210C-EVAL */
GPIO_ETH_MediaInterfaceConfig(GPIO_ETH_MediaInterface_RMII);

/* Set PLL3 clock output to 50MHz (25MHz /5 *10 =50MHz) */
RCC_PLL3Config(RCC_PLL3Mul_10);
/* Enable PLL3 */
RCC_PLL3Cmd(ENABLE);
/* Wait till PLL3 is ready */

while (RCC_GetFlagStatus(RCC_FLAG_PLL3RDY) == RESET)
{}
/* Get PLL3 clock on PA8 pin (MCO) */
RCC_MCOConfig(RCC_MCO_PLL3CLK);
#endif

/* Reset ETHERNET on AHB Bus */
ETH_DeInit();

/* Software reset */
ETH_SoftwareReset();

/* Wait for software reset */
while (ETH_GetSoftwareResetStatus() == SET)
{
    printf("\r\n\n\n\r WWW.ARMJISHU.COM   3");
}就是在这边出不了循环。

网上说大概是时钟问题,那位兄弟可以教我下怎么检查dm9161的时钟是否正常。还有什么情况会出现这种情况呢??
我用的是dm9161aep,换新的还是同样的问题。。。我在做毕设,这个困扰了好几天了。。                                                                       

aozima 发表于 2012-5-3 14:17:42

检查 RMII_REF_CLK 50Mhz 信号。

q405228062 发表于 2012-5-3 14:34:00

aozima 发表于 2012-5-3 14:17 static/image/common/back.gif
检查 RMII_REF_CLK 50Mhz 信号。

没有信号一条直线。。在线等。。。谢谢

aozima 发表于 2012-5-3 14:35:57

思考50M应该由谁产生。

不然就继续等吧,或许我念个骂就有信号了。。

q405228062 发表于 2012-5-3 14:36:51

哦谢谢

q405228062 发表于 2012-5-4 15:19:25

aozima 发表于 2012-5-3 14:35 static/image/common/back.gif
思考50M应该由谁产生。

不然就继续等吧,或许我念个骂就有信号了。。

大哥 现在时钟有了但是插上网线后提示:timeout == PHY_READ_TO 网口连接失败

aozima 发表于 2012-5-6 16:40:24

q405228062 发表于 2012-5-4 15:19 static/image/common/back.gif
大哥 现在时钟有了但是插上网线后提示:timeout == PHY_READ_TO 网口连接失败   ...

dump寄存器及搜索PHY地址。

q405228062 发表于 2012-5-6 18:53:05

谢谢了我看下

fqforever 发表于 2012-5-6 18:59:41

谢谢!非常感谢!

q405228062 发表于 2012-5-8 15:46:51

aozima 发表于 2012-5-6 16:40 static/image/common/back.gif
dump寄存器及搜索PHY地址。

谢谢,我用同样的电路图,一个板子测得的地址为0x00,一个为0x08.。现在0x00的板子工作正常了。。

aozima 发表于 2012-5-8 19:32:48

本帖最后由 aozima 于 2012-5-8 19:34 编辑

两个地址一对比,查哪很清楚了。
不过板子上只有一个PHY的话,哪个地址都无所谓。
直接使用搜索+PHY的OUI来自动识别就可以了。

但两个完全一样的电路地址不一样则要排查虚焊和短路的问题了。

q405228062 发表于 2012-5-10 10:33:19

aozima 发表于 2012-5-8 19:32 static/image/common/back.gif
两个地址一对比,查哪很清楚了。
不过板子上只有一个PHY的话,哪个地址都无所谓。
直接使用搜索+PHY的OUI来 ...

把stm32重新焊了一次,地址变0x00了。。谢谢帮忙了 我的毕设可以告一段落了。

micheal0311 发表于 2012-5-26 22:24:26

也玩玩STM32和DM9161

hkhu 发表于 2013-7-4 15:15:24

我的也是啊

sudekao 发表于 2023-5-25 15:16:25

请问一下,下载到板子里面可以运行,调试的时候卡在while (ETH_GetSoftwareResetStatus() == SET);里面啦,这个是什么问题
页: [1]
查看完整版本: stm32f107+dm9161 while (ETH_GetSoftwareResetStatus() == SET); 一直在这...