自己做的STM32F407+LAN8720板子,没插网线LINK灯就常亮,何解?
如题。自己画得板子。
PHY芯片是LAN8720.
网络变压器是HR91105A.
不插上网线HR91105A的LINK灯就是常亮的,感觉不太正常。
原理图如下:
仿真了一下:
HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t *RegValue)
{
uint32_t tmpreg1 = 0U;
uint32_t tickstart = 0U;
/* Check parameters */
assert_param(IS_ETH_PHY_ADDRESS(heth->Init.PhyAddress));
/* Check the ETH peripheral state */
if(heth->State == HAL_ETH_STATE_BUSY_RD)
{
return HAL_BUSY;
}
/* Set ETH HAL State to BUSY_RD */
heth->State = HAL_ETH_STATE_BUSY_RD;
/* Get the ETHERNET MACMIIAR value */
tmpreg1 = heth->Instance->MACMIIAR;
/* Keep only the CSR Clock Range CR bits value */
tmpreg1 &= ~ETH_MACMIIAR_CR_MASK;
/* Prepare the MII address register value */
tmpreg1 |=(((uint32_t)heth->Init.PhyAddress << 11U) & ETH_MACMIIAR_PA); /* Set the PHY device address */
tmpreg1 |=(((uint32_t)PHYReg<<6U) & ETH_MACMIIAR_MR); /* Set the PHY register address */
tmpreg1 &= ~ETH_MACMIIAR_MW; /* Set the read mode */
tmpreg1 |= ETH_MACMIIAR_MB; /* Set the MII Busy bit */
/* Write the result value into the MII Address register */
heth->Instance->MACMIIAR = tmpreg1;
/* Get tick */
tickstart = HAL_GetTick();
/* Check for the Busy flag */
while((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
{
/* Check for the Timeout */
if((HAL_GetTick() - tickstart ) > PHY_READ_TO)
{
heth->State= HAL_ETH_STATE_READY;
/* Process Unlocked */
__HAL_UNLOCK(heth);
return HAL_TIMEOUT;
}
tmpreg1 = heth->Instance->MACMIIAR;
}
/* Get MACMIIDR value */
*RegValue = (uint16_t)(heth->Instance->MACMIIDR);
/* Set ETH HAL State to READY */
heth->State = HAL_ETH_STATE_READY;
/* Return function status */
return HAL_OK;
}
这个函数是可以读取到PHY寄存器的值的。
也就是单片机和PHY芯片之间的焊接肯定是没问题的。
程序肯定是没有问题的,我在开发板运行就是正常的,这个板子也是参照开发板画的。
这是焊接的第二块板子了,反复检查,LAN8720A的PHY应该没问题。
有遇到的朋友给点建议 。谢谢
原因不知道,但是R11应该是12.1K而不是2.1k。 Rabbitoose 发表于 2023-3-24 12:31
原因不知道,但是R11应该是12.1K而不是2.1k。
(引用自2楼)
我是两个电阻加起来12.1k。
(板子上目前焊接的电阻是12.4k,不知道有没影响) 电阻应该没有问题不大,核对一下以太网LED电路驱动,我一般不是这样设计 ffbiao 发表于 2023-3-24 13:46
电阻应该没有问题不大,核对一下以太网LED电路驱动,我一般不是这样设计
(引用自4楼)
确实,我也不是这样的。
我是用LAN8720A直接驱动两颗LED的,9、12脚是两个LED的正极。楼主是开漏接法,不知道是不是这个原因。 本帖最后由 justdomyself 于 2023-3-24 13:59 编辑
ffbiao 发表于 2023-3-24 13:46
电阻应该没有问题不大,核对一下以太网LED电路驱动,我一般不是这样设计
(引用自4楼)
这是我买的开发板的电路图。时钟是单片机输出25M.
然后led电阻是510欧姆的。还搞了个10k的下拉。
你的意思是我的led的限流电阻1k给的有点大了? justdomyself 发表于 2023-3-24 13:57
这是我买的开发板的电路图。时钟是单片机输出25M.
然后led电阻是510欧姆的。还搞了个10k的下拉。
(引用自6楼)
你的开发板的接法是推挽的,你的接法是开漏的。
具体来说,你的RJ45连接器的9、12脚接的是+3.3V,另一端接的是芯片IO。而开发板的9、12脚接的是芯片的IO,另一端接地。 justdomyself 发表于 2023-3-24 13:57
这是我买的开发板的电路图。时钟是单片机输出25M.
然后led电阻是510欧姆的。还搞了个10k的下拉。
(引用自6楼)
1k电阻限流不是问题。 关注下,以前也碰到过类似问题,能通信就没有管 akey3000 发表于 2023-3-24 14:26
关注下,以前也碰到过类似问题,能通信就没有管
(引用自9楼)
link灯常亮。
网络通信还是正常的?有这种情况存在么 justdomyself 发表于 2023-3-24 14:32
link灯常亮。
网络通信还是正常的?有这种情况存在么
(引用自10楼)
存在。可能和工作模式有关,比如10m,100m,全双工,半双工之类。我当时用的enc28j60 akey3000 发表于 2023-3-24 15:48
存在。可能和工作模式有关,比如10m,100m,全双工,半双工之类。我当时用的enc28j60 ...
(引用自11楼)
LINK 和 STATUS 两个LED灯是PHY芯片输出的指示信号,
指示网络连接和状态。
这两个灯的电阻不对顶多导致LED亮度。跟网络通信没有丝毫关系啊。 我也遇到这个问题, 通讯正常,做几十块板,不插网线时, 有些LINK 指示灯常亮, 有些不常亮, 但是网口都能正常工作, 你说气人不;
第13-15页仔细看下,LED引脚是有特殊功能的,不是随便接接的 polarbear 发表于 2023-3-24 16:10
我也遇到这个问题, 通讯正常,做几十块板,不插网线时, 有些LINK 指示灯常亮, 有些不常亮, 但是网 ...
(引用自13楼)
我焊接了两块 ,都是link亮,上不了网。 亽亼 发表于 2023-3-24 16:22
第13-15页仔细看下,LED引脚是有特殊功能的,不是随便接接的
(引用自14楼)
看了下文档。he开发板的图对比了一下。
感觉我1k的限流电阻应该不是问题,问题可能是我的LINK heSTATUS两个灯脚没有接下拉电阻。
目前感觉是这样的。不知道分析对不对 。 没想到真是灯的问题,我要哭晕在厕所了。
按照开发板上面的接法。
经过各种割线,终于可以联网了。
感谢楼上各位的支持。
其实很大一点是自己QFN焊接不好,一直怀疑是焊接问题。
总之谢谢大家!!! 解决了吗,是要严格按参考原理图接就行了对吗 qwe2231695 发表于 2023-3-25 02:25
解决了吗,是要严格按参考原理图接就行了对吗
(引用自18楼)
是的。按照开发板那个电路来。link status接led串510电阻到地。同时link status 各10k下拉,不加下拉都不行。 justdomyself 发表于 2023-3-24 13:57
这是我买的开发板的电路图。时钟是单片机输出25M.
然后led电阻是510欧姆的。还搞了个10k的下拉。
(引用自6楼)
我也是这个接法,限流电阻1K也是可以的 john78 发表于 2023-3-25 07:44
我也是这个接法,限流电阻1K也是可以的
(引用自20楼)
我这个板实际接的50欧的限流电阻。找不到合适的电阻,手头上。 polarbear 发表于 2023-3-24 16:10
我也遇到这个问题, 通讯正常,做几十块板,不插网线时, 有些LINK 指示灯常亮, 有些不常亮, 但是网 ...
(引用自13楼)
你是怎么接的,感觉不太正常。 justdomyself 发表于 2023-3-25 09:30
你是怎么接的,感觉不太正常。
(引用自22楼)
按照上面发checklist 的电路接, 下拉该加的,都加了; 就是link 指示灯不正常,不插网线,指示灯也亮; 网上的人说是焊接问题
网口通讯是正常的, 10,100M 都测试过 LAN8720通讯速率可以做到多少?
页:
[1]