MDIO管脚复用配置
MDIO管脚与GPIO管脚复用,使用MDIO管脚时,需要配置复用关系:配置寄存器IOMUX(基地址为0xA0140000,偏移地址为0x68/0x6C、0x70/0x74)为0,配置管脚功能为MDC0/MDIO0,MDC1/MDIO1。
Clause22 PHY寄存器写操作
通过配置相关寄存器可实现对PHY内部寄存器的写访问,具体配置说明如下。
- 配置寄存器MDIO_WDATA_REG[Mdio_Wdata](偏移地址为0x0008,Bit[15:0]),配置需要写入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])为0x01,表示写操作。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])为0x1,启动写操作。
- 查询寄存器MDIO_STA_REG[Mdio_Start] (偏移地址为0x0000,Bit[14])是否为0,如果为0表示写操作正常,读完成。
上述步骤可以缩减为3个步骤,步骤2到步骤6都是对同一个寄存器进行配置的,可以一次配置完成。
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])为0x01,表示写地址操作。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])为0x1,启动写地址操作。
- 查询寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])是否为0,如果为0表示写地址操作正常完成,进入下个步骤,不是0则在步骤7继续查询。
- 配置寄存器MDIO_WDATA_REG[Mdio_Wdata](偏移地址为0x0008,Bit[15:0]),配置需要写入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])为0x00,选择接口模式为XGE模式。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Op](偏移地址为0x0000,Bit[11:10])为0x01,表示写操作。
- 配置寄存器MDIO_COMMAND_REG[Mdio_Start](偏移地址为0x0000,Bit[14])为0x1,启动写操作。
- 查询寄存器MDIO_STA_REG[Mdio_Sta](偏移地址为0x0010,Bit[0])是否为0,如果为0表示写操作正常,读完成。
上述步骤可以缩减为6个步骤,步骤2到步骤6都是对同一个寄存器进行配置的,可以一次配置完成。步骤9到步骤13都是对同一个寄存器进行配置的,可以一次配置完成。