Chinaunix首页 | 论坛 | 博客
  • 博客访问: 782710
  • 博文数量: 264
  • 博客积分: 592
  • 博客等级: 中士
  • 技术积分: 1574
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-24 22:02
文章分类

全部博文(264)

文章存档

2019年(2)

2018年(1)

2017年(1)

2016年(4)

2015年(14)

2014年(57)

2013年(88)

2012年(97)

分类:

2012-09-27 00:39:41

最近搞bcm5461 PHY寄存器,遇到一个怪问题:
网口明明已经up了,读取phy寄存器居然是link fail,再读一次就变成link up了。

问了问牛人,看了看datasheet,原来是低锁存搞的鬼。

低锁存(Latched low,LL) 当寄存器的相关bit为0后,就会“锁住”不更新此bit,直到连续读两次才更新
高锁存(Latched High,LH) 当寄存器的相关bit为1后,就会“锁住”不更新此bit,直到连续读两次才更新

搞这套坑爹玩意的目的:
    让用户在读取寄存器时,寄存器bit能够保持一个相对稳定的状态,不会实时更新频繁变动
    更重要的是,它也可以用来记录某些“重要的事情”发生过
    在以上例子中,link fail就是比较“重要的事情”,此bit设置低锁存,就要要告诉你:在这次读动作之前,link曾经down过 !!!

读取寄存器的锁存bit,记住操作方法就OK了:
       低锁存(LL)的bit,读到0的话,再读一次才行
       高锁存(LH)的bit,读到1的话,再读一次才行
阅读(1910) | 评论(0) | 转发(0) |
0

上一篇:PHY的LED配置

下一篇:继电器原理图

给主人留下些什么吧!~~