IP101A芯片默认物理地址(PHY Adress)确定
2014-03-01 22:26
302 查看
转载:http://blog.csdn.net/ropai/article/details/6961157
根据IP101A的DataSheet,芯片的第9,10,12,13,15脚为PHYAD0~PHYAD4。(其实为PHYAD和LED共用管脚)。这个PHYAD是可配的,有两种方法可以确定PHY Address.
(1)通过硬件方法
利用芯片上电或复位后latch的电平高低来确定,比如9脚为高电平“1”,其余为低电平0,则PHYADR[4-0]=0x01 (bit:00001)
由RX0-RX3和CSR这几个脚组成PHYADDR0-4,芯片复位时,会锁存这5个脚的电平,作为芯片地址,以后就找这个作访问了。所以,如果你是悬空的话,认为是0,一定要接1才认为是1。
(2)通过软件方法
因为PHYAD共有5位,也就是说PHY Address的范围是 0~31。而IP101A的第二个寄存器值为PHYID的高位(固定为0x0243),通过遍历(x|2)寄存器的值,如果读到0x0243则x就为PHYAddress的值。参考代码如下:
根据IP101A的DataSheet,芯片的第9,10,12,13,15脚为PHYAD0~PHYAD4。(其实为PHYAD和LED共用管脚)。这个PHYAD是可配的,有两种方法可以确定PHY Address.
(1)通过硬件方法
利用芯片上电或复位后latch的电平高低来确定,比如9脚为高电平“1”,其余为低电平0,则PHYADR[4-0]=0x01 (bit:00001)
由RX0-RX3和CSR这几个脚组成PHYADDR0-4,芯片复位时,会锁存这5个脚的电平,作为芯片地址,以后就找这个作访问了。所以,如果你是悬空的话,认为是0,一定要接1才认为是1。
(2)通过软件方法
因为PHYAD共有5位,也就是说PHY Address的范围是 0~31。而IP101A的第二个寄存器值为PHYID的高位(固定为0x0243),通过遍历(x|2)寄存器的值,如果读到0x0243则x就为PHYAddress的值。参考代码如下:
/** * 确定IP101A的PHYAddress */ //MII寄存器地址,MAC_BASE_ADDR由硬件平台决定,LPC23xx为0xFFE00000 #define MAC_MCMD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x024)) /* MII Mgmt CoMmanD reg */ #define MAC_MADR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x028)) /* MII Mgmt ADdRess reg */ #define MAC_MRDD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x030)) /* MII Mgmt ReaD Data reg (RO) */ #define MII_RD_TOUT 0x00050000 // MII Read timeout count unsigned short getPhyAddress(){ unsigned char i; int tout; for(i=0;i<32;i++){ // PHY Address范围是0~31 //MAC_MADR寄存器8~12位为PHY_ADR MAC_MADR = (i<<8) | 0x02; //高8位是地址,低五位是寄存器号'02' MAC_MCMD = MCMD_READ; // Wait until operation completed for (tout = 0; tout < MII_RD_TOUT; tout++) { if ((MAC_MIND & MIND_BUSY) == 0) break; } MAC_MCMD = 0; if(MAC_MRDD == 0x0243) //matches return i; } }
相关文章推荐
- IP101A芯片默认物理地址(PHY Adress)确定
- IP101A芯片默认物理地址(PHY Adress)确定
- IP101A芯片默认物理地址(PHY Adress)确定
- C# winfrom获取外网IP地址和物理地址
- 在 Oracle 中如何确定远程 session 客户端的 IP 地址
- 如何查自己的ip 物理地址
- 取ios本地ip及物理mac地址
- IP和物理地址
- 通过js获取IP及物理地址
- android获取ip和本机的物理地址
- mysql物理数据库在电脑存放的默认地址
- ARM LINUX内核如何确定自己的实际物理地址
- 校园网上网问题(ubuntu 9.10)-- 物理地址 ip 以及DNS的修改
- php获取客服端口IP 以及物理地址 网络
- 正则表达式——获取指定IP的物理地址
- QQWRY应用:ASP.NET捕获客户机IP和物理地址
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- 网络工程之IP地址,子网掩码,默认网关,DNS服务器形象解释
- 用纯Java代码根据IP获取windows和linux的MAC物理地址
- python获取本机的IP和物理地址