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,换新的还是同样的问题。。。我在做毕设,这个困扰了好几天了。。
检查 RMII_REF_CLK 50Mhz 信号。 aozima 发表于 2012-5-3 14:17 static/image/common/back.gif
检查 RMII_REF_CLK 50Mhz 信号。
没有信号一条直线。。在线等。。。谢谢 思考50M应该由谁产生。
不然就继续等吧,或许我念个骂就有信号了。。 哦谢谢 aozima 发表于 2012-5-3 14:35 static/image/common/back.gif
思考50M应该由谁产生。
不然就继续等吧,或许我念个骂就有信号了。。
大哥 现在时钟有了但是插上网线后提示:timeout == PHY_READ_TO 网口连接失败 q405228062 发表于 2012-5-4 15:19 static/image/common/back.gif
大哥 现在时钟有了但是插上网线后提示:timeout == PHY_READ_TO 网口连接失败 ...
dump寄存器及搜索PHY地址。 谢谢了我看下 谢谢!非常感谢! aozima 发表于 2012-5-6 16:40 static/image/common/back.gif
dump寄存器及搜索PHY地址。
谢谢,我用同样的电路图,一个板子测得的地址为0x00,一个为0x08.。现在0x00的板子工作正常了。。 本帖最后由 aozima 于 2012-5-8 19:34 编辑
两个地址一对比,查哪很清楚了。
不过板子上只有一个PHY的话,哪个地址都无所谓。
直接使用搜索+PHY的OUI来自动识别就可以了。
但两个完全一样的电路地址不一样则要排查虚焊和短路的问题了。 aozima 发表于 2012-5-8 19:32 static/image/common/back.gif
两个地址一对比,查哪很清楚了。
不过板子上只有一个PHY的话,哪个地址都无所谓。
直接使用搜索+PHY的OUI来 ...
把stm32重新焊了一次,地址变0x00了。。谢谢帮忙了 我的毕设可以告一段落了。 也玩玩STM32和DM9161 我的也是啊 请问一下,下载到板子里面可以运行,调试的时候卡在while (ETH_GetSoftwareResetStatus() == SET);里面啦,这个是什么问题
页:
[1]