Example of code that returns information about the status of the Ethernet connection.

Dependencies:   EthernetInterface mbed-rtos mbed

eth_status.h

Committer:
edodm85
Date:
2014-01-16
Revision:
1:67817eb9bb9e
Parent:
0:9e8b3fd68f6c

File content as of revision 1:67817eb9bb9e:

#include "lpc_phy.h"

/** \brief DP83848 PHY status definitions */
#define DP8_REMOTEFAULT    (1 << 6)   /**< Remote fault */
#define DP8_FULLDUPLEX     (1 << 2)   /**< 1=full duplex */
#define DP8_SPEED10MBPS    (1 << 1)   /**< 1=10MBps speed */
#define DP8_VALID_LINK     (1 << 0)   /**< 1=Link active */


    // This function returns the current status of connection.
static bool get_link_status()
{
    u32_t tmp = lpc_mii_read_data();        
    return (tmp & DP8_VALID_LINK) ? true : false;
}

    // This function returns the status of transmission.
static char* get_transmission_status()
{
    u32_t tmp = lpc_mii_read_data();
    if(tmp & DP8_FULLDUPLEX)
    { 
        return "FULL DUPLEX"; 
    }else
    {        
        return "HALF DUPLEX";
    }
}

    // This function returns the speed of the connection.
static int get_connection_speed()
{
    u32_t tmp = lpc_mii_read_data();
    return (tmp & DP8_SPEED10MBPS) ? 10 : 100;
}

    // This function returns the current value in the MII data register.
static u32_t mii_read_data()
{
    return lpc_mii_read_data();  // 16-bit MRDD - address 0x2008 4030                             
}