TI中文支持网
TI专业的中文技术问题搜集分享网站

DP83848J 灯状态不对

1:现在的问题是。
    a)上电后,在不插网线的情况下,LED_SPEED 就亮了。默认为 100Mb/s
    b) LED_LINK则正常。
     
    0x18寄存器里面的值,读取出来的为 0x00. 
    硬件电路上,LED_SPEED已经上拉。上电开机后,机器默认将 0x18的LED_SPEED位置低。电路导通,LED_SPEED亮灯
 Q):LED_SPEED的初始状态值,在哪设置?
      
    ps:
echo 0x18 > /sys/devices/2008c000.eth/stmmac-0:01/phy_reg
echo 0x0024 > /sys/devices/2008c000.eth/stmmac-0:01/phy_regValue       //可以关闭 灯 LED_SPEED
echo 0x0020 > /sys/devices/2008c000.eth/stmmac-0:01/phy_regValue       //可以打卡 灯 LED_SPEED
此处需要将 0x18里面的 bit_5设为1后,才能操作 bit_2.单独操作 bit_2,并不能打开/关闭 LED_SPEED
   0x19寄存器里面的值,读取出来的值是 0x8001. 
    也就是说。LED_CNFG工作在 mode2 模式。且 LED_LINK 正常。
    Thank you
    BRs
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”默认状态而已。谢谢

赞(0)
未经允许不得转载:TI中文支持网 » DP83848J 灯状态不对
分享到: 更多 (0)