Estoy tratando de usar el ethernet PHY que viene con mi Digilent Nexus 4 DDR, un Microchip LAN8720A ( hoja de datos ). Escribí un controlador que me permite leer y escribir valores en los registros smi utilizando las señales mdio y mdc. Ahora necesito poder saber si estoy ejecutando en modo de 10 Mbps o 100 Mbps. También si estoy en modo full o half duplex. Parece que el registro 1 (REGISTRO DE ESTADO BÁSICO) contendría esta información. Sin embargo, este registro tiene los bits 14-11 habilitados. Estos bits según mi especificación significan ...
14 - 100BASE-TX Full Duplex
13 - 100BASE-TX Half Duplex
12 - 10BASE-T Full Duplex
11 - 10BASE-T Half Duplex
Supongo que esto me dice lo que puede hacer Phy, y no la velocidad del enlace actual establecido por la negociación automática. También está el registro de anuncios de negociación automática (registro 4) que tiene múltiples modos habilitados, y el registro de capacidad del socio de enlace (registro 5). Estos dos muestran los cuatro modos que se encienden.
¿Cómo puedo saber qué velocidad / modo dúplex es mi enlace? ¿Debo deducirlo seleccionando la intersección de la capacidad más alta del registro de habilidades del socio de enlace y el registro de anuncios de negociación automática?