xuemin xiao:
麻烦更新一下状态,谢谢了!
xuemin xiao:
回复 xuemin xiao:
Hi,现在我这边把网线接到电脑上,并将电脑的网络改成 10M网络,LED_SPEED 就灭了。改成 100M网络,LED_SPEED 就亮了。
因此,我觉得应该是芯片内部的初始化状态设置成了 100M网络。
Q):怎么将 DP83848J 默认设置为10M网络,也就是 LED_SPEED 上电开机不亮灯
xuemin xiao:
回复 xuemin xiao:
Hi,麻烦更新一下状态。谢谢你了
Amy Luo:
回复 xuemin xiao:
您好,
需要在寄存器BMCR,地址 0x00,禁用Auto-Negotiation功能,然后再bit13设置选择100Mb/s 或者10Mb/s。
如果不使能Auto-Negotiation功能,寄存器PHYCR地址0x19 最高位MDIX_EN也需要disabled。
可以在6.3.1 Auto-Negotiation了解一下DP83848J 的Auto-Negotiation功能。
xuemin xiao:
回复 Amy Luo:
但是,这个设置也需要等待机器加载驱动之后,才可以写吧。现在,是一上电没多久,灯就亮了。 此时,还未受控。
Amy Luo:
回复 xuemin xiao:
您好,除了可以使用寄存器配置,也可以使用AN0和AN1管脚来控制Auto-Negotiation功能,数据手册6.3.1.1 Auto-Negotiation Pin Control。这两个管脚是复用的,如果需要设置为00,可以参考6.3.3.1 LED Figure 6-1中LED_LINK 的接法。
xuemin xiao:
回复 Amy Luo:
但是,这个无法在根本上解决上电 LED_SPEED灯亮的问题。 都需要待驱动加载完后,再去实现。
那么,必然会出现,上电后 LED_SPEED先亮一段时间,再灭的问题。 而我,就是要解决这个问题?怎么解决?
Amy Luo:
回复 xuemin xiao:
您好,DP83848工作在 10Mb/s时 LED_SPEED灯是灭的(在管脚定义处有说明),那么通过使用硬件设置AN0和AN1管脚(与LED_LINK和LED_SPEED复用)为00状态即数据手册如下表格,即将速率设置了为10Mb/s。
因为管脚是复用管脚,还需用LED指示工作状态,因此,必须像数据手册Figure 6-1接2.2K下拉电阻来连接LED指示灯。
xuemin xiao:
回复 Amy Luo:
改成 2.2K 上拉电阻后,现象依旧
xuemin xiao:
回复 xuemin xiao:
Hi,我这边现在的现象,其实都是正常的。唯一,不正常的就是上电 SPEED_LED 灯亮了。说白了,也就是上电后,最初始的默认状态为 100M网络。
现在,这边的设备接入 10M网络,LED_SPEED灯灭。接入 100M网络,LED_SPEED灯亮。是正常的
但是,如果,要去设置寄存器的话,那么必然要进入 drivers/net/ethernet/rockchip/gmac/stmmac_main.c 驱动当中去设置。这样,必然会造成一个现象。
上电后,LED_SPEED灯亮了,然后,去驱动当中 关闭 LED_SPEED。
LED_SPEED 亮 –> LED_SPEED 灭 –> LED_SPEED 亮 100M网络
LED_SPEED 亮 –> LED_SPEED 灭 10M网络。
因此,我们需要将 "DP83848J" 芯片,最开始的状态设置为 10M网络,且默认为 10M网络。
这样,不插网线 LED_SPEED 灯灭
插入 10M网络,LED_SPEED 灯灭
插入100M网络,LED_SPEED 灯亮
这样什么都好了。
我们仅仅想改变 “DP83848J”默认状态而已。谢谢