MDIO管脚复用配置
MDIO管脚与GPIO管脚复用,使用MDIO管脚时,需要配置复用关系:配置寄存器IOMUX(基地址为0xA0140000,偏移地址为0x68/0x6C、0x70/0x74)为0,配置管脚功能为MDC0/MDIO0,MDC1/MDIO1。
Clause22 PHY寄存器读操作
通过配置相关寄存器可实现对PHY外部寄存器的读访问,具体配置说明如下。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Prtad](偏移地址为0x0000,Bit[9:5]),配置相应的外部PHY地址。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Devad](偏移地址为0x0000,Bit[4:0]),配置相应的寄存器地址。
- 配置寄存器MDIO_COMMAND_REG[Mdio_St](偏移地址为0x0000,Bit[13:12])为0x01,选择接口模式为GE模式。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Op](偏移地址为0x0000,Bit[11:10])为0x10,表示读操作。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])为0x1,启动读操作。
- 查询寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])是否为0,如果为0表示读操作正常,读完成。
- 查询寄存器MDIO_RDATA_REG[Mdio_Rdata] (偏移地址为0x000C,Bit[15:0]),MDIO读访问的读数据。
上述步骤可以缩减为3个步骤,步骤1到步骤5都是对同一个寄存器进行配置的,可以一次配置完成。
Clause45 PHY寄存器读数据操作
Clause45的MDIO读数据操作分为两个MDIO接口操作,一个是写地址操作,一个是读数据操作。通过配置相关寄存器可实现对PHY内部寄存器的读数据操作,具体配置说明如下。
- 配置寄存器MDIO_ADDR_REG[Mdio_Address](偏移地址为0x0004,Bit[15:0]),配置需要读取的PHY中DEV中寄存器的地址。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Prtad](偏移地址为0x0000,Bit[9:5]),配置相应的外部PHY地址。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Devad](偏移地址为0x0000,Bit[4:0]),配置相应的设备地址。
- 配置寄存器MDIO_COMMAND_REG[Mdio_St](偏移地址为0x0000,Bit[13:12])为0x00,选择接口模式为XGE模式。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Op](偏移地址为0x0000,Bit[11:10])为0x00,表示写地址操作。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])为0x1,启动写地址操作。
- 查询寄存器MDIO_COMMAND_REG[Mdio_Start] (偏移地址为0x0000,Bit[14])是否为0,如果为0表示写地址操作正常完成,进入下个步骤,不是0则在步骤7继续查询。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Prtad](偏移地址为0x0000,Bit[9:5]),配置相应的外部PHY地址。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Devad](偏移地址为0x0000,Bit[4:0]),配置相应的设备地址。
- 配置寄存器MDIO_COMMAND_REG[Mdio_St](偏移地址为0x0000,Bit[13:12])为0x00,选择接口模式为XGE模式。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Op](偏移地址为0x0000,Bit[11:10])为0x11,表示读操作。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])为0x1,启动读操作。
- 查询寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])是否为0,如果为0表示读操作正常,读完成。
- 查询寄存器MDIO_RDATA_REG[Mdio_Rdata] (偏移地址为0x000C,Bit[15:0]),MDIO读访问的读数据。
上述步骤可以缩减为6个步骤,步骤2到步骤6都是对同一个寄存器进行配置的,可以一次配置完成。步骤8到步骤12都是对同一个寄存器进行配置的,可以一次配置完成。