第一篇 port 操作
只有2个寄存器可以直接访问,命令寄存器(0x00)和数据寄存器(0x01),其他寄存器要通过这两个寄存器访问。
读写流程
读写某一个功能寄存器的时候,必须通过命令寄存器(0x00)和数据寄存器(0x01)实现
读指令
先往命令寄存器(0x00)写入16bit的包含目标device地址和register地址的数据,然后读取数据寄存器(0x01)中的数据,即为所需数据。
写指令
先往数据寄存器(0x01)写入设计数据,然后再往命令寄存器(0x00)写入16bit的包含目标device地址和register地址的数据。
例:
读取port1的status
Bit |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Device地址 |
Status寄存器地址 |
||||||||||||||||
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
||
9 |
A |
0 |
0 |
往命令寄存器(0x00)写入0x9A00,然后读取数据寄存器(0x01)数据,如下图
具体操作地址,查看寄存器手册212页,9.3章,Figure62:Device Register Map
第二篇 PHY、SERDES操作
操作流程
PHY、SERDES 寄存器的操作,必须经过
命令寄存器(0x00)和数据寄存器(0x01)操作
Global2 寄存器(device addr 为0x1C)来实现,分步如下:
①通过命令寄存器(0x00)和数据寄存器(0x01)向
Global2 (device 0x1C)的寄存器SMI PHY COMMAND 寄存器(0x18)写入命令
②通过命令寄存器(0x00)和数据寄存器(0x01),读取
Global2 (device 0x1C)的寄存器SMI PHY COMMAND 寄存器(0x18)写入命令
具体流程如下:
①将表2.1或者2.2中数据写入数据寄存器(0x01)
②将写global2的PC寄存器的命令(0x9798)写入命令寄存器(0x00)
③将读global2的pd寄存器的命令(0x9B99)写入命令寄存器(0x00)
例:读SERDES STATUS寄存器,来判断光纤接入与否,光纤接入后,第一次读,读到0x169,显示光纤未接入;第二次及以后读,读到0x16D,显示光纤接入成功。造成此现象,猜测或许是判断光纤接入的寄存器选择不太正确,或许还有其他状态寄存器指示光纤接入与否,比如手册10.2章节,SERDES REGISTER DESCRIPTION。第481页 table 383。
表2.1 Serdes寄存器:(Clause 22 读)——光口
资源(接口)(device addr) |
|||
寄存器 (register addr) |
Serdes(port0) (0x0C) |
Serdes1(port1) (0x0D) |
解释 |
Control(0x00) |
0x9980 |
0x99A0 |
|
Status(0x01) |
0x9981 |
0x99A1 |
|
PHY_ID(0x02) |
0x9982 |
0x99A2 |
|
PHY_ID(0x03) |
0x9983 |
0x99A3 |
|
Auto-Neg(0x04) |
0x9984 |
0x99A4 |
|
Ability(0x05) |
0x9985 |
0x99A5 |
|
Auto-Neg(0x06) |
0x9986 |
0x99A6 |
|
NextPage(0x07) |
0x9987 |
0x99A7 |
|
NextPage(0x08) |
0x9988 |
0x99A8 |
|
ExtStatus(0x0F) |
0x998F |
0x99AF |
|
Control reg1(0x10) |
0x9990 |
0x99B0 |
|
Status reg1(0x11) |
0x9991 |
0x99B1 |
|
IntEnable(0x12) |
0x9992 |
0x99B2 |
|
IntStatus(0x13) |
0x9993 |
0x99B3 |
|
Rx Err Ctr(0x15) |
0x9995 |
0x99B5 |
|
CRC_Ctr(0x18) |
0x9998 |
0x99B8 |
|
Paket gen(0x19) |
0x9999 |
0x99B9 |
|
Control reg2(0x1A) |
0x999A |
0x99BA |
|
SERDES寄存器位解析
control 寄存器
Status 寄存器
2.1 PHY设备寄存器(Clause22 读)
资源(接口)(device addr) |
|||
寄存器 (register addr) |
PH1(port3) (0x03) |
PH2(port4) (0x04) |
解释 |
Control(0x00) |
0x9860 |
0x9880 |
|
Status(0x01) |
0x9861 |
0x9881 |
|
PHY_ID(0x02) |
0x9862 |
0x9882 |
|
PHY_ID(0x03) |
0x9863 |
0x9883 |
|
Auto-Neg(0x04) |
0x9864 |
0x9884 |
|
Ability(0x05) |
0x9865 |
0x9885 |
|
Auto-Neg(0x06) |
0x9866 |
0x9886 |
|
NextPage(0x07) |
0x9867 |
0x9887 |
|
NextPage(0x08) |
0x9868 |
0x9888 |
|
Control(0x09) |
0x9869 |
0x9889 |
|
Status(0x0A) |
0x986A |
0x988A |
|
ExtStatus(0x0F) |
0x986F |
0x988F |
|
PHYSpecific(0x10) |
0X9870 |
0x9890 |
|
PHYSpecific(0x11) |
0X9871 |
0x9891 |
|
PHYSpecific(0x12) |
0X9872 |
0x9892 |
|
PHYSpecific(0x13) |
0X9873 |
0x9893 |
|
PHYSpecific(0x14) |
0X9874 |
0x9894 |
|
Rx Err Ctr(0x15) |
0X9875 |
0x9895 |
|
Page reg(0x16) |
0X9876 |
0x9896 |
|
PHY INT(0x17) |
0X9877 |
0x9897 |
|
PageSpecific(0x18) |
0X9878 |
0x9898 |
|
PageSpecific(0x19) |
0X9879 |
0x9899 |
|
PageSpecific(0x1A) |
0X987A |
0x989A |
|
PageSpecific(0x1B) |
0X987B |
0x989B |
|
PageSpecific(0x1C) |
0X987C |
0x989C |
|
作者: LIN, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3865155.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
LIN 2024-6-2 18:29
luckyzy2000 2023-6-25 16:23